tr Skip to content
Black Friday Lifetime FlowMattic from $399 One payment, unlimited workflows. Ends in --Days --Hrs --Min --Sec See the deal

Connect Grist and Google Sheets

Grist is a spreadsheet with database rules: typed columns, linked tables, SQL. Google Sheets is what partners, clients and finance already open. FlowMattic moves data between the two: new and changed Grist records appear as sheet rows, rows from a shared sheet become Grist records, and a nightly SQL query can refresh a reporting tab.

8 triggers 46 actions 7 example workflows 2 ready-made templates Unlimited runs

Try a pairing

When this happens in Grist2 triggers

Do this in Google Sheets19 actions

1. TriggerRecord Added
2. ActionAdd New Row

When Grist fires Record Added, FlowMattic runs Add New Row in Google Sheets with the data from that event.

You build this in the FlowMattic workflow builder on your own site. See the setup steps

Grist and Google Sheets workflows you can build

Each one uses only triggers and actions the two integrations ship today, plus FlowMattic's own tools. Where the library has a ready-made template, import it instead of building from scratch.

Grist app icon Google Sheets app icon Ready-made template

Copy each new Grist record to a Google Sheet

Records added in Grist show up as rows in a sheet you can share with people who do not use Grist, such as a client or an outside accountant.

Record AddedAdd New Row

View the template
Grist app icon Google Sheets app icon

Update the sheet row when the Grist record changes

Lookup Row Data finds the row by record ID and Update Row writes the new values, so the shared sheet never shows stale data.

Record UpdatedLookup Row DataUpdate Row

Grist app icon Google Sheets app icon

Turn rows from a shared sheet into Grist records

Partners keep filling in the Google Sheet they know. Each new row becomes a record in the right Grist table, where your column types and rules apply.

New Spreadsheet RowCreate Record

Grist app icon Google Sheets app icon

Upsert edited rows so Grist holds one record each

Upsert Records matches on a key column such as SKU or email, updating the record when it exists and adding it when it does not.

New Or Updated Spreadsheet RowUpsert Records

Grist app icon Google Sheets app icon

Refresh a reporting tab from a nightly SQL query

Run SQL Query totals or filters your Grist data, and the result is imported into a sheet tab that charts and dashboards read each morning.

ScheduleRun SQL QueryImport CSV or JSON to Existing Sheet

Grist app icon Google Sheets app icon

File new records in a tab for their status

A Router reads the Status column of each new record and adds it to the matching tab, such as New, In progress or Done.

Record AddedRouterAdd New Row

Grist app icon Google Sheets app icon

Remove the Grist record when its row is deleted

If the sheet is the place people tidy up, deleting a row there also deletes the matching record in Grist, using the record ID kept in the row.

Deleted Spreadsheet RowDelete Records

More ready-made templates with both apps

Set up: Grist records to sheet rows

At the end, every record added to your Grist table is copied to a Google Sheet as one row.

  1. Match the columns

    In Google Sheets, add a header row with the Grist columns you want, plus a Record ID column for later updates.

  2. Connect both apps

    Under Connects, add Grist with your API key and a Google account that can edit the spreadsheet.

  3. Trigger on Record Added

    Create a workflow with Grist Record Added, pick the document and table to watch, and add a test record.

  4. Add New Row

    Add Google Sheets Add New Row, map each Grist column and the record ID to its sheet column, test and switch on.

Import the ready-made template Beginner, about 5 min to set up
Copy each new Grist record to a Google Sheet Template
  1. Grist app icon 1. Trigger in Grist Record Added
  2. Google Sheets app icon 2. Action in Google Sheets Add New Row

    Fields mapped from the earlier steps (a typical setup)

    From GristTo Google Sheets
    Record IDRecord ID
    Name columnName
    Status columnStatus
    Owner columnOwner
    Updated atLast changed
Built on the FlowMattic canvas. Test each step with real data, then switch the workflow on.

Triggers and actions in this pair

A trigger starts a workflow. An action is something FlowMattic does in the app as a step.

Good to know

  • Grist triggers watch one table each, so build one workflow per table you want to copy.
  • Syncing both ways can loop: a row written by one workflow can fire the other. Add a Filter on a source column so each change only travels once.
  • Grist columns can hold references, lists and dates that a sheet stores as plain text. Format dates with Date/Time Formatter if the sheet needs to sort them.

Triggers (2)

  • Record AddedTriggers when a record is added to the watched table.
  • Record UpdatedTriggers when a record is updated in the watched table.

