Resources · n8n integration

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

Why automate

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.

Connect

How do you connect Grist to n8n?

  1. 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.

  2. 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.com for any account hosted on getgrist.com. Use https://YOUR_TEAM.getgrist.com to restrict the connection to one team. For a self-managed Grist server, put its own address, written without /api and without a trailing slash.

  3. 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.

Actions

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.

01

Create rows in a table

create

What 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.
Use cases
a signup webhook writes a new contact row, and the Row ID it returns feeds the next node.
02

Delete rows from a table

delete

What 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.
Use cases
a cleanup workflow reads rows flagged as duplicates, then deletes them in a single pass.
03

Read rows from a table

getAll

What 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.
Use cases
a morning export reads every row of an orders table and hands it to a reporting step.
04

Update rows in a table

update

What 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 $id makes 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.
Use cases
a delivery status arrives by email and the matching order row moves to shipped.
Need help

Need help automating Grist with n8n?

A person reads every message.

FAQ

Grist and n8n, the questions that come next

01Is the Grist n8n integration free?
On the n8n side, yes. The Grist node ships with n8n, so there is nothing to install and nothing extra to pay, on n8n Cloud as well as on a self-hosted instance running the Community Edition under the Sustainable Use license. The credential is created once in the Credentials menu and reused by every workflow that touches Grist, so the setup costs time rather than money. What a Grist account itself costs sits outside this page, since it depends on the plan you hold with Grist. Build the workflow first, then check that plan against the volume you expect to move.
02What credentials does the Grist node need?
An API key and a Grist URL, nothing more. The key comes from the account menu in Grist, under Account settings then Developer, where you create or copy it. The URL tells n8n which server to call: the default, api.getgrist.com, covers any account hosted on getgrist.com, a team address restricts the connection to that single team, and a self-managed install uses its own address, written without the api suffix and without a trailing slash. API key is the only authentication method the credential supports, so no consent flow and no app approval are involved. Save it once and the node offers it in its dropdown.
03What are the limits of the Grist node in n8n?
It handles rows, and only rows. The 4 operations create, read, update and delete rows in one table at a time, addressed by a document ID and a table ID. Anything else the Grist API exposes goes through the HTTP Request node, which can reuse the same Grist credential, so nothing is out of reach, it just sits one node further away. Two practical limits follow. Updating or deleting needs the Row ID, which comes from the read operation's output or from a Grist column built on the id formula. And filtering happens on read only, so a complex condition is easier as a formula column that returns true.
04Is there a Grist trigger in n8n?
No. Grist has no trigger node, so a workflow never starts from a change made inside a Grist document. Two patterns cover the gap. A Schedule Trigger runs on a fixed interval, reads the table and compares what it finds with what was already handled, which is polling: n8n asks Grist at each run instead of being told. Or an n8n Webhook, an URL another service calls, starts the run and the Grist node writes the result. The first suits regular syncs and reports, the second suits events coming from a form or from a third-party app able to call a URL.
05n8n or Make for Grist?
It depends on where the data should sit. n8n runs self-hosted with Docker or npm, or on n8n Cloud, and a workflow behaves the same either way, so a Grist document and the workflow around it can stay on infrastructure you control. Make is hosted only, with no self-hosting option, and bills per operation, which reads clearly at small volumes and less so when a nightly sync walks every row of a large table. Both give you a visual editor, so the real criteria are hosting, control over the data, the cost model, and which editor your team moves faster in.