Get Record
airtable.get_record
ActionFiles & storageconnection required
Calls the Airtable API with the connection's credentials.
Read one Airtable record by its record id, with its cell values.
Connection
- Required
- Yes — the node will not save without one
- Auth type
- Bearer token
- Providers
- Airtable
- Secret shape
- the Airtable access token
- Resolved by
- config.connection_id, else node.connection_id
Configuration
7 fields, 3 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
base_id Airtable base id (app…), from the base's API docs URL or airtable.list_bases. | string | Yes | — | — | appAbCdEfGhIjKlMn |
table Table id (tbl…) or table name. An id survives a rename; a name does not. | string | Yes | — | — | Tasks |
record_id Record id (rec…) of the row to act on. | string | Yes | — | — | recAbCdEfGhIjKlMn |
cell_format How cell values come back: 'json' (native types) or 'string' (formatted the way the Airtable UI shows them). | string | No | — | one of "json", "string" | — |
time_zone IANA time zone used to format dates; required when cell_format is 'string'. | string | Conditional | — | only with cell_format | Asia/Kolkata |
user_locale Airtable user locale used to format numbers and dates; required when cell_format is 'string'. | string | Conditional | — | only with cell_format | en-gb |
return_fields_by_field_id Key the returned 'fields' object by field id (fld…) instead of field name. | boolean | No | false | — | — |
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"base_id": "appAbCdEfGhIjKlMn",
"record_id": "recAbCdEfGhIjKlMn",
"return_fields_by_field_id": false,
"table": "Tasks",
"time_zone": "Asia/Kolkata",
"user_locale": "en-gb"
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
id The Airtable record id (rec…). | string | — |
fields The record's cell values, keyed by field name. | object | — |
createdTime When the record was created (ISO 8601). | string | — |
{
"createdTime": "",
"fields": {},
"id": ""
}Notes
- Airtable leaves empty cells out of 'fields' entirely, so a missing key means the cell is empty, not that the column is gone.
- Airtable caps every batch write at 10 records per request. The batch nodes chunk for you and report how many calls they made in 'batches'; the calls are sequential and not a transaction, so a failure part-way leaves the earlier chunks committed and says how many got through.
- typecast is what lets a plain string be written into a single-select, date or number column. It is on by default, matching airtable.create_record.
- Reads page on an opaque 'offset' token, not a page number: feed the offset a call returns back into the next call while 'has_more' is true.
- The base/table/field nodes use Airtable's metadata API, which needs the 'schema.bases:read' (or ':write') scope on the personal access token. A token minted only for 'data.records:*' gets a 403 from them.
See Get Record run in a workflow.
In a technical demo we add the Airtable connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.