Create Records (batch)
airtable.create_records
ActionFiles & storageconnection required
Calls the Airtable API with the connection's credentials.
Create many Airtable records in one step, chunked into Airtable's 10-records-per-request batches.
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
5 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 |
records The records to create, as a JSON array. Each entry is either {"fields": {column: value}} or the flat {column: value} form. | array | Yes | — | array of object | [{"fields":{"Name":"Ada","Status":"Open"}}] |
typecast Let Airtable convert strings into select options, dates and numbers. Off means a value must already match the column's type exactly. | boolean | No | true | — | — |
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",
"records": [
{
"fields": {
"Name": "Ada",
"Status": "Open"
}
}
],
"return_fields_by_field_id": false,
"table": "Tasks",
"typecast": true
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
records[].id The Airtable record id (rec…). | string | — |
records[].fields The record's cell values, keyed by field name. | object | — |
records[].createdTime When the record was created (ISO 8601). | string | — |
count How many records this call returned. | number | — |
batches How many 10-record requests were sent to Airtable. | number | — |
{
"batches": 0,
"count": 0,
"records": [
{
"createdTime": "",
"fields": {},
"id": ""
}
]
}Notes
- 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 Create Records (batch) 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.