← All platforms

Productivity

Airtable

target_app: "airtable" · endpoint /v1/messaging/execute · Bring your own credentials

Setup

Generate a personal access token at airtable.com/create/tokens with data.records:read and data.records:write scopes, granted access to the specific base(s) you need.

Credentials needed on your Connections page

api_keyPersonal Access Token. Find it: airtable.com/create/tokens

Actions

create_record

Create a row in a table.

Request body:

{
  "user_id": "...",
  "action": "create_record",
  "payload": { "baseId": "appXXXXXXXXXXXXXX", "tableName": "Tasks", "fields": { "Name": "New task" } },
  "target_app": "airtable"
}

provider_response.result shape:

{ "id": "rec...", "fields": {"Name":"New task"} }

list_records

List rows in a table.

Request body:

{
  "user_id": "...",
  "action": "list_records",
  "payload": { "baseId": "appXXXXXXXXXXXXXX", "tableName": "Tasks" },
  "target_app": "airtable"
}

provider_response.result shape:

{ "records": [{"id":"rec...","fields":{...}}] }

update_record

Update a specific row.

Request body:

{
  "user_id": "...",
  "action": "update_record",
  "payload": { "baseId": "appXXXXXXXXXXXXXX", "tableName": "Tasks", "recordId": "rec...", "fields": { "Status": "Done" } },
  "target_app": "airtable"
}

provider_response.result shape:

{ "id": "rec...", "fields": {"Status":"Done"} }

delete_record

Delete a row.

Request body:

{
  "user_id": "...",
  "action": "delete_record",
  "payload": { "baseId": "appXXXXXXXXXXXXXX", "tableName": "Tasks", "recordId": "rec..." },
  "target_app": "airtable"
}

provider_response.result shape:

{ "id": "rec...", "deleted": true }

Anticipated errors & fixes

404 "Could not find table"

Cause: tableName doesn't match exactly, or the token wasn't granted access to that base.

Fix: Table names are case-sensitive — copy it exactly from Airtable's UI. Also check the token's base access list.

422 "Unknown field name"

Cause: A field in your fields object doesn't match a real column name in that table.

Fix: Airtable → your base → ⋯ → API documentation shows exact field names for that table.

401 "Unauthorized: Invalid API key."

Cause: Your eConnect Authorization header is missing, malformed, or the key was regenerated/revoked.

Fix: Copy your api_key fresh from the eConnect dashboard and confirm the header reads exactly "Authorization: Bearer <key>".

429 "Too many requests"

Cause: You've exceeded your plan's per-minute rate limit.

Fix: Wait a minute and retry, or upgrade your plan for a higher per-minute limit.

429 "Monthly API limit exceeded"

Cause: You've used your plan's full monthly request allowance.

Fix: Wait for your next billing cycle reset, or upgrade to a plan with a higher monthly limit.

← Back to all platforms