Airtable
Overview
Section titled “Overview”Airtable merges spreadsheet functionality with database power, enabling teams to organize projects, track tasks, and collaborate through customizable views, automation, and integrations for data management. With the Airtable integration in SquadOS, your agents can programmatically create and manage bases, tables, fields, and records, making it a dynamic data hub for any workflow.
- Official website: https://airtable.com/
- Composio documentation: docs.composio.dev/toolkits/airtable
Authentication
Section titled “Authentication”This tool uses OAuth 2.0 (OAUTH2) or API key (API_KEY) to connect.
You will need the following fields (custom OAuth 2.0 mode):
| Field | Required | Description |
|---|---|---|
client_id | Yes | Client ID from the OAuth app registered in the Airtable Developer Portal. |
client_secret | Yes | Client Secret from the OAuth app registered in the Airtable Developer Portal. |
How to get credentials
Section titled “How to get credentials”Option A — OAuth 2.0 (recommended)
Section titled “Option A — OAuth 2.0 (recommended)”- Go to the Airtable Developer Portal and sign in with your Airtable account.
- Select OAuth integrations from the left menu and click + New OAuth Integration.
- Fill in the app name, description, and optionally the website URL. Save.
- After saving, Airtable displays your Client ID and Client Secret — store them securely.
- In the app’s Redirect URLs section, add exactly the Composio callback URL:
https://backend.composio.dev/api/v3/toolkits/auth/callback(no trailing slash,httpsprotocol).
Option B — Personal API token
Section titled “Option B — Personal API token”- Go to airtable.com/create/tokens and click Create new token.
- Give the token a name, select the required scopes (e.g.,
data.records:read,data.records:write,schema.bases:read), and choose which bases the token can access. - Click Create token and copy the displayed value — it is only shown once.
How to connect in SquadOS
Section titled “How to connect in SquadOS”- Go to Tools in the side menu (
/admin/tools). - Open the Available tab and search for
Airtable. - Click the card to open the details modal and hit Connect.
- You’re taken to the secure connection page hosted by Composio, where you authorize access (OAuth) or enter the credentials obtained above.
- Once done, you’re sent back to SquadOS with the account connected and the tool available for your agents. (Connection-flow details in Organization Tools.)
How do I set up custom OAuth credentials for Airtable?
Section titled “How do I set up custom OAuth credentials for Airtable?”For a step-by-step guide on creating and configuring your own Airtable OAuth credentials with Composio, see How to create OAuth credentials for Airtable.
Available actions
Section titled “Available actions”Create base
Section titled “Create base”AIRTABLE_CREATE_BASE
Creates a new Airtable base with specified tables and fields within a workspace.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name for the new Airtable base, visible in the UI. |
tables | array | Yes | Configurations for tables to be created in the new base; each table needs ‘name’ and ‘fields’. Must be an array of table objects, not a stringified JSON. The first field in each table cannot be ‘singleSelect’ as it becomes the primary field. Select field choices must include both ‘id’ and ‘name’ for each choice. Field types ‘formula’, ‘rollup’, ‘count’, ‘lookup’, ‘multipleLookupValues’, ‘autoNumber’, ‘createdTime’, and ‘lastModifiedTime’ are not supported at base creation. For ‘dateTime’ fields, options require ‘dateFormat’ (with name: ‘local’|‘friendly’|‘us’|‘european’|‘iso’) and ‘timeFormat’ (with name: ‘12hour’|‘24hour’); ‘timeZone’ defaults to ‘utc’ if not specified. |
workspaceId | string | Yes | Workspace ID where the base will be created. MUST start with ‘wsp’ prefix (e.g., ‘wspXXXXXXXXXXXXXX’). Common mistake: Do not use user IDs (usr prefix), base IDs (app prefix), or other Airtable IDs - only workspace IDs work here. Get your workspace ID from Airtable workspace settings or via the List Bases API. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Create comment
Section titled “Create comment”AIRTABLE_CREATE_COMMENT
Tool to create a comment on a specific Airtable record. Use when adding comments to records, mentioning collaborators using @[userId] syntax, or creating threaded comment replies. Supports optional parentCommentId for threaded conversations.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
text | string | Yes | The content of the comment. To mention a user, use the format @[userId] (e.g., @[usrGISFlfA7l5F7kY6]). |
baseId | string | Yes | The unique identifier of the Airtable base. This typically starts with ‘app’. |
recordId | string | Yes | The unique identifier of the record on which the comment will be created. This typically starts with ‘rec’. |
tableIdOrName | string | Yes | The unique identifier (typically starting with ‘tbl’) or the name of the table within the base. |
parentCommentId | string | No | The ID of the parent comment for creating threaded replies. If provided, this comment will be a reply to the specified parent comment. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Create field
Section titled “Create field”AIRTABLE_CREATE_FIELD
Creates a new field within a specified table in an Airtable base.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | REQUIRED. The name for the new field. Field names must be unique within a table. |
type | string | No | The type for the new field. If not provided, it defaults to ‘singleLineText’. Types that can be created via API: ‘singleLineText’, ‘multilineText’, ‘richText’, ‘singleSelect’, ‘multipleSelects’, ‘checkbox’, ‘number’, ‘percent’, ‘currency’, ‘date’, ‘dateTime’, ‘duration’, ‘phoneNumber’, ‘email’, ‘url’, ‘multipleAttachments’, ‘barcode’, ‘rating’, ‘multipleRecordLinks’, ‘createdBy’, ‘lastModifiedBy’, ‘externalSyncSource’. Cannot be created via API: ‘formula’, ‘rollup’, ‘count’, ‘lookup’, ‘multipleLookupValues’, ‘autoNumber’, ‘createdTime’, ‘lastModifiedTime’, ‘button’. |
baseId | string | Yes | REQUIRED. The unique identifier of the base where the field will be created. Format: ‘appXXXXXXXXXXXXXXX’ (17 characters starting with ‘app’). |
options | object | No | Type-specific configuration for the new field. Required for ‘multipleRecordLinks’ (must include ‘linkedTableId’). Also required for: ‘number’/‘percent’ (‘precision’), ‘currency’ (‘precision’ and ‘symbol’), ‘checkbox’ (‘color’ and ‘icon’), ‘date’ (‘dateFormat’), ‘dateTime’ (‘dateFormat’, ‘timeFormat’, ‘timeZone’), ‘rating’ (‘max’, ‘color’ and ‘icon’). For ‘singleSelect’ and ‘multipleSelects’, ‘choices’ array must include objects with ‘name’ (required) and optionally ‘color’. Do not include ‘id’ when creating new choices. |
description | string | No | An optional description for the new field. |
tableIdOrName | string | Yes | The ID or name of the table within the base where the field will be created. Table IDs start with ‘tbl’ followed by 14 characters. Table names are case-sensitive. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Create multiple records (Deprecated)
Section titled “Create multiple records (Deprecated)”AIRTABLE_CREATE_MULTIPLE_RECORDS
DEPRECATED: Use AIRTABLE_CREATE_RECORDS instead. Creates multiple new records in a specified Airtable table.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
baseId | string | Yes | Required. The unique identifier of the Airtable base (e.g., ‘appXXXXXXXXXXXXXX’). |
records | array | Yes | Required. List of record objects to create. Each record must have a ‘fields’ key containing a dictionary mapping field names to values. Field names are case-sensitive. Airtable’s API limits creation to 10 records per request; more than 10 are automatically split into batches. |
typecast | boolean | No | If true, Airtable will perform automatic type conversion. Defaults to false. |
tableIdOrName | string | Yes | Required. The table ID (e.g., ‘tblXXXXXXXXXXXXXX’) or the table name (e.g., ‘Tasks’). |
returnFieldsByFieldId | boolean | No | If true, the returned field objects will use field IDs as keys instead of field names. Default is false. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Create a record (Deprecated)
Section titled “Create a record (Deprecated)”AIRTABLE_CREATE_RECORD
DEPRECATED: Use CreateRecords instead. Creates a new record in a specified Airtable table; field values must conform to the table’s column types.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
baseId | string | Yes | Required. The unique identifier of the Airtable base (e.g., ‘appXXXXXXXXXXXXXX’). Use AIRTABLE_LIST_BASES to find available base IDs. |
fields | object | No | A dictionary of field names (or IDs) and their values for the new record. Field names must exactly match those in the table schema (case-sensitive). IMPORTANT: Use AIRTABLE_GET_BASE_SCHEMA with the specific baseId to discover valid field names, IDs, types, and options before creating records. |
typecast | boolean | No | When set to true, enables automatic data conversion from strings to appropriate field types. Default is false. |
tableIdOrName | string | Yes | Required. The table ID (e.g., ‘tblXXXXXXXXXXXXXX’) or table name (e.g., ‘Tasks’). |
returnFieldsByFieldId | boolean | No | If true, the returned field objects will use field IDs as keys. Default is false. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Create record from natural language
Section titled “Create record from natural language”AIRTABLE_CREATE_RECORD_FROM_NATURAL_LANGUAGE
Creates a new record in an Airtable table from a natural language description. Fetches the table schema, uses an LLM to generate the correct field payload, and creates the record with typecast enabled for automatic type conversion.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
baseId | string | Yes | Unique identifier of the Airtable base, typically starting with ‘app’. |
nl_query | string | Yes | Natural language description of the record to create. Example: ‘Add a task called Fix Login Bug, status In Progress, priority High, due date 2025-03-15’. |
typecast | boolean | No | If True, Airtable will automatically convert string values to their appropriate types. Enabled by default. |
tableIdOrName | string | Yes | Unique identifier (typically starting with ‘tbl’) or name of the table within the specified base. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Create records
Section titled “Create records”AIRTABLE_CREATE_RECORDS
Tool to create multiple records (up to 10) in a specified Airtable table. Use when you need to add new rows to a table with field values. Rate limit: 5 requests per second per base.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
baseId | string | Yes | The unique identifier of the Airtable base. Format: ‘app’ followed by alphanumeric characters (e.g., ‘appHPvgqYXl3LNHXq’). |
records | array | Yes | Array of record objects to create. Each record object must contain a ‘fields’ property with the cell values. Maximum of 10 records can be created per request. |
typecast | boolean | No | If true, Airtable will perform best-effort automatic data conversion from string values. Default: false. |
tableIdOrName | string | Yes | The unique identifier or name of the table where records will be created. Table IDs are recommended over names for stability. Format: ‘tbl’ followed by alphanumeric characters. |
returnFieldsByFieldId | boolean | No | If true, the returned field objects will use field IDs as keys. Defaults to false. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Create table
Section titled “Create table”AIRTABLE_CREATE_TABLE
Creates a new table within a specified existing Airtable base, allowing definition of its name, description, and field structure.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | The desired name for the new table. |
fields | array | Yes | A list of field configurations for the new table. Each must include ‘name’ (string) and ‘type’ (string). IMPORTANT: The first field becomes the primary field. Computed field types (formula, rollup, count, lookup, etc.) cannot be created via the API. |
base_id | string | Yes | The unique identifier of the base where the new table will be created. |
if_exists | string | No | Options for handling duplicate table name scenarios: “error”, “skip”, or “return_existing”. |
description | string | No | An optional textual description for the new table. |
reorder_message | string | No | Internal field used to track field reordering messages. Populated automatically. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Delete comment
Section titled “Delete comment”AIRTABLE_DELETE_COMMENT
Tool to delete a comment from a record in an Airtable table. Non-admin users can only delete their own comments; Enterprise Admins can delete any comment.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
baseId | string | Yes | The unique identifier of the Airtable base from which the comment will be deleted. |
recordId | string | Yes | The unique identifier of the record within the specified table from which the comment will be deleted. |
rowCommentId | string | Yes | The unique identifier of the comment to be deleted from the specified record. |
tableIdOrName | string | Yes | The unique identifier (ID) or name of the table within the specified base that contains the record and comment. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Delete multiple records
Section titled “Delete multiple records”AIRTABLE_DELETE_MULTIPLE_RECORDS
Tool to delete up to 10 specified records from a table within an Airtable base. Use when you need to remove multiple records in a single operation.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
baseId | string | Yes | The unique identifier of the Airtable base containing the records to be deleted. |
recordIds | array | Yes | A list of unique identifiers for the records to be deleted. |
tableIdOrName | string | Yes | The unique identifier (e.g., ‘tbluIzIsxPIM2V3Y4’) or the name (e.g., ‘Marketing Leads’) of the table within the base from which records will be deleted. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Delete record
Section titled “Delete record”AIRTABLE_DELETE_RECORD
Permanently deletes a specific record from an existing table within an existing Airtable base.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
baseId | string | Yes | Unique identifier of the Airtable base, typically starting with ‘app’. |
recordId | string | Yes | Unique identifier of the record to be deleted, typically starting with ‘rec’. |
tableIdOrName | string | Yes | Unique identifier (typically starting with ‘tbl’) or name of the table within the specified base. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Get base schema
Section titled “Get base schema”AIRTABLE_GET_BASE_SCHEMA
Retrieves the detailed schema for a specified Airtable base, including its tables, fields, field types, and configurations, using the baseId.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
baseId | string | Yes | The unique identifier for the Airtable base. This ID typically starts with ‘app’ and is followed by a string of alphanumeric characters. It can be found in the URL when viewing the base. |
include | array | No | Optional list of additional fields to include in the views object response. Currently only supports the value ‘visibleFieldIds’ (for views of type ‘grid’ only). |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Get record
Section titled “Get record”AIRTABLE_GET_RECORD
Retrieves a specific record from an Airtable table by its record ID. Requires a known, valid record ID obtained from listing records or another API call - this tool cannot search or list records. Empty field values are not returned in the response.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
baseId | string | Yes | ID of the Airtable base. |
recordId | string | Yes | ID of the record to retrieve. Must be a real record ID obtained from listing records or another API call. Format: starts with ‘rec’ followed by exactly 14 alphanumeric characters (e.g., ‘rec4YsVV8cU6V4EiT’). |
timeZone | string | No | Time zone for formatting dates when cellFormat=‘string’. Uses IANA time zone format (e.g., ‘America/New_York’, ‘Europe/London’, ‘UTC’). |
cellFormat | string | No | Controls cell value formatting: ‘json’ for native types, ‘string’ for all values as strings. |
userLocale | string | No | User locale for formatting dates when cellFormat=‘string’. Uses BCP 47 language tag format (e.g., ‘en-us’, ‘de-de’). |
tableIdOrName | string | Yes | ID or name of the table. |
returnFieldsByFieldId | boolean | No | If true, field keys in the response are field IDs; otherwise, field names. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Get user information
Section titled “Get user information”AIRTABLE_GET_USER_INFO
Retrieves information, such as ID and permission scopes, for the currently authenticated Airtable user from the /meta/whoami endpoint.
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
List bases
Section titled “List bases”AIRTABLE_LIST_BASES
Retrieves all Airtable bases accessible to the authenticated user, which may include an ‘offset’ for pagination.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
offset | string | No | Pagination token for retrieving the next page of results. This is an opaque cursor returned in the ‘offset’ field of a previous list bases response. Do not construct or modify this value. Only present when there are more than 1,000 bases. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
List comments
Section titled “List comments”AIRTABLE_LIST_COMMENTS
Tool to list comments on a specific Airtable record. Use when retrieving comments for a record, with optional pagination support for large comment threads.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
baseId | string | Yes | The unique identifier of the Airtable base from which to list comments. |
offset | string | No | Pagination token to retrieve the next page of comments. Obtained from the previous response. |
pageSize | integer | No | The number of comments to return per page. Must be less than or equal to 100. Defaults to 100 if not specified. |
recordId | string | Yes | The unique identifier of the record for which comments are to be listed. |
tableIdOrName | string | Yes | The unique identifier or name of the table within the specified base containing the record. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
List records
Section titled “List records”AIRTABLE_LIST_RECORDS
Tool to list records from an Airtable table with filtering, sorting, and pagination. Use when you need to retrieve multiple records from a table with optional query parameters.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
sort | array | No | Array of sort objects to apply to records. Each object specifies a field and direction. IMPORTANT: Cannot sort by system metadata fields like ‘createdTime’ or ‘lastModifiedTime’. |
view | string | No | The name or ID of a view to use for filtering and sorting records. View names are case-sensitive. View IDs (format: ‘viwXXXXXXXXXXXXXX’) are more reliable. |
baseId | string | Yes | The ID of the Airtable base. Must start with ‘app’ followed by 14 characters. |
fields | array | No | Array of field names or IDs to include in the response. If not specified or if [’*’] is passed, all fields are returned. Field names are case-sensitive. |
offset | string | No | Opaque pagination cursor token returned in the ‘offset’ field of a previous list records response. Do not construct, modify, or decode it. Omit for the first page of results. |
pageSize | integer | No | Number of records to return per page. Must be between 1 and 100. Defaults to 100. |
timeZone | string | No | The time zone to use for formatting date and time fields. Required when cellFormat is ‘string’. |
cellFormat | string | No | Format for cell values. ‘json’ returns structured JSON values (default), ‘string’ returns simple string representations. |
maxRecords | integer | No | Maximum total number of records to return across all pages. If not specified, all matching records are returned. |
userLocale | string | No | The user locale to use for formatting cell values (e.g., ‘en-US’, ‘fr-FR’). Required when cellFormat is ‘string’. |
tableIdOrName | string | Yes | The ID or name of the table within the base. Table names are case-sensitive. |
recordMetadata | array | No | Array of strings specifying additional metadata to include. Currently supports ‘commentCount’ to include comment counts on records. |
filterByFormula | string | No | Airtable formula to filter records. Field names go in curly braces (e.g., {status} for the “status” field) and are case-sensitive; strings in quotes. For date comparisons use functions like IS_AFTER(), IS_BEFORE(), and IS_SAME() instead of direct comparison. Use AIRTABLE_GET_BASE_SCHEMA to verify exact field names before using them in formulas. |
returnFieldsByFieldId | boolean | No | If true, field keys in the response will be field IDs instead of field names. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Update comment
Section titled “Update comment”AIRTABLE_UPDATE_COMMENT
Tool to update an existing comment on a specific Airtable record. Use when modifying comment text or updating user mentions using @[userId] syntax. API users can only update comments they have created.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
text | string | Yes | The updated comment text. To mention a user, use the format @[userId] (e.g., @[usrGISFlfA7l5F7kY6]). |
baseId | string | Yes | The unique identifier of the Airtable base. This typically starts with ‘app’. |
recordId | string | Yes | The unique identifier of the record containing the comment. This typically starts with ‘rec’. |
rowCommentId | string | Yes | The unique identifier of the comment to update. This typically starts with ‘com’. |
tableIdOrName | string | Yes | The unique identifier (typically starting with ‘tbl’) or the name of the table within the base. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Update field
Section titled “Update field”AIRTABLE_UPDATE_FIELD
Updates a field’s name or description in an Airtable table. Use this action to modify field metadata without changing the field’s type or options. At least one of ‘name’ or ‘description’ must be provided.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
name | string | No | The new name for the field. At least one of ‘name’ or ‘description’ must be provided. |
baseId | string | Yes | The unique identifier of the Airtable base containing the field. |
fieldId | string | Yes | The ID of the field to update. IMPORTANT: Unlike data API endpoints, the Metadata API requires field IDs - field names are not supported. Field IDs start with ‘fld’ followed by 14 alphanumeric characters. Use AIRTABLE_GET_BASE_SCHEMA to find field IDs. |
tableId | string | Yes | The ID of the table containing the field to update. IMPORTANT: The Metadata API requires table IDs - table names are not supported. Table IDs start with ‘tbl’ followed by 14 alphanumeric characters. |
description | string | No | The new description for the field. Must not exceed 20,000 characters. At least one of ‘name’ or ‘description’ must be provided. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Update multiple records
Section titled “Update multiple records”AIRTABLE_UPDATE_MULTIPLE_RECORDS
Tool to update up to 10 records in an Airtable table with selective field modifications. Use when you need to modify multiple existing records or perform upsert operations. Updates are not performed atomically.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
baseId | string | Yes | The ID of the Airtable base containing the table. |
records | array | Yes | List of records to be updated. Airtable’s API limits updates to a maximum of 10 records per request. Split larger updates into multiple requests of 10 or fewer records each. |
typecast | boolean | No | If true, Airtable attempts automatic data conversion from string values on a best-effort basis. |
performUpsert | object | No | Configuration for upsert behavior when updating records. |
tableIdOrName | string | Yes | The ID or name of the table within the base where records will be updated. |
returnFieldsByFieldId | boolean | No | If true, returns field values keyed by field ID instead of field name. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Update multiple records (PUT)
Section titled “Update multiple records (PUT)”AIRTABLE_UPDATE_MULTIPLE_RECORDS_PUT
Tool to destructively update multiple records in Airtable using PUT, clearing unspecified fields. Use when you need to fully replace record data or perform upsert operations. Supports up to 10 records per request.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
baseId | string | Yes | The ID of the Airtable base containing the table. |
records | array | Yes | Array of up to 10 record objects to update. PUT destructively updates records, clearing unspecified fields. |
typecast | boolean | No | If true, Airtable will attempt to convert string values into appropriate cell values. |
performUpsert | object | No | Configuration for upsert behavior. |
tableIdOrName | string | Yes | The ID or name of the table within the base where records will be updated. |
returnFieldsByFieldId | boolean | No | If true, returns fields object keyed by field ID instead of field name. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Update record
Section titled “Update record”AIRTABLE_UPDATE_RECORD
Modifies specified fields of an existing record in an Airtable base and table; the base, table, and record must exist.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
baseId | string | Yes | The unique identifier of the Airtable base containing the record to be updated. |
fields | object | Yes | Fields to update. Keys are field names (case-sensitive) or IDs (fldXXXX recommended). Only specified fields are modified. Empty strings convert to null. Use AIRTABLE_GET_BASE_SCHEMA for exact names/IDs. Date-only fields require ‘YYYY-MM-DD’ format. Date-time fields require ISO 8601. |
recordId | string | Yes | The unique identifier (ID) of the record to be updated within the specified table. MUST be in Airtable’s record ID format: exactly 17 characters starting with ‘rec’ followed by 14 alphanumeric characters (e.g., ‘recABC123def456G’). |
typecast | boolean | No | Enables automatic data conversion and select option creation. CRITICAL FOR SELECT FIELDS: When false (default), Airtable rejects updates if the value is not an existing option. When true, automatically creates new select options and converts strings to appropriate types. |
tableIdOrName | string | Yes | The unique identifier (ID) or the name of the table within the base that contains the record to be updated. |
returnFieldsByFieldId | boolean | No | If true, API response keys record fields by field ID instead of name. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Update record (PUT)
Section titled “Update record (PUT)”AIRTABLE_UPDATE_RECORD_PUT
Updates an existing record in an Airtable base using PUT method. Use when you want to replace all field values, clearing any unspecified fields. For partial updates that preserve unspecified fields, use the PATCH-based update action instead.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
baseId | string | Yes | The unique identifier of the Airtable base containing the record to be updated. |
fields | object | Yes | Specifies fields to update. Keys are field names or IDs; values are new content. PUT method clears all unspecified cell values (destructive update). Empty strings are automatically converted to null. For Date fields: use ‘YYYY-MM-DD’ format. For DateTime fields: use ISO 8601 (e.g., ‘2026-01-02T10:30:00.000Z’). |
recordId | string | Yes | The unique identifier (ID) of the record to be updated within the specified table. |
typecast | boolean | No | When set to true, enables automatic data conversion from strings to appropriate field types. Default is false. |
tableIdOrName | string | Yes | The unique identifier (ID) or the name of the table within the base that contains the record to be updated. |
returnFieldsByFieldId | boolean | No | If true, API response keys record fields by field ID instead of name. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Update table
Section titled “Update table”AIRTABLE_UPDATE_TABLE
Updates the name, description, and/or date dependency settings of a table in Airtable. Use this action to modify table metadata without changing the table’s fields or views. At least one of ‘name’, ‘description’, or ‘dateDependencySettings’ must be provided.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
name | string | No | The new name for the table. Must be non-empty if provided. At least one of ‘name’, ‘description’, or ‘dateDependencySettings’ must be provided. |
baseId | string | Yes | The unique identifier of the Airtable base containing the table to update. |
description | string | No | The new description for the table. Must not exceed 20,000 characters. |
tableIdOrName | string | Yes | The unique identifier or name of the table to update. |
dateDependencySettings | object | No | Configuration for date-based task scheduling in Airtable tables. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |
Upload attachment
Section titled “Upload attachment”AIRTABLE_UPLOAD_ATTACHMENT
Uploads a file attachment to a specified field in an Airtable record. Use when you need to add a file to an attachment field. The file must be provided as a base64-encoded string.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
file | string | Yes | The file content encoded as a base64 string. |
baseId | string | Yes | The unique identifier of the Airtable base containing the record. |
filename | string | Yes | The name of the file including its extension (e.g., ‘test.txt’, ‘document.pdf’, ‘image.jpg’). |
recordId | string | Yes | The unique identifier of the record to which the attachment will be uploaded. |
contentType | string | Yes | MIME type of the file being uploaded (e.g., ‘text/plain’, ‘image/jpeg’, ‘application/pdf’). |
attachmentFieldIdOrName | string | Yes | The field ID (e.g., ‘fldXXXXXXXXXXXXXX’) or field name of the attachment field where the file will be uploaded. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error if any occurred during the execution of the action. |
successful | boolean | Yes | Whether or not the action execution was successful. |