# Airtable

Your Toolhouse AI Worker can connect to Airtable using 25 specialized tools.

## Auth Connection

This service requires an auth connection to use its tools. You can set this up in your Toolhouse dashboard under [Auth Connections](https://toolhouse.app/auth-connections?authkit_slugs=airtable).

## Tools (25)

### `Airtable Create Base`

Integration name: **AIRTABLE\_CREATE\_BASE**

Creates a new Airtable base with specified tables and fields within a workspace.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter     | Type   | Required | Example                                                                                                                                                                                                                                                                                                                                                                                                                            | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ------------- | ------ | :------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `name`        | string |     ✅    | `"Marketing Campaigns Q3"`                                                                                                                                                                                                                                                                                                                                                                                                         | Name for the new Airtable base, visible in the UI.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `tables`      | array  |     ✅    | `[{"name":"Apartments","fields":[{"name":"Name","type":"singleLineText","description":"Name of the apartment"},{"name":"Address","type":"singleLineText"},{"name":"Visited","type":"checkbox","options":{"icon":"check","color":"greenBright"}},{"name":"CreatedAt","type":"dateTime","options":{"timeZone":"utc","dateFormat":{"name":"iso"},"timeFormat":{"name":"24hour"}}}],"description":"A to-do list of places to visit"}]` | 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 |     ✅    | `"wspabcdef12345678"`                                                                                                                                                                                                                                                                                                                                                                                                              | 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.                                                                                                                                                                                                                                                                                                                                                                                      |

***

### `Airtable Create Comment`

Integration name: **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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter         | Type   | Required | Example                          | Description                                                                                                                            |
| ----------------- | ------ | :------: | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `text`            | string |     ✅    | `"This is an important update."` | The content of the comment. To mention a user, use the format @\[userId] (e.g., @\[usrGISFlfA7l5F7kY6]).                               |
| `baseId`          | string |     ✅    | `"appXXXXXXXXXXXXXX"`            | The unique identifier of the Airtable base. This typically starts with 'app'.                                                          |
| `recordId`        | string |     ✅    | `"recYYYYYYYYYYYY"`              | The unique identifier of the record on which the comment will be created. This typically starts with 'rec'.                            |
| `tableIdOrName`   | string |     ✅    | `"tblXXXXXXXXXXXXXX"`            | The unique identifier (typically starting with 'tbl') or the name of the table within the base.                                        |
| `parentCommentId` | string |          | `"comXXXXXXXXXXXXX"`             | The ID of the parent comment for creating threaded replies. If provided, this comment will be a reply to the specified parent comment. |

***

### `Airtable Create Field`

Integration name: **AIRTABLE\_CREATE\_FIELD**

Creates a new field within a specified table in an Airtable base.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type   | Required | Example                                                                                                                                 | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| --------------- | ------ | :------: | --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`          | string |     ✅    | `"Status"`                                                                                                                              | REQUIRED. The name for the new field. Field names must be unique within a table.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `type`          | string |          | `"singleSelect"`                                                                                                                        | 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'. For attachment fields, use 'multipleAttachments' (legacy 'attachment' is auto-converted). Cannot be created via API: 'formula', 'rollup', 'count', 'lookup', 'multipleLookupValues', 'autoNumber', 'createdTime', 'lastModifiedTime', 'button'.                                                                                                                                                                                                                  |
| `baseId`        | string |     ✅    | `"appExampleBaseId"`                                                                                                                    | REQUIRED. The unique identifier of the base where the field will be created. Format: 'appXXXXXXXXXXXXXXX' (17 characters starting with 'app').                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `options`       | object |          | `{"choices":[{"name":"Todo","color":"redLight2"},{"name":"In Progress","color":"yellowLight2"},{"name":"Done","color":"greenLight2"}]}` | Type-specific configuration for the new field. Required for 'multipleRecordLinks' (must include 'linkedTableId' - the ID (format: tblXXXXXXXXXXXXXX) or name (case-sensitive) of the table to link to; if you provide 'isReversed' or 'prefersSingleRecordLink', they will be automatically stripped as the API rejects these fields in create requests and sets its own default values). 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') - sensible defaults are auto-applied if omitted. For 'singleSelect' and 'multipleSelects', 'choices' array must include objects with 'name' (required) and optionally 'color'. Do not include 'id' when creating new choices - the API will auto-generate them. |
| `description`   | string |          | `"Tracks the current status of a task."`                                                                                                | An optional description for the new field. This can provide context or instructions for the field's usage.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `tableIdOrName` | string |     ✅    | `"tblXXXXXXXXXXXXXX"`                                                                                                                   | 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 and must match exactly as they appear in Airtable.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |

***

### `Airtable Create Multiple Records`

Integration name: **AIRTABLE\_CREATE\_MULTIPLE\_RECORDS**

DEPRECATED: Use AIRTABLE\_CREATE\_RECORDS instead. Creates multiple new records in a specified Airtable table.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter               | Type    | Required | Example                                                                                                | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ----------------------- | ------- | :------: | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `baseId`                | string  |     ✅    | —                                                                                                      | Required. The unique identifier of the Airtable base (e.g., 'appXXXXXXXXXXXXXX').                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `records`               | array   |     ✅    | `[{"fields":{"Name":"Record 1","Status":"Active"}},{"fields":{"Name":"Record 2","Status":"Pending"}}]` | 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 and can contain any Unicode characters (e.g., 'Тема Reels', '日期'). Field values must match their configured types in Airtable (e.g., number fields require numeric values). Set typecast=true to enable automatic type conversion from strings. Note: Airtable's API limits creation to 10 records per request; if you provide more than 10 records, they will be automatically split into batches and processed in multiple requests.       |
| `typecast`              | boolean |          | —                                                                                                      | If true, Airtable will perform automatic type conversion. Helps with: converting strings to numbers, creating new options for single/multi-select fields, automatically creating/linking records in linked record fields from text values, and type coercion for compatible types. Does NOT help with: text field length/format constraints or fundamental type incompatibilities. If you get INVALID\_VALUE\_FOR\_COLUMN errors on text fields, check: (1) field type in Airtable (single-line vs long text), (2) any custom character limits, (3) whether the field expects a specific format. Defaults to false. |
| `tableIdOrName`         | string  |     ✅    | —                                                                                                      | Required. The table ID (e.g., 'tblXXXXXXXXXXXXXX') or the table name (e.g., 'Tasks').                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `returnFieldsByFieldId` | boolean |          | —                                                                                                      | If true, the returned field objects will use field IDs as keys instead of field names. Using field IDs is recommended for integrations that need to be resilient to field name changes. Default is false, which returns field names as keys.                                                                                                                                                                                                                                                                                                                                                                        |

***

### `Airtable Create Record`

Integration name: **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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter               | Type    | Required | Example                                                                            | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ----------------------- | ------- | :------: | ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `baseId`                | string  |     ✅    | `"appHPvgqYXl3LNHXq"`                                                              | Required. The unique identifier of the Airtable base (e.g., 'appXXXXXXXXXXXXXX'). Use AIRTABLE\_LIST\_BASES to find available base IDs.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `fields`                | object  |          | `"{\"Name\": \"New Task\", \"Status\": \"Todo\", \"Notes\": \"Complete by EOD\"}"` | 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). Field IDs (e.g., 'fldXXXXXXXXXXXXXX') are preferred for stability, but are UNIQUE to each base and table. IMPORTANT: Use AIRTABLE\_GET\_BASE\_SCHEMA with the specific baseId to discover valid field names, IDs, types, and options before creating records. Note: Fields with null, empty string, or boolean false values are automatically omitted from the request. Field type value requirements: - singleSelect: Must be a plain string option name (e.g., 'High'). DO NOT pass dict objects like {'id': 'selXXX'} or {'name': 'High'} - pass only the plain string. - multipleSelects: Must be an array of exact option names (e.g., \['Bug', 'Feature']). - checkbox: Use true to check. Omit or pass false to leave unchecked. - number/currency/percent: Must be a numeric value (int or float). Currency strings with symbols (e.g., '$100', '£689') are auto-converted. Plain numeric strings are NOT auto-converted - pass actual numbers or use typecast=true. - rating: Must be an integer. String numbers like '9' are auto-converted to integers. - date: Must be ISO 8601 format 'YYYY-MM-DD'. - dateTime: Must be ISO 8601 format (e.g., '2024-01-15T14:30:00.000Z', '2024-01-15T14:30:00+00:00'). Common formats like '2024-01-15 14:30:00', 'Jan 15, 2024', '01/15/2024' are auto-converted to ISO 8601. - singleLineText/multilineText/richText: Must be a string. - email/url/phoneNumber: Must be a string in appropriate format. - multipleAttachments: Must be an array of attachment objects with 'url' field. - singleCollaborator: Must be an object with 'id' or 'email' of a valid collaborator. - multipleRecordLinks: Must be an array of record IDs (e.g., \['recXXX', 'recYYY']). - duration: Must be a number representing total seconds (e.g., 278 for 4 minutes 38 seconds). Common conversions: 1 minute = 60, 1 hour = 3600, 1h30m = 5400. Time strings like 'H:MM:SS' or ISO 8601 duration (e.g., 'PT4M38S') are auto-converted to seconds. |
| `typecast`              | boolean |          | `true`                                                                             | When set to true, enables automatic data conversion from strings to appropriate field types. For example, if a singleSelect field receives a value that doesn't match an existing option, Airtable will create a new option with that value. Also converts string numbers to numeric types. Default is false, which requires exact type matching.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `tableIdOrName`         | string  |     ✅    | `"tblUkxCONS303zkN7"`                                                              | Required. The table ID (e.g., 'tblXXXXXXXXXXXXXX') or table name (e.g., 'Tasks', 'Meal Plan') where the record will be created. Table names with spaces and special characters are supported. This is separate from baseId and must be provided. Use AIRTABLE\_GET\_BASE\_SCHEMA to find table IDs/names within a base.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `returnFieldsByFieldId` | boolean |          | `true`                                                                             | If true, the returned field objects will use field IDs as keys instead of field names. Using field IDs is recommended for integrations that need to be resilient to field name changes. Default is false, which returns field names as keys.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |

***

### `Airtable Create Record From Natural Language`

Integration name: **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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type    | Required | Example               | Description                                                                                                                                               |
| --------------- | ------- | :------: | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `baseId`        | string  |     ✅    | `"appxxxxxxxxxxxxxx"` | Unique identifier of the Airtable base, typically starting with 'app'.                                                                                    |
| `nl_query`      | string  |     ✅    | —                     | 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 |          | —                     | If True, Airtable will automatically convert string values to their appropriate types (e.g., string to number, date parsing). Enabled by default.         |
| `tableIdOrName` | string  |     ✅    | `"tblxxxxxxxxxxxxxx"` | Unique identifier (typically starting with 'tbl') or name of the table within the specified base.                                                         |

***

### `Airtable Create Records`

Integration name: **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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter               | Type    | Required | Example                                                                                                                              | Description                                                                                                                                                                                                                                         |
| ----------------------- | ------- | :------: | ------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `baseId`                | string  |     ✅    | `"appHPvgqYXl3LNHXq"`                                                                                                                | The unique identifier of the Airtable base. Format: 'app' followed by alphanumeric characters (e.g., 'appHPvgqYXl3LNHXq').                                                                                                                          |
| `records`               | array   |     ✅    | `[{"fields":{"Name":"Test Record 1","Notes":"First test record"}},{"fields":{"Name":"Test Record 2","Notes":"Second test record"}}]` | 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 |          | —                                                                                                                                    | If true, Airtable will perform best-effort automatic data conversion from string values to the appropriate cell type. If false (default), field values must exactly match the expected type. Use with caution as it may produce unexpected results. |
| `tableIdOrName`         | string  |     ✅    | `"tblUkxCONS303zkN7"`                                                                                                                | 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 (e.g., 'tblUkxCONS303zkN7').                                        |
| `returnFieldsByFieldId` | boolean |          | —                                                                                                                                    | If true, the returned field objects will use field IDs as keys instead of field names. Defaults to false.                                                                                                                                           |

***

### `Airtable Create Table`

Integration name: **AIRTABLE\_CREATE\_TABLE**

Creates a new table within a specified existing Airtable base, allowing definition of its name, description, and field structure.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter         | Type   | Required | Example                                                                                                                                                                                                                                            | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| ----------------- | ------ | :------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`            | string |     ✅    | `"Projects"`                                                                                                                                                                                                                                       | The desired name for the new table.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `fields`          | array  |     ✅    | `[{"name":"Task Name","type":"singleLineText"},{"name":"Due Date","type":"date","options":{"dateFormat":{"name":"iso"}}},{"name":"Status","type":"singleSelect","options":{"choices":[{"name":"To Do"},{"name":"In Progress"},{"name":"Done"}]}}]` | 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. Valid primary field types: singleLineText, number, email, url, phoneNumber, date, dateTime, currency, percent, barcode, richText, multilineText, duration. All other field types cannot be primary. Note: formula and autoNumber CAN be primary in the UI but CANNOT be created via the API. If you need a multipleRecordLinks field, place a singleLineText field first as primary. Computed field types (formula, rollup, count, lookup, multipleLookupValues, autoNumber, createdTime, lastModifiedTime) cannot be created via the API. Field types requiring 'options': 'number'/'percent' (precision), 'currency' (precision, symbol), 'checkbox' (color, icon - colors must end in 'Bright', e.g., 'yellowBright'), 'date' (dateFormat), 'dateTime' (dateFormat, timeFormat, timeZone), 'rating' (color, icon, optionally max 1-10 defaults to 5 - colors must end in 'Bright'). For 'singleSelect'/'multipleSelects', provide 'choices' with objects containing 'name' only (no 'id'). For 'multipleRecordLinks', provide 'linkedTableId' (format tblXXXXXXXXXXXXXX). Do NOT include 'isReversed' or 'prefersSingleRecordLink'. |
| `base_id`         | string |     ✅    | `"appXXXXXXXXXXXXXX"`                                                                                                                                                                                                                              | The unique identifier of the base where the new table will be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `if_exists`       | string |          | `"error"`                                                                                                                                                                                                                                          | Options for handling duplicate table name scenarios.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `description`     | string |          | `"A table to track all ongoing projects."`                                                                                                                                                                                                         | An optional textual description for the new table.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `reorder_message` | string |          | —                                                                                                                                                                                                                                                  | Internal field used to track field reordering messages. This is populated automatically when fields are reordered.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |

***

### `Airtable Delete Comment`

Integration name: **AIRTABLE\_DELETE\_COMMENT**

Tool to delete a comment from a record in an Airtable table. Use when you need to remove an existing comment. Non-admin users can only delete their own comments; Enterprise Admins can delete any comment.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type   | Required | Example             | Description                                                                                                     |
| --------------- | ------ | :------: | ------------------- | --------------------------------------------------------------------------------------------------------------- |
| `baseId`        | string |     ✅    | `"appABC123xyz789"` | The unique identifier of the Airtable base from which the comment will be deleted.                              |
| `recordId`      | string |     ✅    | `"recGhi789jkl345"` | The unique identifier of the record within the specified table from which the comment will be deleted.          |
| `rowCommentId`  | string |     ✅    | `"comJkl012mno678"` | The unique identifier of the comment to be deleted from the specified record.                                   |
| `tableIdOrName` | string |     ✅    | `"tblDef456uvw012"` | The unique identifier (ID) or name of the table within the specified base that contains the record and comment. |

***

### `Airtable Delete Multiple Records`

Integration name: **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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type   | Required | Example                                    | Description                                                                                                                                              |
| --------------- | ------ | :------: | ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `baseId`        | string |     ✅    | `"appSOr2Y2mKPyR3C0"`                      | The unique identifier of the Airtable base containing the records to be deleted.                                                                         |
| `recordIds`     | array  |     ✅    | `["recMVpM4w004400ea","recWpM4w004400eb"]` | A list of unique identifiers for the records to be deleted.                                                                                              |
| `tableIdOrName` | string |     ✅    | `"tbluIzIsxPIM2V3Y4"`                      | 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. |

***

### `Airtable Delete Record`

Integration name: **AIRTABLE\_DELETE\_RECORD**

Permanently deletes a specific record from an existing table within an existing Airtable base.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type   | Required | Example               | Description                                                                                       |
| --------------- | ------ | :------: | --------------------- | ------------------------------------------------------------------------------------------------- |
| `baseId`        | string |     ✅    | `"appxxxxxxxxxxxxxx"` | Unique identifier of the Airtable base, typically starting with 'app'.                            |
| `recordId`      | string |     ✅    | `"recxxxxxxxxxxxxxx"` | Unique identifier of the record to be deleted, typically starting with 'rec'.                     |
| `tableIdOrName` | string |     ✅    | `"tblxxxxxxxxxxxxxx"` | Unique identifier (typically starting with 'tbl') or name of the table within the specified base. |

***

### `Airtable Get Base Schema`

Integration name: **AIRTABLE\_GET\_BASE\_SCHEMA**

Retrieves the detailed schema for a specified Airtable base, including its tables, fields, field types, and configurations, using the `baseId`.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example                 | Description                                                                                                                                                                                                                                                                     |
| --------- | ------ | :------: | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `baseId`  | string |     ✅    | `"appZueQaLuTv7fSXjJx"` | 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  |          | `["visibleFieldIds"]`   | Optional list of additional fields to include in the views object response. Currently only supports the value 'visibleFieldIds' (for views of type 'grid' only). When specified, grid views will include a visibleFieldIds array showing which fields are visible in that view. |

***

### `Airtable Get Record`

Integration name: **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. Use the list records tool to find record IDs. Empty field values are not returned in the response.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter               | Type    | Required | Example               | Description                                                                                                                                                                                                                                                                                                                           |
| ----------------------- | ------- | :------: | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `baseId`                | string  |     ✅    | `"appXXXXXXXXXXXXXX"` | ID of the Airtable base.                                                                                                                                                                                                                                                                                                              |
| `recordId`              | string  |     ✅    | `"rec4YsVV8cU6V4EiT"` | 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'). This tool retrieves a single specific record - to list or search multiple records, use the list records tool instead. |
| `timeZone`              | string  |          | `"America/New_York"`  | Time zone for formatting dates when cellFormat='string'. Required when cellFormat='string'. Uses IANA time zone format (e.g., 'America/New\_York', 'Europe/London', 'UTC').                                                                                                                                                           |
| `cellFormat`            | string  |          | `"json"`              | Controls cell value formatting: 'json' for native types, 'string' for all values as strings. When 'string', timeZone and userLocale are required.                                                                                                                                                                                     |
| `userLocale`            | string  |          | `"en-us"`             | User locale for formatting dates when cellFormat='string'. Required when cellFormat='string'. Uses BCP 47 language tag format (e.g., 'en-us', 'en-gb', 'de-de').                                                                                                                                                                      |
| `tableIdOrName`         | string  |     ✅    | `"tblXXXXXXXXXXXXXX"` | ID or name of the table.                                                                                                                                                                                                                                                                                                              |
| `returnFieldsByFieldId` | boolean |          | —                     | If true, field keys in the response are field IDs; otherwise, field names.                                                                                                                                                                                                                                                            |

***

### `Airtable Get User Info`

Integration name: **AIRTABLE\_GET\_USER\_INFO**

Retrieves information, such as ID and permission scopes, for the currently authenticated Airtable user from the `/meta/whoami` endpoint.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

*No parameters required.*

***

### `Airtable List Bases`

Integration name: **AIRTABLE\_LIST\_BASES**

Retrieves all Airtable bases accessible to the authenticated user, which may include an 'offset' for pagination.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example | Description                                                                                                                                                                                                                                                                                     |
| --------- | ------ | :------: | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `offset`  | string |          | —       | 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. Pass this exact value to retrieve the next page. Do not construct or modify this value. Only present when there are more than 1,000 bases. |

***

### `Airtable List Comments`

Integration name: **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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type    | Required | Example               | Description                                                                                                                                                          |
| --------------- | ------- | :------: | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `baseId`        | string  |     ✅    | `"appXXXXXXXXXXXXXX"` | The unique identifier of the Airtable base from which to list comments.                                                                                              |
| `offset`        | string  |          | —                     | Pagination token to retrieve the next page of comments. If specified, the returned comments will begin at the specified offset. Obtained from the previous response. |
| `pageSize`      | integer |          | —                     | The number of comments to return per page. Must be less than or equal to 100. Defaults to 100 if not specified.                                                      |
| `recordId`      | string  |     ✅    | `"recXXXXXXXXXXXXXX"` | The unique identifier of the record for which comments are to be listed.                                                                                             |
| `tableIdOrName` | string  |     ✅    | `"tblXXXXXXXXXXXXXX"` | The unique identifier or name of the table within the specified base containing the record.                                                                          |

***

### `Airtable List Records`

Integration name: **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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter               | Type    | Required | Example                     | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ----------------------- | ------- | :------: | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sort`                  | array   |          | —                           | Array of sort objects to apply to records. Each object specifies a field and direction. Records are sorted by the first sort object, then by the second, and so on. IMPORTANT: Cannot sort by system metadata fields like 'createdTime' or 'lastModifiedTime' - these are metadata properties returned with records but not sortable fields. To sort by creation/modification time, you must add a 'Created time' or 'Last modified time' field to your table (using those field types in Airtable).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `view`                  | string  |          | `"viwXXXXXXXXXXXXXX"`       | 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 than names and not affected by view renames. Use AIRTABLE\_GET\_BASE\_SCHEMA to discover valid views. Note: this parameter is overridden if sort parameter is provided.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `baseId`                | string  |     ✅    | `"appXXXXXXXXXXXXXX"`       | The ID of the Airtable base. Must start with 'app' followed by 14 characters.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `fields`                | array   |          | `["fldABC123","fldDEF456"]` | 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 and must match exactly as they appear in Airtable. The Airtable API accepts both field names and field IDs interchangeably in this parameter, regardless of the returnFieldsByFieldId setting. IMPORTANT: System fields 'id' and 'createdTime' are always returned automatically as part of the record structure - do NOT include them in this parameter. Only specify user-defined table fields here. UNKNOWN\_FIELD\_NAME errors indicate: (1) a typo or case mismatch, (2) the field was renamed/deleted, or (3) you included a system field name. RECOMMENDED: Use field IDs (format: 'fldXXXXXXXXXXXXXX') for reliable operation. Use AIRTABLE\_GET\_BASE\_SCHEMA to retrieve valid field names and IDs.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `offset`                | string  |          | —                           | Opaque pagination cursor token returned in the 'offset' field of a previous list records response. This value must be used exactly as returned by Airtable - do not construct, modify, or decode it. IMPORTANT: Do not pass numeric values like '50' or '100' - these are not valid offsets. Offset tokens are complex opaque strings generated by Airtable. Only pass an offset if you received it from a previous response's 'offset' field. Omit this parameter for the first page of results.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `pageSize`              | integer |          | —                           | Number of records to return per page. Must be between 1 and 100. Defaults to 100.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `timeZone`              | string  |          | —                           | The time zone to use for formatting date and time fields. Required when cellFormat is 'string'. If not provided when cellFormat='string', defaults to 'utc'. Examples: 'utc', 'America/New\_York', 'Europe/London'.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `cellFormat`            | string  |          | —                           | Format for cell values. 'json' returns structured JSON values (default), 'string' returns simple string representations. When set to 'string', timeZone and userLocale are required - if not provided, defaults will be auto-populated (timeZone='utc', userLocale='en-US').                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `maxRecords`            | integer |          | —                           | Maximum total number of records to return across all pages. If not specified, all records matching the query will be returned.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `userLocale`            | string  |          | —                           | The user locale to use for formatting cell values (e.g., 'en-US', 'fr-FR'). Required when cellFormat is 'string'. If not provided when cellFormat='string', defaults to 'en-US'.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `tableIdOrName`         | string  |     ✅    | `"tblXXXXXXXXXXXXXX"`       | The ID or name of the table within the base. Table IDs start with 'tbl' followed by 14 characters. Table names are case-sensitive and must match exactly as they appear in Airtable. Can also be passed as 'tableId' or 'tableName'.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `recordMetadata`        | array   |          | `["commentCount"]`          | Array of strings specifying additional metadata to include. Currently supports 'commentCount' to include comment counts on records.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `filterByFormula`       | string  |          | `"{Status}='Done'"`         | Airtable formula to filter records. SYNTAX REQUIREMENTS: (1) BALANCED PARENTHESES: Every '(' must have a matching ')'. (2) Field names in curly braces: {FieldName} - case-sensitive, must match exactly. (3) String values in quotes: 'value' or "value". (4) Function calls: AND(), OR(), NOT(), FIND(), BLANK(), TODAY(), etc. (5) Escape single quotes by doubling: 'John''s'. DATE/DATETIME FIELD COMPARISONS: Direct string comparison with date fields (e.g., {DateField} >= '2026-04-29') is unreliable. Use date functions instead: IS\_AFTER({DateField}, '2026-04-29') checks if date is after the specified date. IS\_BEFORE({DateField}, '2026-04-29') checks if date is before the specified date. IS\_SAME({DateField}, '2026-04-29', 'day') checks if date matches (with optional unit: 'day', 'month', 'year'). DATESTR({DateField}) converts date to string for text operations. TODAY() returns current date for dynamic comparisons: IS\_AFTER({DateField}, TODAY()). For date ranges: AND(IS\_AFTER({DateField}, '2026-04-28'), IS\_BEFORE({DateField}, '2026-04-30')). FIELD TYPES VS FORMULA FUNCTIONS: ROLLUP, LOOKUP, FORMULA are field types, NOT formula functions usable in filterByFormula. Reference these fields directly by name: {RollupFieldName}. LINKED RECORD FILTERING: Referencing a linked record field directly (e.g., {LinkedFieldName}) returns PRIMARY FIELD VALUES as text, NOT record IDs. To filter by record IDs, create a lookup field for RECORD\_ID() from the linked table, then use: FIND('recXXXXXXXXXXXXXX', ARRAYJOIN({RecordIDLookupField})) > 0. DO NOT use array literals like {LinkedField} = \['recXXX'] - Airtable formulas do not support array syntax. DOT NOTATION NOT SUPPORTED: {Assignee}.email, {LinkedRecord}.fieldName are INVALID. Create a lookup field for the property you need, then reference that field: {Assignee Email Lookup}='<user@example.com>'. COMMON ERRORS: - Field names are CASE-SENSITIVE: '{status}' is NOT '{Status}'. - Missing closing parenthesis. - Unquoted strings: {Status}=Active must be {Status}='Active'. RECOMMENDED: Use AIRTABLE\_GET\_BASE\_SCHEMA to verify exact field names before using them in formulas. |
| `returnFieldsByFieldId` | boolean |          | —                           | If true, field keys in the response will be field IDs instead of field names. Recommended when working with field names that contain special characters or when building integrations that need stability across field renames. Note: The 'fields' parameter accepts both field names and field IDs regardless of this setting. filterByFormula always uses field names (enclosed in curly braces like {FieldName}) regardless of this setting.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |

***

### `Airtable Update Comment`

Integration name: **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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type   | Required | Example                            | Description                                                                                            |
| --------------- | ------ | :------: | ---------------------------------- | ------------------------------------------------------------------------------------------------------ |
| `text`          | string |     ✅    | `"This comment has been updated."` | The updated comment text. To mention a user, use the format @\[userId] (e.g., @\[usrGISFlfA7l5F7kY6]). |
| `baseId`        | string |     ✅    | `"appHPvgqYXl3LNHXq"`              | The unique identifier of the Airtable base. This typically starts with 'app'.                          |
| `recordId`      | string |     ✅    | `"rec1jqYRNtZMzWkwc"`              | The unique identifier of the record containing the comment. This typically starts with 'rec'.          |
| `rowCommentId`  | string |     ✅    | `"comkrVQ91aKbeITv6"`              | The unique identifier of the comment to update. This typically starts with 'com'.                      |
| `tableIdOrName` | string |     ✅    | `"tblUkxCONS303zkN7"`              | The unique identifier (typically starting with 'tbl') or the name of the table within the base.        |

***

### `Airtable Update Field`

Integration name: **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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter     | Type   | Required | Example                                                  | Description                                                                                                                                                                                                                                                                          |
| ------------- | ------ | :------: | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `name`        | string |          | `"Notes Updated via API"`                                | The new name for the field. At least one of 'name' or 'description' must be provided.                                                                                                                                                                                                |
| `baseId`      | string |     ✅    | `"appHPvgqYXl3LNHXq"`                                    | The unique identifier of the Airtable base containing the field.                                                                                                                                                                                                                     |
| `fieldId`     | string |     ✅    | `"fldak02ZqmicShXbn"`                                    | 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 |     ✅    | `"tblUkxCONS303zkN7"`                                    | The ID of the table containing the field to update. IMPORTANT: Unlike data API endpoints, the Metadata API requires table IDs - table names are not supported. Table IDs start with 'tbl' followed by 14 alphanumeric characters. Use AIRTABLE\_GET\_BASE\_SCHEMA to find table IDs. |
| `description` | string |          | `"This field was updated via the UPDATE_FIELD endpoint"` | The new description for the field. Must not exceed 20,000 characters. At least one of 'name' or 'description' must be provided.                                                                                                                                                      |

***

### `Airtable Update Multiple Records`

Integration name: **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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter               | Type    | Required | Example                                                                                                                                                 | Description                                                                                                                                                                                             |
| ----------------------- | ------- | :------: | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `baseId`                | string  |     ✅    | `"appHPvgqYXl3LNHXq"`                                                                                                                                   | The ID of the Airtable base containing the table.                                                                                                                                                       |
| `records`               | array   |     ✅    | `[{"id":"rec1jqYRNtZMzWkwc","fields":{"Name":"Updated Record 1 via PATCH"}},{"id":"recA2MVoBmdFGbtG1","fields":{"Name":"Updated Record 2 via PATCH"}}]` | List of records to be updated. Airtable's API limits updates to a maximum of 10 records per request. If you need to update more records, split them into multiple requests of 10 or fewer records each. |
| `typecast`              | boolean |          | —                                                                                                                                                       | If true, Airtable attempts automatic data conversion from string values on a best-effort basis (e.g., '123' to 123).                                                                                    |
| `performUpsert`         | object  |          | —                                                                                                                                                       | Configuration for upsert behavior when updating records.                                                                                                                                                |
| `tableIdOrName`         | string  |     ✅    | `"tblUkxCONS303zkN7"`                                                                                                                                   | The ID or name of the table within the base where records will be updated.                                                                                                                              |
| `returnFieldsByFieldId` | boolean |          | —                                                                                                                                                       | If true, returns field values keyed by field ID instead of field name. Useful for integrations resilient to field name changes.                                                                         |

***

### `Airtable Update Multiple Records Put`

Integration name: **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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter               | Type    | Required | Example                                                                                                                                                      | Description                                                                                                 |
| ----------------------- | ------- | :------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------- |
| `baseId`                | string  |     ✅    | `"appHPvgqYXl3LNHXq"`                                                                                                                                        | The ID of the Airtable base containing the table.                                                           |
| `records`               | array   |     ✅    | `[{"id":"rec1Q9dF0KAaJE8aW","fields":{"Task":"Updated task","Complete":true}},{"id":"recPYx3Dq8IooB4SI","fields":{"Task":"Another task","Complete":false}}]` | Array of up to 10 record objects to update. PUT destructively updates records, clearing unspecified fields. |
| `typecast`              | boolean |          | —                                                                                                                                                            | If true, Airtable will attempt to convert string values into appropriate cell values.                       |
| `performUpsert`         | object  |          | —                                                                                                                                                            | Configuration for upsert behavior.                                                                          |
| `tableIdOrName`         | string  |     ✅    | `"tblfYiZLabiwieND6"`                                                                                                                                        | The ID or name of the table within the base where records will be updated.                                  |
| `returnFieldsByFieldId` | boolean |          | —                                                                                                                                                            | If true, returns fields object keyed by field ID instead of field name.                                     |

***

### `Airtable Update Record`

Integration name: **AIRTABLE\_UPDATE\_RECORD**

Modifies specified fields of an existing record in an Airtable base and table; the base, table, and record must exist.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter               | Type    | Required | Example                                                                                     | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ----------------------- | ------- | :------: | ------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `baseId`                | string  |     ✅    | `"appxxxxxxxxxxxxxx"`                                                                       | The unique identifier of the Airtable base containing the record to be updated.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `fields`                | object  |     ✅    | `"{\"Status\": \"Completed\", \"Priority\": \"High\", \"Notes\": \"All tasks finished.\"}"` | Fields to update. Keys are field names (case-sensitive) or IDs (fldXXXX recommended). Only specified fields are modified. Empty strings convert to null. Field names must match Airtable schema exactly (e.g., 'Call Status' not 'call status'). Use AIRTABLE\_GET\_BASE\_SCHEMA for exact names/IDs. Date-only fields require 'YYYY-MM-DD' format. Date-time fields require ISO 8601: 'YYYY-MM-DDTHH:MM:SS.sssZ'. Human-readable dates rejected even with typecast=true. SELECT FIELDS: With typecast=false (default), only existing select options accepted; new values fail with INVALID\_MULTIPLE\_CHOICE\_OPTIONS. Set typecast=true to auto-create new options or verify existing options via AIRTABLE\_GET\_BASE\_SCHEMA first. |
| `recordId`              | string  |     ✅    | `"recABC123def456G"`                                                                        | 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'). Simple numeric values or row numbers are NOT valid record IDs. You can obtain valid record IDs from the AIRTABLE\_LIST\_RECORDS action or the Airtable web interface.                                                                                                                                                                                                                                                                                                                          |
| `typecast`              | boolean |          | `true`                                                                                      | Enables automatic data conversion and select option creation. CRITICAL FOR SELECT FIELDS: When false (default), Airtable rejects updates to single-select or multi-select fields if the value is not already an existing option, failing with 'Insufficient permissions to create new select option' error. When true: (1) automatically creates new select options if they don't exist, and (2) converts strings to appropriate types for other fields (e.g., '123' to number 123). RECOMMENDED: Set to true when updating select fields with potentially new values, or use AIRTABLE\_GET\_BASE\_SCHEMA to verify option existence first. Set to false only when you want strict validation against existing options.                |
| `tableIdOrName`         | string  |     ✅    | `"tblxxxxxxxxxxxxxx"`                                                                       | The unique identifier (ID) or the name of the table within the base that contains the record to be updated. Also accepts 'tableId' as an alias.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `returnFieldsByFieldId` | boolean |          | `true`                                                                                      | If `True`, API response keys record fields by field ID instead of name. Using field IDs is recommended for integrations resilient to field name changes.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |

***

### `Airtable Update Record Put`

Integration name: **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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter               | Type    | Required | Example                                                                                     | Description                                                                                                                                                                                                                                                                                                                                                                                                                       |
| ----------------------- | ------- | :------: | ------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `baseId`                | string  |     ✅    | `"appxxxxxxxxxxxxxx"`                                                                       | The unique identifier of the Airtable base containing the record to be updated.                                                                                                                                                                                                                                                                                                                                                   |
| `fields`                | object  |     ✅    | `"{\"Status\": \"Completed\", \"Priority\": \"High\", \"Notes\": \"All tasks finished.\"}"` | 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 to clear field values. For Date fields: use 'YYYY-MM-DD' format for date-only fields, or ISO 8601 format (e.g., '2026-01-02T10:30:00.000Z') for date-time fields. Set typecast=true to enable automatic format conversion. |
| `recordId`              | string  |     ✅    | `"recxxxxxxxxxxxxxx"`                                                                       | The unique identifier (ID) of the record to be updated within the specified table.                                                                                                                                                                                                                                                                                                                                                |
| `typecast`              | boolean |          | `true`                                                                                      | When set to true, enables automatic data conversion from strings to appropriate field types. For example, converts string '123' to number 123. Default is false.                                                                                                                                                                                                                                                                  |
| `tableIdOrName`         | string  |     ✅    | `"tblxxxxxxxxxxxxxx"`                                                                       | The unique identifier (ID) or the name of the table within the base that contains the record to be updated.                                                                                                                                                                                                                                                                                                                       |
| `returnFieldsByFieldId` | boolean |          | `true`                                                                                      | If `True`, API response keys record fields by field ID instead of name. Using field IDs is recommended for integrations resilient to field name changes.                                                                                                                                                                                                                                                                          |

***

### `Airtable Update Table`

Integration name: **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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                | Type   | Required | Example                                   | Description                                                                                                                                                |
| ------------------------ | ------ | :------: | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`                   | string |          | `"Updated Table Name"`                    | 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 |     ✅    | `"appHPvgqYXl3LNHXq"`                     | The unique identifier of the Airtable base containing the table to update.                                                                                 |
| `description`            | string |          | `"This is an updated table description."` | The new description for the table. Must not exceed 20,000 characters. At least one of 'name', 'description', or 'dateDependencySettings' must be provided. |
| `tableIdOrName`          | string |     ✅    | `"tblUkxCONS303zkN7"`                     | The unique identifier or name of the table to update.                                                                                                      |
| `dateDependencySettings` | object |          | —                                         | Configuration for date-based task scheduling in Airtable tables.                                                                                           |

***

### `Airtable Upload Attachment`

Integration name: **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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                 | Type   | Required | Example                                                                  | Description                                                                                                        |
| ------------------------- | ------ | :------: | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
| `file`                    | string |     ✅    | `"VGhpcyBpcyBhIHRlc3QgZmlsZSBmb3IgQWlydGFibGUgYXR0YWNobWVudCB1cGxvYWQu"` | The file content encoded as a base64 string. This is the base64-encoded binary content of the file to be uploaded. |
| `baseId`                  | string |     ✅    | `"appHPvgqYXl3LNHXq"`                                                    | The unique identifier of the Airtable base containing the record.                                                  |
| `filename`                | string |     ✅    | `"test.txt"`                                                             | The name of the file including its extension (e.g., 'test.txt', 'document.pdf', 'image.jpg').                      |
| `recordId`                | string |     ✅    | `"rec14OLsbTuy1pm0t"`                                                    | The unique identifier of the record to which the attachment will be uploaded.                                      |
| `contentType`             | string |     ✅    | `"text/plain"`                                                           | MIME type of the file being uploaded (e.g., 'text/plain', 'image/jpeg', 'application/pdf').                        |
| `attachmentFieldIdOrName` | string |     ✅    | `"fldTsvfulF1e8W0N3"`                                                    | The field ID (e.g., 'fldXXXXXXXXXXXXXX') or field name of the attachment field where the file will be uploaded.    |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.toolhouse.ai/toolhouse/integrations/airtable.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
