Add a record to an Airtable table
Let your AI add records to an Airtable table; the token stays server-side.
Create a record in an Airtable table via the REST API. The personal access token rides the Authorization header and is resolved server-side at delivery; the base and table are fixed at install. The intent carries a fields object matching the table's own columns, so one install covers whatever the table's schema says.
The credential never enters the model context: it lives in the FlurryPORT secret store, deliveries are signed server-side, and every send returns a receipt your agent can quote.
What this is
Your AI adds records to an Airtable table with a personal access token that stays server-side. The intent carries a fields object matching the table's own columns, so one install covers whatever the table's schema says, today and after you add a column.Setup in two steps
- Airtable side. At airtable.com/create/tokens create a token with the single scope data.records:write and, crucially, add the target base under Access: a token without base access answers 403 even with the right scope.
- FlurryPORT side. Your AI requests secret setup and FlurryPORT emails you a secure page. Paste the token; base and table are fixed at install.
Credential custody
Stored encrypted, added at delivery, scrubbed from stored responses. One scope, one base: the blast radius of the token is one table's rows.What to expect
Field names must match the column names exactly; 422 UNKNOWNFIELDNAME is the API telling you to read the table first. With typecast on, Airtable coerces strings into dates and numbers, which suits AIs composing records from conversation.Install with your agent
npx flurryport mcp
Point your agent at the FlurryPORT MCP server (npx flurryport mcp) and ask it for the flurryport:airtable-add recipe. Works from AI clients that can run a local process: desktop apps and terminal agents. Web-only chat clients cannot reach a local MCP server; open a desktop client instead.
Tools your agent gains
flry_airtable_add- Add a record to the configured Airtable table. Input: fields (required object mapping the table's exact column names to values).
Setup walkthrough
AIRTABLE_PAT: At airtable.com/create/tokens: Create new token, add the single scope data.records:write, and under Access add the target base (a token without base access answers 403 even with the right scope). Create, copy the pat token, and paste it into the FlurryPORT secret page. Pages about OAuth integrations or redirect URIs are the wrong place; personal access tokens need neither.
Intent schema
{
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"description": "Field name to value map using the table's exact column names, like {\"Name\": \"...\", \"Notes\": \"...\"}. Unknown field names are rejected by Airtable, so read the table's columns first."
}
}
}Install-time parameters
baseId- install-time: Base that receives the records created by this install.
tableId- install-time: Table within the base; the tbl id is rename-proof.
Transformation
{ "fields": $body.fields, "typecast": true }Delivery target
POST https://api.airtable.com/v0/$install.baseId/$install.tableId
Placeholders like $secrets.NAME resolve server-side at delivery, never in the agent.
Gotchas
- Field names must match the table's column names exactly; an unknown name answers 422 UNKNOWN_FIELD_NAME, so read the table before writing to it.
- A token missing base access answers 403 NOT_AUTHORIZED even with the right scope.
- typecast true lets Airtable coerce strings into dates and numbers; success is 200 with the created record.
Where this fits
Related recipes
Let your AI append entries to a Notion database; the integration token stays server-side.
Create and update Azure DevOps work items in one batched pipe: priority, state, tags, and sprint included.
Query Azure DevOps work items with WIQL and read the matching ids back, without your AI ever holding the PAT.
Read fields for a batch of Azure DevOps work items by id: title, state, tags, priority, iteration.
Let your AI file Azure DevOps work items (bugs, tasks) the model never holds credentials for.
Let your AI post to Discord through a channel webhook the model never sees.