Airtable

Reads and writes records of an Airtable table — the spreadsheet with types that many teams use as a light database. Fields are written by name, as you see them in Airtable, and a batch of records is split and paced for you.

Setup

Connect Airtable under Settings → Credentials (OAuth) and grant it the bases the flow needs; then pick the credential in the node. Base and table come from dropdowns that read the schema. A base is app…, a table tbl… or its name, a record rec….


Operations

ValueIn the dropdownWhat it does
listRecordsList recordsRecords of a table, through a view and a filter formula if you give them. Iterable over records.
getRecordGet recordOne record by its ID, with every field.
createRecordCreate recordAdds a record — or many, with Batch.
updateRecordUpdate recordChanges the fields you give and leaves the rest.
upsertRecordUpsert recordFinds a record by up to three fields and updates it, or creates it. Fails if more than one matches.
deleteRecordDelete recordDeletes a record — or many, with Batch. Through the API there is no trash.
listBasesList basesThe bases the credential reaches. Iterable over bases.
getBaseSchemaGet base schemaTables with their fields (type, select options) and views. Iterable over tables.

Convert values to the field's type (Airtable's typecast) is on by default: "Yes" fills a checkbox and an unknown option is added to a select. Airtable takes 10 records per call and 5 calls a second per base; the node splits a batch and waits between calls.


AI toolkit mode

Once the credential is picked, the node asks for a Mode. AI toolkit turns it into eight tools that an AI Node — or an MCP client, through one of your MCP servers — calls by name. The model writes field values by name as a JSON object, e.g. {"Name": "Ana", "Status": "Done"}, and can read the base's schema first so names and options match.

ToolArguments
list_recordsbase_id · table_id · view_id? · filter_by_formula? · only_fields? · sort_field? · sort_direction? · max_records?
get_recordbase_id · table_id · record_id
create_recordbase_id · table_id · fields? · records? · typecast?
update_recordbase_id · table_id · record_id? · fields? · records? · typecast?
upsert_recordbase_id · table_id · merge_on · fields? · records? · typecast?
delete_recordbase_id · table_id · record_id? · record_ids? — blocked by default
list_bases—
get_base_schemabase_id

When the node has a base (and a table), base_id and table_id become optional and default to them.

What you control

  • Where the model can work. This node's base (the default) keeps the model in one base — the one you pick in the toolkit settings or, when empty, the Single operation's — and in one table if you pick it. Another base or table is refused before Airtable is called, and list_bases only shows that base. Any base opens every base the credential reaches.
  • Characters per call sent to the model. 20,000 by default, anything from 1,000 to 200,000.
  • Deleting starts blocked. Through the API there is no trash. Unblock delete_record under Block these tool calls if the agent needs it; block updates the same way to make the agent read-and-add only.

What goes back to the model

The same response as the operation. list_records returns 50 records unless the model asks for more, up to 200 — the model decides; a limit set in Single operation doesn't count in toolkit mode. Records that don't fit the characters limit are left out whole, with a notes field saying how many. Arguments are used as written: a {{payload.x}} the model writes is not resolved against the flow.

Testing a tool

⚠Only a tool call picks the tool. In AI toolkit mode, only an AI Node, an MCP client or a voice agent chooses which tool the node runs. Run Test, a flow or a webhook run the operation saved on the node: an operation in their payload that names another tool is refused.
✦To try a tool, call it from an AI Node or from an MCP client. Its arguments look like this:
jsonA tool call
{ "operation": "list_records", "filter_by_formula": "{Status} = \"Open\"", "max_records": 5 }
⚠A node in toolkit mode is not part of the pipeline. Events arriving through connections made before you switched are refused — the node only runs the tool it is asked for.

Gotchas

  • A failed batch may be half written. Batches go 10 records per call; when one call fails the earlier ones already wrote, and the error says how many.
  • An upsert with two matches fails instead of picking one. Match on fields that identify a single record — an email, an external ID.
  • A 429 waits 30 seconds and retries once. Airtable's limit is 5 requests a second per base.
  • Field names are exact. A misspelled name is an error from Airtable; get_base_schema gives the model the real ones.