Actions (27)

  • Create RecordAdd a single record to a table.
  • Create RecordsAdd multiple records to a table from a JSON collection.
  • Update RecordUpdate a single record in a table by its row ID.
  • Update RecordsUpdate multiple records in a table from a JSON collection.
  • Upsert RecordsAdd or update records in a table, matching on a require key.
  • List RecordsFetch records from a table with optional filter, sort and limit.
  • Delete RecordsDelete records from a table by their row IDs.
  • List TablesList all tables in a document.
  • Create TablesCreate one or more tables in a document from a JSON collection.
  • Update TablesUpdate one or more tables in a document from a JSON collection.
  • List ColumnsList all columns of a table.
  • Create ColumnAdd a single column to a table.
  • Update ColumnUpdate a single column of a table by its column ID.
  • Delete ColumnDelete a column from a table by its column ID.
  • Run SQL QueryRun a read-only (SELECT) SQL query against a document.
  • List WorkspacesList the workspaces and documents of an organization.
  • Create WorkspaceCreate an empty workspace in an organization.
  • Create DocumentCreate an empty document in a workspace.
  • Get DocumentGet metadata about a document.
  • Update DocumentRename a document and/or pin/unpin it.
  • Move DocumentMove a document to a different workspace.
  • Delete DocumentDelete a document.
  • Download DocumentDownload a document (SQLite, XLSX or CSV) into the WordPress media library.
  • List AttachmentsList the attachments stored in a document.
  • Upload AttachmentUpload a file (from a URL) to a document as an attachment.
  • Get AttachmentGet metadata about an attachment.
  • Download AttachmentDownload an attachment into the WordPress media library.
Google Sheets app icon

Google Sheets

Integration page

Triggers (6)

  • New Spreadsheet RowTrigger when a new row is added to the spreadsheet
  • New Or Updated Spreadsheet RowTrigger when a row is updated in the spreadsheet
  • Deleted Spreadsheet RowTrigger when a row is deleted from the spreadsheet
  • Update Cell DataTrigger when any cell is updated in the spreadsheet
  • Update Specific Cell DataTrigger when a specific cell is updated in the spreadsheet
  • Update Specific Column ValueTrigger when a specific column value is updated in the spreadsheet

Actions (19)

  • Add New RowAdd a new row with mapped data
  • Update RowUpdate existing row in specific spreadsheet with mapped data
  • Delete RowDelete row by ID in specific spreadsheet
  • Clear Row DataClear data or row by ID in specific spreadsheet
  • Lookup Row DataSearch for data in specific spreadsheet
  • Get Cell DataGet data for particular cell in specific spreadsheet
  • Update Cell DataUpdate data for particular cell in specific spreadsheet
  • Get Row CountGet total number of rows in specific spreadsheet
  • Get Row DataGet rows data from the sheet based on specified range
  • Create Spreadsheet ColumnCreate a new column in specific spreadsheet
  • Create New SheetCreate a new sheet in specific spreadsheet
  • Import CSV or JSON to Existing SheetImport CSV or JSON data to existing sheet in specific spreadsheet
  • Copy SheetCopy a sheet to another or within the same spreadsheet
  • Get RowsRetrieve rows in JSON format for use with Iterator
  • Export sheet to CSVExport the selected sheet to CSV format and save to WordPress Media Library
  • Export Sheet to ExcelExport the spreadsheet to Excel (.xlsx) format and save to WordPress Media Library
  • Export Sheet to PDFExport the spreadsheet to PDF format and save to WordPress Media Library
  • Export Sheet to OpenDocumentExport the spreadsheet to OpenDocument (.ods) format and save to WordPress Media Library
  • Export Sheet to TSVExport the selected sheet to TSV format and save to WordPress Media Library

Why run this pair with FlowMattic

Grist and Google Sheets connect through FlowMattic on your own site, with no separate automation account in the middle and no charge per run.

Each tool for what it does best

Keep structure and rules in Grist, and give everyone else the Google Sheet they already know.

Both directions supported

Grist and Google Sheets both have triggers and actions, so data can flow either way or both.

Your data, your server

Records pass through your own WordPress site with unlimited runs, which suits large tables that change often.

Common questions

Can Grist and Google Sheets stay in sync?

Yes, with two workflows. Record Added and Record Updated in Grist write to the sheet, and New Or Updated Spreadsheet Row with Upsert Records writes back. Use a key column and a Filter to avoid loops.

Can I create new Grist tables or columns from a sheet?

Yes. Grist actions include Create Tables, Create Column and Update Column, so a workflow can add a column when a new header appears in the sheet or set up a table for a new project before records are written.

Can I run a Grist SQL query on a schedule?

Yes. Start with Schedule, add Run SQL Query with your query, and send the result to Google Sheets with Import CSV or JSON to Existing Sheet to refresh a tab.

What happens to rows added before the workflow?

Only records added after the workflow is on are copied. Use List Records once with Iterator and Add New Row to bring existing records across.

Did not find your answer? You can browse the help center or ask us directly.

Start automating Grist and Google Sheets

Install FlowMattic, connect both accounts and import a template. Every run stays on your own server.

30-day money-back guarantee Unlimited workflows and runs Self-hosted

Reviewed 27 Oct 2026. The example workflows are written with AI from the real triggers and actions of both integrations and checked against them. Grist integration 1.0.0, Google Sheets integration 2.2.4.