NocoDB n8n integrationAutomate NocoDB with n8n.
NocoDB keeps the table, n8n moves everything around it. The NocoDB n8n integration ships 13 operations over 3 resources: rows, linked rows and bases. No trigger node comes with it, so a schedule or an inbound call from another service starts the run. Written for teams using NocoDB as their working database.
Verified Trustpilot reviews · AI, automation & growth agency
What does the NocoDB n8n integration actually do?
The NocoDB node turns your NocoDB tables into a read and write endpoint for any workflow. It covers 13 operations across 3 resources: rows (create, upsert, update, delete, get, search, count, attachment upload), linked rows (list, link, unlink) and bases (get one, get many). Everything runs against your own instance, whether NocoDB sits on your server or on a hosted plan, and the same node works on n8n Cloud and on a self-hosted n8n.
The first pattern is collection. A form, a scraper or an AI step produces structured data, and the last node of the workflow writes it into a table with row.create. Teams that already keep an editorial or research table in NocoDB use this to land summarized articles, keyword lists or enriched leads in the same place their colleagues open every morning. Nothing is copied by hand, and the row carries the ID NocoDB generated, so the next node can act on it.
The second pattern is reconciliation. A workflow reads a source, looks for the matching line, and writes back. row.search pulls the rows that match a formula, row.count gives the size of a filtered set before any write, and row.upsert avoids the duplicate problem: with a value in Row ID Value the row is updated, with an empty one it is created. This is how a NocoDB table stays in sync with a spreadsheet such as Google Sheets without a nightly copy job.
The third pattern is relational work. NocoDB links records between tables, and the linked row operations expose that from a workflow: list what a record points to, attach another record, detach it when the status changes. If you have been doing this in Airtable and moved to a self-hosted base, the node gives you the same moves. For heavier queries or joins, a database node like Postgres or Supabase is often the better tool, and the two coexist in one workflow. The n8n review compares the two families of nodes in more depth.
Two limits are worth knowing before you build. There is no NocoDB trigger node, so a workflow never starts from a change made inside NocoDB: it starts on a Schedule Trigger at a fixed interval, or on an n8n Webhook, a URL that a third-party service calls. And the node stops at these 13 operations: for anything else in the NocoDB API, the HTTP Request node calls the endpoint directly and reuses the same credential, the stored connection that n8n hands to the node.
How do you connect NocoDB to n8n?
- 01
Create an API token in NocoDB
Log into NocoDB, open the User menu in the bottom left sidebar, then Account Settings. Open the Tokens tab and select Add new API token. Give it a name that says where it is used, something like
n8n integration, and save. Copy the token straight away: it is the value n8n will send on every call, and NocoDB is the only place it exists. - 02
Add the credential in n8n
In n8n, open the Credentials menu and create a NocoDB API Token credential, the recommended method. Two values are asked: the API Token you just copied, and the Host of your instance, the base URL where NocoDB answers, for example
http://localhost:8080on a local install. A credential is created once and reappears in the dropdown of every NocoDB node you add later. - 03
Pick a base and a table in the node
Drop a NocoDB node in a workflow, choose the resource and the operation, then open Base Name or ID. If the credential works, the list fills with your bases, and Table Name or ID fills once a base is chosen. That loading list is the fastest connection test there is. When the base or table changes from one execution to the next, switch the field to an expression instead of the dropdown.
What can the NocoDB node do?
The NocoDB node exposes 13 operations across 3 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Create | Get | Get Many | Update | Delete | Count | Link | List | Search | Unlink | Upload Attachment to Cell | Create or Update |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Row | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
| Linked Row | ✓ | ✓ | ✓ | |||||||||
| Base | ✓ | ✓ |
Operations index
Row
8 operationsCreate a row
row.createWhat you see in n8n
Notes & use cases
Writes a new row in the selected table and returns it with the ID NocoDB assigned, ready for the next node.
Key parameters
- Base Name or ID: chosen from the list, or set with an expression, the small n8n formula that reads the incoming item.
- Table Name or ID: the table to operate on, listed once the base is selected.
- Fields to Send: the column mapper. With Data to Send on
autoMapInputData, incoming properties fall into columns of the same name;mapWithFieldslets you fill each column yourself, and Inputs to Ignore drops the properties you do not want stored.
Create or update a row
row.upsertWhat you see in n8n
Notes & use cases
One operation for both cases: the row exists and gets updated, or it does not and gets created. The duplicate problem disappears from the workflow logic.
Key parameters
- Row ID Value: the deciding field. Filled, NocoDB updates that row; left empty, it inserts a new one, which is exactly what
{{ $json.id }}does when the previous node sometimes returns a match and sometimes nothing. - Fields to Send: the columns written in both branches, mapped automatically or set one by one through Data to Send.
Update a row
row.updateWhat you see in n8n
Notes & use cases
Changes the columns you map on a row that already exists. Columns left out of the mapper keep their current value, so a workflow can own one field without touching the rest of the line.
Key parameters
- Row ID Value: required here. NocoDB expects the ID of the record, not a name or a label, and the value usually comes from a previous search.
- Fields to Send: only the columns you want rewritten, with Inputs to Ignore as a safety net when the incoming item carries more properties than the table should receive.
Delete a row
row.deleteWhat you see in n8n
Notes & use cases
Removes one record from the table. There is no confirmation step and no undo inside the workflow, so the node that feeds it matters more than the node itself.
Key parameters
- Row ID Value: the identifier of the record to remove, typically
{{ $json.Id }}from a search run just before. - Base Name or ID and Table Name or ID: worth double checking when several bases hold tables with the same name.
Get a row
row.getWhat you see in n8n
Notes & use cases
Fetches a single record by its identifier and returns its columns as one item, which is the cheapest way to refresh data you already have a pointer to.
Key parameters
- Row ID Value: the ID of the record to read.
- Download Field Names or IDs: the attachment columns to pull. The list only offers fields of type attachment.
- Download Attachments: off, you get the file metadata; on, n8n downloads the files named above as binary data, ready for an upload node or an email.
Search rows
row.searchWhat you see in n8n
Notes & use cases
Returns the rows matching a filter, or the whole table when no filter is set. This is the operation a scheduled workflow builds on, since NocoDB has no trigger node.
Key parameters
- Return All: on, n8n walks every page of results; off, it stops at Limit.
- Filter By Formula: the NocoDB filter syntax, in the shape
(name,like,example%)~or(name,eq,test). - View Name or ID, Fields, Sort, Page and Shuffle: sit under Options to read through a saved view, trim the columns returned, order them or skip pages.
Count rows
row.countWhat you see in n8n
Notes & use cases
Returns how many rows match, without carrying the rows themselves through the workflow. Useful before a write, and cheap enough to run on a short schedule.
Key parameters
- Table Name or ID: the table to measure, in the base picked above.
- Filter By Formula: under Options, the same formula syntax as the search operation, which turns the count into a metric for one segment rather than the whole table.
Upload attachment to a row cell
row.uploadWhat you see in n8n
Notes & use cases
Puts one or more files into an attachment cell of an existing row, so documents live next to the record instead of in a separate folder.
Key parameters
- Upload Mode:
urlto let NocoDB fetch the file from a public address,base64to push the file content coming from an earlier node. - Upload Field Name or ID: the attachment column receiving the file.
- Filename and Content Type: the name stored in NocoDB and the type, such as
image/jpeg. - Base64 Value or File Url: the file itself, depending on the mode.
Linked Row
3 operationsGet linked rows
linkrow.listWhat you see in n8n
Notes & use cases
Reads what a record points to through a link field, and gives back the related records as separate items. It answers the question a flat read cannot: what is attached to this line.
Key parameters
- Row ID Value: the record whose links you are reading.
- Link Field Name or ID: the relational column to follow, offered in the list for fields of type link.
- Return All and Limit: same pagination choice as elsewhere, with Fields, Sort and Filter By Formula available under Options.
Link a row
linkrow.linkWhat you see in n8n
Notes & use cases
Attaches one record to another through a relational field. The two rows already exist; this operation only draws the connection between them.
Key parameters
- Row ID Value: the record that holds the link field.
- Linked Row ID Value: the record being attached. Both are IDs, never names, which is the mistake that returns an error on the first run.
- Link Field Name or ID: the relational column that carries the relation.
Unlink a row
linkrow.unlinkWhat you see in n8n
Notes & use cases
Breaks the relation between two records without deleting either of them. The rows stay in their tables, only the connection goes.
Key parameters
- Link Field Name or ID: the relational column holding the relation to remove.
- Row ID Value and Linked Row ID Value: the two ends of the relation, in the same order as the link operation.
Base
2 operationsGet many bases
base.getAllWhat you see in n8n
Notes & use cases
Lists the bases the token can reach, with their identifiers. Most workflows never need it, and the ones that do need it a lot: it is how a run discovers where to write instead of having the base hardcoded.
Key parameters
- Workspace Name or ID: optional, and the only setting here. Left empty, the node returns what the credential can see.
Get one base
base.getWhat you see in n8n
Notes & use cases
Retrieves a single base and its details, which is mostly a resolution step: you hold an identifier, you want the object behind it.
Key parameters
- Base Name or ID: the only required field, picked from the list or given by an expression when the identifier comes from an earlier node.
Need help automating NocoDB with n8n?
A person reads every message.
