Airtable
Description
Section titled “Description”This module allows interacting with the Airtable API to manage databases, tables and records. It supports complete CRUD operations: list bases, get table schema, list records with filters and pagination, get a specific record, create records, update records (with upsert support) and delete records.
Authentication is done via OAuth2 through the airtableOAuthService. Records can be resolved from the node configuration or from the workflow input data, including support for dynamic variables with {{path.to.value}} syntax.
Configuration
Section titled “Configuration”| Parameter | Type | Required | Description |
|---|---|---|---|
| credentials_id | credentials | Yes | Airtable account (OAuth) |
| operation | select | Yes | Operation: listBases, getSchema, listRecords, getRecord, createRecords, updateRecords, deleteRecords |
| baseId | text | Conditional | Base ID (starts with app…) |
| tableId | text | Conditional | Table ID (tbl…) or name |
| recordId | text | Conditional | Record ID (rec…) for getRecord |
| filterFormula | text | No | Airtable filter formula (e.g.: {Status} = ‘Active’) |
| view | text | No | View name to use |
| pageSize | number | No | Records per page (max 100, default: 100) |
| fields | array | No | Specific fields to return |
| sort | array | No | Sort configuration |
| records | array | Conditional | Records to create or update |
| recordIds | array | Conditional | Record IDs to delete |
| upsert | boolean | No | Create records if they don’t exist (default: false) |
| mergeFields | array | No | Fields to match in upsert mode |
| outputKey | text | No | Key where results are stored |
Credentials
Section titled “Credentials”Service type: airtable. Managed via OAuth2 through the airtableOAuthService.
Configuration fields:
- OAuth2 authentication with read/write permissions on bases and records
Output
Section titled “Output”{ "success": true, "operation": "listRecords", "baseId": "appXXXXXXXXXXXXXX", "tableId": "tblXXXXXXXXXXXXXX", "records": [ { "id": "recXXXXXXXXXXXXXX", "fields": { "Name": "Ejemplo", "Status": "Active", "Email": "ejemplo@email.com" } } ], "offset": null}Usage Example
Section titled “Usage Example”Basic case - List records
Section titled “Basic case - List records”{ "credentials_id": 1, "operation": "listRecords", "baseId": "appABC123", "tableId": "Clientes", "filterFormula": "{Status} = 'Active'", "pageSize": 50}API Used
Section titled “API Used”- Airtable Web API
- Documentation: https://airtable.com/developers/web/api
- The record limit per page is 100 (imposed by Airtable)
- Filters use Airtable formula syntax:
{Field}= ‘Value’ - Create and update operations accept record arrays for batch processing
- Upsert mode allows creating records if no match is found in mergeFields
- Configuration values support dynamic variables with
{{path.to.value}}syntax - Records can come from the node configuration, from input.records or from input.data
- Pagination uses the offset field returned by Airtable to get the next page
Related Nodes
Section titled “Related Nodes”- Supabase - PostgreSQL database as a service
- Google Sheets - Google Spreadsheets