Grist n8n integrationAutomate Grist with n8n.
The Grist n8n integration turns a Grist table into a database your workflows can write to. The node ships with n8n and exposes 4 operations on a single resource: create, read, update and delete rows. There is no Grist trigger node, so a Schedule or a Webhook starts the run.
Verified Trustpilot reviews · AI, automation & growth agency
What does the Grist n8n integration actually cover?
The Grist n8n integration is the built-in Grist node plus a Grist credential. Once that credential holds an API key and a Grist URL, any workflow can read rows from a table, add rows, change them or remove them, using the document ID and the table ID as the address. Grist stays the place where people edit, n8n does the moving. Nothing gets installed: the node is part of n8n on Cloud and on a self-hosted instance.
Take an intake form. A Webhook node catches the submission, Create rows in a table writes it into the right Grist table with Auto-Map Input Data to Columns, and Grist hands back the Row ID of the line it just created. There is nothing else to maintain: the table is the form's database, and the columns stay editable by the team in the Grist interface.
Take a reporting job. A Schedule Trigger fires every morning, Read rows from a table runs with Return All enabled so no page of results gets left behind, and the rows land in Postgres or in a tab of Google Sheets for whoever prefers a spreadsheet. Grist remains the version people edit.
Take a follow-up loop. Read the rows that need attention with a Filter, mark each one as handled with Update rows in a table, then post a short recap in Slack. Teams arriving from Airtable will recognize the shape of that workflow, with a document ID and a table ID in place of a base and a table name.
The node stops at rows. Create, read, update, delete, that is the full list of 4 operations on its single resource. Anything else the Grist API exposes stays reachable through the HTTP Request node, which can reuse the same Grist credential with predefined authentication, so no second key to manage. The wider picture of what the tool does well sits in the n8n review.
Two limits are worth knowing before you build. There is no Grist trigger node, so a workflow always starts somewhere else, usually a Schedule Trigger on a fixed interval or an n8n Webhook, an URL a third-party service calls. And updating or deleting a row needs its Row ID, which comes either from the output of Read rows from a table or from a column you add in Grist holding the formula $id.
How do you connect Grist to n8n?
- 01
Create the API key in Grist
In Grist, open the account menu from the profile icon at the top right, go to Account settings, then Developer, and create or copy the API key. That key is the whole authentication story for this node: API key is the only method the Grist credential supports, so there is no consent screen to click through and no app to approve. Keep it somewhere safe.
- 02
Point n8n at the right Grist URL
The credential asks for a Grist URL on top of the key. Leave the default
https://api.getgrist.comfor any account hosted on getgrist.com. Usehttps://YOUR_TEAM.getgrist.comto restrict the connection to one team. For a self-managed Grist server, put its own address, written without/apiand without a trailing slash. - 03
Save the credential and pick it in the node
Back in n8n, open the Credentials menu, create a Grist credential, paste the key and the URL, and save. Then drop a Grist node into a workflow and select that credential from its dropdown list. A credential is created once and reused by every workflow on the instance, so this step happens a single time, the same way on n8n Cloud and on a self-hosted install.
What can the Grist node do?
The Grist node exposes 4 operations. For each one: the node as you configure it in n8n, the required fields, and our field notes.
Operations index
Create rows in a table
createWhat you see in n8n
Notes & use cases
Adds one or more rows to a Grist table and returns each of them with the Row ID that Grist assigns.
Key parameters
- Document ID: the document address, copied from Document Settings after clicking the profile icon.
- Table ID: the table to write into; the Code View shows the real ID when it differs from the displayed name.
- Data to Send: Auto-Map Input Data to Columns when the incoming property names already match the columns, Define Below for Each Column otherwise.
Delete rows from a table
deleteWhat you see in n8n
Notes & use cases
Removes rows for good. Grist does not send the content back, so the workflow keeps whatever it needs before this node runs.
Key parameters
- Row ID: the row to drop, or several IDs separated by commas, often
{{ $json.id }}taken from a read step. - Document ID and Table ID: both required, because a row ID only means something inside one table of one document.
Read rows from a table
getAllWhat you see in n8n
Notes & use cases
Pulls rows back out of Grist, each one carrying its Row ID alongside the column values.
Key parameters
- Return All: on, n8n walks every page of results; off, Limit caps how many rows come back.
- Filter: added from Add Option, one entry per column, several values separated by commas; a row has to match every column listed.
- Sort Order: orders the rows before they leave the node.
Update rows in a table
updateWhat you see in n8n
Notes & use cases
Rewrites the values of a row that already exists, which means the hard part is naming the right one.
Key parameters
- Row ID: the single row to update; a Grist column carrying the formula
$idmakes it available like any other field. - Fields to Send: the columns to write, one by one, when Define Below for Each Column is selected.
- Inputs to Ignore: the property names to leave out, separated by commas, when auto-mapping sends too much.
Need help automating Grist with n8n?
A person reads every message.
