Airtable ACTION
Create Single Record
Create a new record in a table. Provide field values in
record, e.g. { "Name": "Acme", "Stage": "Won" }. Use List Tables first to look up the table's field names and types. See the documentation- Action
- Writes data
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Airtable account once, then configure and run Create Single Record from your backend or agent.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "airtable_oauth-create-single-record",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
airtable_oauth: { authProvisionId: "apn_xxxxxxx" },
baseId: "Base",
tableId: "Table",
},
})
console.log(result)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "airtable_oauth-create-single-record",
"configured_props": {
"airtable_oauth": { "authProvisionId": "apn_xxxxxxx" },
"baseId": "Base",
"tableId": "Table"
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "airtable_oauth",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "airtable_oauth-create-single-record",
arguments: {
baseId: "Base",
tableId: "Table",
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
baseId Base | string | The ID of the base to use, e.g. appXXXXXXXXXXXXXX. Use List Bases to look one up. Required |
tableId Table | string | The ID of the table to use, e.g. tblXXXXXXXXXXXXXX. Use List Tables to look one up. Required |
record Record | object | An object keyed by Airtable field name, where each value is the data to write to that field, e.g. { "Name": "Acme", "Stage": "Won" }. Include at least one writable field, and any number of the table's other fields. Use List Tables to look up a table's field names and types. Computed fields (formula, rollup, count, autonumber, created time, created by, last modified time and last modified by) cannot be written to. Enable Typecast when supplying human-readable values such as select option names or date strings. You may also use a custom expression. Optional |
typecast Typecast | boolean | The Airtable API will perform best-effort automatic data conversion from string values if the typecast parameter is True. This is disabled by default to ensure data integrity, but it may be helpful for integrating with 3rd party data sources. Optional |
returnFieldsByFieldId Return Fields By ID | boolean | If set to true, the returned field objects will have the field ID as the key, instead of the field name. Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- airtable_oauth-create-single-record
- Version
- 1.0.0
- App
- Airtable
- Authentication
- OAuth
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