Airtable Node
The Airtable Node provides seamless integration between your workflows and Airtable, enabling you to interact directly with your Airtable bases and tables through a straightforward interface. This node supports several essential operations to manage and automate your Airtable data.
The node now exposes five single-record actions—they cover 90% of typical use cases. Many templates are available in the AI-Flow App to showcase how to use these nodes in real-world scenarios (e.g., update records through a loop, generate an image and save it as an attachment, create a record with AI-generated content). Please refer to these templates first to understand how to take full advantage of the nodes, as this documentation provides a node-by-node reference.
Bulk variants (…Records
) still exist for power users; they accept raw JSON arrays but function identically under the hood.
1 · Create Record​
Input | Description |
---|---|
Base ID | The Airtable base you’re using. |
Table Name | The table that will receive the new record. |
Fields (JSON) | The record data. Only include the fields you want to set. |
Typecast | Allows Airtable to coerce strings into collaborators, selects, etc. |
Returns the created record as JSON.
2 · Get Record​
Input | Description |
---|---|
Base ID | The base to query. |
Table Name | The table to query. |
Record ID | The Airtable record ID (recXXXXXXXXX ). |
Fields Only | If on, returns just the fields instead of the full response. |
3 · Update Record​
Input | Description |
---|---|
Base ID | The Airtable base to use. |
Table Name | The table containing the record. |
Record ID | The record to update. |
Fields (JSON) | The fields to update. |
Typecast | Same behavior as in Create. |
4 · Upsert Record​
Creates or updates a record in one operation. You don’t need a record ID, but you must specify one or more fields used to determine uniqueness.
In the example below, the 'Name' field is used.
Input | Description |
---|---|
Base ID / Table Name | The base and table to target. |
Fields (JSON) | The data to write. |
Fields To Merge On | One or more column names that uniquely identify the record (e.g., Email ). |
Typecast | Optional coercion. |
5 · Delete Record​
Input | Description |
---|---|
Base ID / Table Name | The base and table. |
Record ID | The record to delete. |
Returns Airtable’s deletion payload (or a simple { success: true }
if already removed).
6 · List Records​
Retrieves rows from any Airtable view in a single call.
Input | Description |
---|---|
Base ID | The base to query. |
Table Name | The table to query. |
Max Records | The maximum number of records to retrieve (default 100, capped at 1000). |
Sort | Array of { field, direction } objects. Direction is asc or desc . |
Filter by Formula | An Airtable formula (e.g., {Stage}="Done" ) applied server-side. |
View | The name of a view to inherit filters/sorting from. |
Separate Output | On → each record is output separately. Off → returns one array (useful for loops). |
The node paginates automatically until it hits Max Records or the end of the table, then returns the results as Airtable provides them—no transformations or omissions.
Bulk Variants (Raw JSON)​
Need to insert or upsert ten or more records in one call?
Use Create Records or Upsert Records. These take the same parameters as their single-record versions, but expect a JSON array of {"fields": ...}
objects.
Field Specifics​
Attachments / Multiple Attachments​
You can pass:
"FieldName": "https://example.com/photo.jpg"
or:
"FieldName": [
"https://example.com/a.png",
"https://example.com/b.png"
]
The node wraps each URL in the { url: ... }
format required by Airtable.
Example (Image field as an attachment):
Single-Select & Multi-Select​
Single select → just a string:
"Status": "Done"
Multi-select → either a comma-separated string or an array:
"Tags": "Idea, Doing, Done"
// or
"Tags": ["Idea", "Doing", "Done"]
Collaborator​
Provide the collaborator’s email or name, and enable Typecast so Airtable can resolve it to a user ID:
"Assignee": "name@email.com"
Looping Over Results​
The List Records node outputs records as an array—ideal for a Subflow Loop. You’ll find several ready-made loop templates in the AI-Flow App.