nodes / builtin / integration
Airtable
Integrate with AirTable to perform operations on tables.
Read, add, change and delete rows (records) in an Airtable table, and list your bases and their tables.
Try it
Section titled “Try it”Save Page to Airtable Reading List: a workflow with 3 steps, starting with Right-click a page and ending with Add a record to Airtable.
What it does
Section titled “What it does”The Airtable node works on two kinds of things (Resource):
- Base: list the bases your token can open (Get many), or get a base’s tables, fields and views (Get schema).
- Record: create, get, update or delete one record by its id, or search a table with an Airtable formula.
Once the credential is set, Base and Table are lists loaded from your account. After you pick a table, Fields shows one input per column of that table (choice columns show their options), so you fill values by column name instead of writing JSON. Update only changes the fields you fill; the others keep their values.
Search returns the records of a single response from Airtable; it does not page through very large tables.
When to use it
Section titled “When to use it”- Log every new lead, form entry or scraped product as a row in a table.
- Look up a record before deciding what to do next, for example with IF.
- Find rows that match a condition (status, date, price) and process them one by one.
- Use Google Sheets or Baserow / NocoDB instead if your data lives there.
Inputs and settings
Section titled “Inputs and settings”| Setting | Type | What it does |
|---|---|---|
| Credential (required) | Credential | The Credential to use to make the request. |
7 choices · pick resource and operation to see its settings
Settings for Base · Get many
| Setting | Type | What it does |
|---|---|---|
| Limits | Number | The maximum number of records to return. |
Settings for Base · Get schema
| Setting | Type | What it does |
|---|---|---|
| Base (required) | Choice (loaded from your account) | The ID of the AirTable base. |
Settings for Record · Create a record in a table
| Setting | Type | What it does |
|---|---|---|
| Base (required) | Choice (loaded from your account) | The ID of the AirTable base. |
| Table (required) | Choice (loaded from your account) | The name of the AirTable table. |
| Fields (required) | Field list | The fields to update. |
Settings for Record · Update data in a table
| Setting | Type | What it does |
|---|---|---|
| Base (required) | Choice (loaded from your account) | The ID of the AirTable base. |
| Table (required) | Choice (loaded from your account) | The name of the AirTable table. |
| Record (required) | Text | The ID of the record to update. |
| Fields (required) | Field list | The fields to update. |
Settings for Record · Delete data from a table
| Setting | Type | What it does |
|---|---|---|
| Base (required) | Choice (loaded from your account) | The ID of the AirTable base. |
| Table (required) | Choice (loaded from your account) | The name of the AirTable table. |
| Record (required) | Text | The ID of the record to update. |
Settings for Record · Get data from a table
| Setting | Type | What it does |
|---|---|---|
| Base (required) | Choice (loaded from your account) | The ID of the AirTable base. |
| Table (required) | Choice (loaded from your account) | The name of the AirTable table. |
| Record (required) | Text | The ID of the record to update. |
Settings for Record · Search data in a table
| Setting | Type | What it does |
|---|---|---|
| Base (required) | Choice (loaded from your account) | The ID of the AirTable base. |
| Table (required) | Choice (loaded from your account) | The name of the AirTable table. |
| Filter By Formula | Text | The formula will be evaluated for each record, and if the result is not 0, false, "", NaN, [], or #Error! the record will be included in the response. More info. |
Showing settings for Base · Get many
- Record is the record id, which starts with
rec(for examplerecA1b2C3d4E5f6G7). Map it from a previous step, such as{{ $input.id }}after a Search. - Filter By Formula uses Airtable’s formula language. Field names go in braces, and the whole formula is sent as is, for example
AND({Status} = 'New', {Price} < 100). Leave it empty to return records without filtering. - Limits on Base → Get many is not applied: the node returns all bases the token can see.
Outputs
Section titled “Outputs”-
Output
- Record operations return the record as
id,createdTimeandfields(an object keyed by column name), for example{{ $input.fields.Email }}. - Search returns a list of records. Use Split Out to handle them one per item.
- Base → Get many returns each base’s
id,nameandpermissionLevel. Get schema returns each table with itsfieldsandviews.
Dependencies and credentials
Section titled “Dependencies and credentials”- Credential (connection, Bearer Token): required. See Connect AirTable.
Use an Airtable personal access token. Create it at airtable.com under Builder hub → Personal access tokens, give it the scopes data.records:read, data.records:write and schema.bases:read, and add the bases it may access. Save it as a Bearer Token credential: see Create a credential.
Example workflow
Section titled “Example workflow”- A Context Menu trigger runs when you right-click a product page.
- Get Page Metadata reads the page title and URL.
- Airtable, Record → Create a record in a table, base
Shopping, tableWishlist, with FieldsName={{ $input.title }}andLink={{ $input.url }}. - Browser Notification confirms the row was added.
Common issues
Section titled “Common issues”- “Airtable API Error: Invalid permissions, or the requested model was not found”. The token has no access to this base, or lacks a scope. Edit the token on Airtable, add the base and scopes, and run again.
- “Missing base ID” or “Missing table ID” when a list loads. Pick Base first, then Table; each list depends on the one above it.
- The Fields form is empty or a column is missing. Pick the table first. The form only shows text, email, URL, long text, number, duration, date, checkbox and single select columns. To fill other kinds (attachments, multiple selects, linked records, currency), use Http Request.
- Search returns nothing. Check the formula in Airtable’s own formula field first; a field name that does not match exactly makes every record fail the test.
Recipes with this node
Section titled “Recipes with this node”Related nodes
Section titled “Related nodes”- Google Sheets: the same job in a spreadsheet.
- Baserow / NocoDB: open-source Airtable alternatives.
- Edit Fields: shape data before writing it.
- Http Request: call Airtable API endpoints this node does not cover.