Coda n8n integrationAutomate Coda with n8n.
A Coda doc holds the numbers everyone asks you for, and nobody wants to copy them by hand. The Coda n8n integration ships 18 operations spread over 4 resources: controls, formulas, tables and views. No trigger node comes with it, so the run starts from a schedule or from another app you already automate.
Verified Trustpilot reviews · AI, automation & growth agency
What does the Coda n8n integration actually cover?
The Coda node talks to the Coda API and turns a doc into something a workflow can read and write. It lists tables and views, pulls rows and columns, adds a row, deletes one, updates a row inside a view, reads the value behind a formula or a control, and even presses a button column for you. Everything runs through one credential, an API access token created in your Coda account settings.
Three shapes of automation come back again and again. The first one is intake: a form, an email or a payment lands in n8n, and table.createRow writes it into the tracker your team already opens every morning. Nobody changes tool, the row simply appears with the right columns filled.
The second one is reporting. table.getAllRows or formula.get read the state of a doc on a schedule, and the workflow pushes a short digest where people actually look, usually Slack or a mailbox handled by Gmail. A Coda formula that already computes the weekly total beats recomputing it in a Code node.
The third one is sync. Rows move between Coda and a spreadsheet such as Google Sheets, or between Coda and a wiki like Notion, with Key Columns on the create operation acting as an upsert key so the same record does not land twice.
Reach for the HTTP Request node when the API method you need is not one of the 18 operations. It calls any Coda endpoint and reuses the same credential through predefined authentication, which keeps the token in one place. Docs, pages and permissions fall in that category: the node covers controls, formulas, tables and views, nothing else.
Two limits are worth knowing before you build. Coda has no trigger node in n8n, so reacting to a change means polling the doc on a Schedule Trigger or having the upstream app fire a Webhook. And row identifiers beat row names: names are easy for a colleague to rename, which quietly breaks a workflow that hardcoded them. Teams who want the full picture usually start with the n8n review before committing a process to it.
How do you connect Coda to n8n?
- 01
Generate an API access token in Coda
Coda authenticates the node with a single method, an API access token. Open your Coda account settings and generate one there. The token carries the rights of the account that created it, so generate it from a user who can already open the docs the workflow will touch. A personal account that only has view access on a doc will read rows fine and fail the moment the workflow tries to create one.
- 02
Create the credential in n8n
In n8n, open the Credentials menu and create a Coda credential, then paste the token into the Access Token field. A credential is stored once and reused by every workflow on the instance, on n8n Cloud as on a self-hosted setup. Nothing else needs installing: the Coda node ships with n8n, at no extra cost on either.
- 03
Pick the doc and check the dropdowns fill
Drop a Coda node in a workflow, choose an operation, then open the Doc Name or ID dropdown. It queries your account live, so a populated list is the proof that the token works. Select a doc, then a table or a view, and run the node once on a read operation such as Get all rows before wiring anything that writes.
The 18 operations of the Coda node
The Coda node exposes 18 operations across 4 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Get | Get Many | Create Row | Delete Row | Delete Row | Get All Columns | Get All Rows | Get Columns | Get Rows | Get Column | Get Row | Push Button | Push Button | Update Row |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Control | ✓ | ✓ | ||||||||||||
| Formula | ✓ | ✓ | ||||||||||||
| Table | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
| View | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Operations index
Control
2 operationsGet a control
control.getWhat you see in n8n
Notes & use cases
Controls are the sliders, selectors and buttons sitting on a Coda page. This operation reads one of them and returns its current value, which lets a workflow branch on a choice a human made in the doc.
Key parameters
- Doc Name or ID: the doc that holds the control, picked from the dropdown or passed as an expression when the doc changes per item.
- Control ID: the identifier of the control itself, a plain text field rather than a list.
Get many controls
control.getAllWhat you see in n8n
Notes & use cases
Lists every control in a doc in one call, with the identifier of each one. It is the fastest way to find out what a doc exposes without clicking through its pages.
Key parameters
- Doc Name or ID: the only required input, since controls are scoped to the doc rather than to a table.
- Return All: on, n8n walks the API pages until every control is back; off, Limit caps how many come through.
Formula
2 operationsGet a formula
formula.getWhat you see in n8n
Notes & use cases
A Coda formula is a named calculation living in a doc. Asking for it returns the value Coda computed, already up to date, so a workflow reports a number instead of rebuilding it.
Key parameters
- Formula ID: the identifier of the calculation to read, entered as text.
- Doc Name or ID: the doc where that formula lives, chosen in the list or supplied with an expression.
Get many formulas
formula.getAllWhat you see in n8n
Notes & use cases
Returns the formulas a doc publishes, with their identifiers and values. Handy when the doc belongs to someone else and its internals are not obvious from the outside.
Key parameters
- Doc Name or ID: scope of the call, since formulas are listed per doc.
- Return All and Limit: leave Return All off with Limit set low while exploring, turn it on when the workflow needs the complete set.
Table
7 operationsCreate a row
table.createRowWhat you see in n8n
Notes & use cases
Writes an incoming item into a Coda table as a new row. Fields from the previous node map onto columns, so a form submission or an inbound email becomes a tracked line without anyone retyping it.
Key parameters
- Table Name or ID: the destination table, selected from the list that loads once the doc is set.
- Key Columns: optional column identifiers used as upsert keys, comma separated; matching rows get updated instead of duplicated.
- Disable Parsing: on, Coda stores values exactly as sent rather than interpreting them.
Delete a row
table.deleteRowWhat you see in n8n
Notes & use cases
Removes one or several rows from a table. The deletion applies to the underlying table, so the row disappears from every view built on top of it.
Key parameters
- Row ID: the rows to delete, typically carried over from an earlier read as
{{ $json.id }}. - Table Name or ID: the table the rows belong to, required alongside the doc.
Get all columns
table.getAllColumnsWhat you see in n8n
Notes & use cases
Describes the structure of a table: every column with its identifier and name. Column identifiers survive renames, which is exactly why a workflow should store them.
Key parameters
- Table Name or ID: the table to inspect, from the dropdown or an expression.
- Return All: off, Limit decides how many columns come back, enough for a quick look at a wide table; on, every column comes back.
Get all rows
table.getAllRowsWhat you see in n8n
Notes & use cases
Pulls the contents of a table into the workflow, one n8n item per row. This is the read operation most Coda automations start from.
Key parameters
- Query: filters rows server side as
column:value, with the value written as JSON, so text needs its own quotes. - Return All: turned on, n8n chains the API pages to bring back the whole table; turned off, Limit stops it early.
- ValueFormat: Simple, Simple With Arrays or Rich, depending on whether you want plain cell values or the structured version.
- Visible Only: restricts the result to the rows and columns visible on the table.
Get a column
table.getColumnWhat you see in n8n
Notes & use cases
Fetches the definition of a single column: what it is called, how it is typed, what identifier it answers to. It reads metadata, not the values stored in the cells.
Key parameters
- Column ID: the column to describe, given as text.
- Table Name or ID: the table it belongs to, required with the doc.
Get a row
table.getRowWhat you see in n8n
Notes & use cases
Reads a single row and returns its cells. Use it when a workflow already knows which record it cares about and pulling the whole table would be wasteful.
Key parameters
- Row ID: the identifier or the name of the row; names are fragile because anyone can edit them, and a name used twice returns an arbitrary match.
- Use Column Names: returns column names instead of identifiers, readable but prone to breaking after a rename.
- RAW Data: hands back the API response untouched, useful while debugging a mapping.
Push a button
table.pushButtonWhat you see in n8n
Notes & use cases
Presses a button column on a given row, exactly as a person clicking it in the doc would. Whatever the button does inside Coda then happens without a human.
Key parameters
- Column Name or ID: the button column to press, chosen from the list the node loads for that table.
- Row ID: which row gets the click, by identifier rather than by name whenever possible.
View
7 operationsDelete a view row
view.deleteViewRowWhat you see in n8n
Notes & use cases
Deletes a row through a view instead of the table. Both dropdowns load real values, so the row can be selected without digging for its identifier first.
Key parameters
- View Name or ID: the view that shows the row, picked from the list.
- Row Name or ID: the row to remove, also offered as a list here rather than a free text field.
Get a view
view.getWhat you see in n8n
Notes & use cases
Returns the description of one view: its name, the table behind it and its identifier. A small call that mostly serves to confirm a workflow points at the right place.
Key parameters
- View ID: entered as text on this operation, unlike the view operations that offer a dropdown.
- Doc Name or ID: the parent doc, required for every operation on the node.
Get all view columns
view.getAllViewColumnsWhat you see in n8n
Notes & use cases
Lists the columns a view exposes. A view often hides part of its table, so this list can be shorter than the columns of the underlying table.
Key parameters
- View Name or ID: the view to inspect, selected in the list loaded from the doc.
- Return All and Limit: the same pair as everywhere on the node, all columns or a capped number.
Get many views
view.getAllWhat you see in n8n
Notes & use cases
Enumerates the views of a doc with their identifiers. Since several view operations expect an identifier, this call is often the one that provides it.
Key parameters
- Doc Name or ID: the doc to scan, with no table to specify at this level.
- Return All: on for a complete inventory, off with Limit when a sample is enough.
Get a view row
view.getAllViewRowsWhat you see in n8n
Notes & use cases
Reads the rows displayed by a view, filters included. When a view already isolates the records you care about, this saves filtering the whole table in n8n.
Key parameters
- Query: narrows the result further, written as
column:valuewith a quoted column name when you use one. - Sort By: Created At or Natural; left empty, rows arrive in creation order, oldest first.
- Return All: on, every row of the view comes back page after page; off, Limit caps the batch.
Push a view button
view.pushViewButtonWhat you see in n8n
Notes & use cases
Triggers a button column on a row seen through a view. The mechanics match the table version, but every input here is a dropdown, which makes it quicker to configure by hand.
Key parameters
- Column Name or ID: the button to press, listed for the selected view.
- Row Name or ID: the target row, also offered as a list.
Update a view row
view.updateViewRowWhat you see in n8n
Notes & use cases
Changes the content of a row reached through a view. The write goes to the underlying table, so the new values show up everywhere that row appears.
Key parameters
- Key Name: required text field identifying what gets written on the row.
- Row Name or ID: the row to modify, taken from the list the view exposes.
- Disable Parsing: keeps Coda from interpreting the values, which protects strings that look like dates or numbers.
Need help automating Coda with n8n?
A person reads every message.