InTouch Hub · Blue Isle Software

Airtable

List, create, and update records in an Airtable base via the Airtable Web API.

Provided free and as is, without warranty of any kind — including merchantability, fitness for a particular purpose, and the accuracy or completeness of any result. See the licence. You are responsible for checking what this produces before relying on it.

databaseproductivityrecordsstatus

Airtable

List, create, and update records in an Airtable base using the Airtable Web API. Standard-library Python only — no external dependencies.

Grounded in the official docs: https://airtable.com/developers/web/api/introduction

Operations

operation HTTP Endpoint Notes
list GET /v0/{baseId}/{tableIdOrName} Optional view, filterByFormula, maxRecords, pageSize, offset.
create POST /v0/{baseId}/{tableIdOrName} Body { "records": [ { "fields": {…} } ] }.
update PATCH /v0/{baseId}/{tableIdOrName} Body { "records": [ { "id": "rec…", "fields": {…} } ] }. PATCH is non-destructive — only the supplied fields change.

Inputs

name required applies to description
apiKey yes all Airtable personal access token (PAT).
operation yes all list, create, or update.
baseId yes all Base ID, starts with app….
tableIdOrName yes all Table ID (tbl…) or table name.
view no list View name or ID.
filterByFormula no list Airtable formula, e.g. {Status}='Open'.
maxRecords no list Max total records to return.
pageSize no list Records per page (max 100).
offset no list Pagination offset from a prior list call.
records yes create, update JSON array of record objects.
typecast no create, update true to coerce string values to field types.

Outputs

key description
result The raw Airtable response body (JSON string). For list, contains records and an optional offset. For create/update, contains the affected records.
status HTTP status code as a string (e.g. 200).

Reference as {{run.result}} / {{run.status}} in a job (the tool publishes result and status).

Getting an API key

  1. Sign in to Airtable and go to https://airtable.com/create/tokens.
  2. Create a personal access token.
  3. Grant scopes: data.records:read (for list) and/or data.records:write (for create/update).
  4. Add the base(s) the token may access.
  5. Copy the token (starts with pat…) and pass it as apiKey.

You can find your baseId (app…) in the API docs for your base at https://airtable.com/developers/web/api/introduction (select the base from the right sidebar), or in the base URL when viewing it in the browser.

Examples

1. List up to 5 open tasks from a view

operation       = list
apiKey          = patXXXXXXXXXXXXXX
baseId          = appAbCdEfGhIjKlMn
tableIdOrName   = Tasks
view            = Grid view
filterByFormula = {Status}='Open'
maxRecords      = 5

Returns JSON like:

{
  "records": [
    { "id": "recABC123", "createdTime": "2026-06-01T12:00:00.000Z",
      "fields": { "Name": "Ship release", "Status": "Open" } }
  ]
}

2. Create a record

operation     = create
apiKey        = patXXXXXXXXXXXXXX
baseId        = appAbCdEfGhIjKlMn
tableIdOrName = Tasks
records       = [{"fields": {"Name": "Write docs", "Status": "Open"}}]

3. Update an existing record (non-destructive)

operation     = update
apiKey        = patXXXXXXXXXXXXXX
baseId        = appAbCdEfGhIjKlMn
tableIdOrName = Tasks
records       = [{"id": "recABC123", "fields": {"Status": "Done"}}]

Only the Status field is changed; all other fields on recABC123 are left intact.

Publishes

The keys a later task may reference as {{taskName.key}}. Referencing anything not listed here resolves to nothing at run time.

Input Properties

Every property this tool accepts, from its own tool.iml.

Property Type Required Default Description
apiKey string yes Airtable personal access token (PAT). Create one at https://airtable.com/create/tokens with data.records:read and/or data.records:write scopes. Sent as 'Authorization: Bearer '.
operation string yes One of: list, create, update
baseId string no The Airtable base ID (starts with 'app...'). Required for all operations. Find it in the API docs for your base or the base URL.
tableIdOrName string no The table ID (starts with 'tbl...') or the table name. Required for all operations.
view string no (list) Optional view name or ID to constrain returned records.
filterByFormula string no (list) Optional Airtable formula to filter records, e.g. {Status}='Open'.
maxRecords string no (list) Optional maximum total number of records to return.
pageSize string no (list) Optional records per page (max 100, default 100).
offset string no (list) Optional pagination offset returned by a prior list call.
records string no (create/update) JSON array of record objects. Create: [{"fields":{...}}]. Update: [{"id":"rec...","fields":{...}}].
typecast string no (create/update) Set to 'true' to let Airtable coerce string values to the field's type.