Airtable v2

Provides integration with Airtable to discover bases and table schemas, read records, and create, update, upsert, or delete records in batches.

Revision History

0.0.0.12 - Initial release.

Connection

Use an Airtable Connection with either a personal access token or OAuth authorization. The Connection selects the base and supplies settings shared by its record operations.

Property Type Description
AuthenticationType Enum PersonalAccessToken or OAuth. Defaults to PersonalAccessToken.
PersonalAccessToken Masked Required when using personal access token authentication.
ClientId String OAuth integration client identifier. Required for OAuth.
ClientSecret Masked OAuth client secret. Leave empty only for a registered public integration.
AccessToken Masked OAuth access token populated during authorization and renewed during refresh.
RefreshToken Masked Rotating OAuth refresh token populated during authorization. Required for OAuth operations.
Scope String Space-separated OAuth scopes. Defaults to data.records:read data.records:write schema.bases:read.
AccessTokenExpiresAtUtc String Hidden, automatically maintained access-token expiry.
RefreshTokenExpiresAtUtc String Hidden, automatically maintained refresh-token expiry.
GrantedScopes String Hidden, automatically maintained record of scopes granted by Airtable.
PkceCodeVerifiers Masked Hidden, automatically maintained authorization verification values.
BaseIdOrName String Required Airtable base ID or exact, case-sensitive base name. Use the ID if multiple accessible bases have the same name.
CellFormat String json for native cell values or string for formatted cell values. Defaults to json.
TimeZone String Time zone for formatted cell values. Defaults to utc; required when CellFormat is string.
UserLocale String Locale for formatted cell values. Defaults to en; required when CellFormat is string.
ReturnFieldsByFieldId Boolean Return record fields keyed by Airtable field IDs instead of names. Defaults to false.
IncludeDateDependencyMetadata Boolean Include date dependency metadata in record reads. Defaults to false.
IncludeVisibleFieldIds Boolean Include visible field IDs in views returned by Get Base Schema. Defaults to false.
IncludeCommentCount Boolean Include comment counts when listing records. Defaults to false.
Typecast Boolean Allow Airtable to convert write values and create select options when permitted. Defaults to false.
TimeoutSeconds Integer Timeout for each API or token request, in seconds. Must be greater than zero. Defaults to 100.

Setup Notes

  • Run this Node on a Cloud Runtime.
  • Grant the credential access to your target base. Use schema.bases:read for base and schema discovery, Connection testing, and table-specific templates; data.records:read for reading records; and data.records:write for record writes. Create, update, and upsert operations also read the table schema.
  • For personal access token authentication, create an Airtable personal access token with the required scopes and base access, then enter it in PersonalAccessToken.
  • For OAuth, register the Flowgear callback URI in your Airtable integration, enter its client credentials and scopes, and complete account authorization. The Node uses Authorization Code with PKCE and automatically persists rotated tokens. Reconnect the account if its refresh token expires.
  • Set BaseIdOrName, then test the Connection. The test reads the configured base's schema.

Methods

Select a template for the Method and table you need. Table-specific templates populate TableIdOrName and describe the table's fields. Record Methods use the base selected in the Connection.

List Bases

Lists bases accessible to the credential, following pagination automatically. BaseIdOrName must still be populated in the Connection, although this Method lists all accessible bases.

Parameter Type Description
Connection Connection Airtable Connection used for discovery.
Return Type Description
Content Array One object per base, including id, name, and permissionLevel.

Get Base Schema

Retrieves the configured base's tables, including their fields, field options, and views.

Parameter Type Description
Connection Connection Airtable Connection identifying the base.
Return Type Description
Content Array One object per table, with its schema and views.

List Records

Lists records from a table, with optional field selection, formula filtering, view filtering, sorting, and a total result limit. The Node retrieves pages automatically.

Parameter Type Description
Connection Connection Airtable Connection identifying the base and response settings.
Options Object Required TableIdOrName and optional search controls described below.

The following Properties belong inside Options:

Property Type Description
TableIdOrName String Required table ID or exact table name.
Fields String Comma-separated field IDs or exact names to return. Leave empty or omit to return all fields.
FilterByFormula String Optional Airtable formula used to filter records.
View String Optional view ID or exact name used to filter records.
Sort Array Optional objects containing Field and Direction. Use a field ID or exact name and asc or desc.
MaxRecords Integer Optional maximum total number of records to return. Must be greater than zero. Omit to read all matching records.
Return Type Description
Content Array Airtable record objects, including id, createdTime, and fields. No matches produce zero rows.

Get Record

Retrieves one record by its Airtable record ID.

Parameter Type Description
Connection Connection Airtable Connection identifying the base and response settings.
Options Object Required TableIdOrName and RecordId strings.
Return Type Description
Response Object The Airtable record object, including id, createdTime, and fields.

Create Records

Creates records in batches of up to ten. Each input row contains writable Airtable fields directly, using the field names or IDs for your table.

Parameter Type Description
Connection Connection Airtable Connection identifying the base and write settings.
Options Object Required TableIdOrName string.
Items Array Record objects containing the field values to create.
Return Type Description
Content Array Created record objects with Flowgear.IsSuccess, Flowgear.Message, and Flowgear.Request.

Update Records

Partially updates existing records in batches of up to ten. Supply RecordId and the fields to change on each row. Fields omitted from the update retain their values.

Parameter Type Description
Connection Connection Airtable Connection identifying the base and write settings.
Options Object Required TableIdOrName string.
Items Array Record objects containing a required RecordId string and writable field values.
Return Type Description
Content Array Updated record objects with Flowgear.IsSuccess, Flowgear.Message, and Flowgear.Request.

Upsert Records

Creates or updates records using Airtable's native upsert matching, in batches of up to ten. Choose one to three writable merge fields. Table-specific templates select a supported merge field where available.

Parameter Type Description
Connection Connection Airtable Connection identifying the base and write settings.
Options Object Required TableIdOrName and FieldsToMergeOn strings. FieldsToMergeOn contains one to three comma-separated field IDs or exact names.
Items Array Record objects containing writable fields and their merge values. An optional RecordId can identify an existing record directly.
Return Type Description
Content Array Record objects with UpsertAction set to Created or Updated, plus Flowgear.IsSuccess, Flowgear.Message, and Flowgear.Request.

Delete Records

Deletes records by ID in batches of up to ten.

Parameter Type Description
Connection Connection Airtable Connection identifying the base.
Options Object Required TableIdOrName string.
Items Array Objects containing a required RecordId string.
Return Type Description
Content Array Deletion results containing id and deleted, plus Flowgear.IsSuccess, Flowgear.Message, and Flowgear.Request.

Usage Notes

  • Read Methods preserve Airtable response fields without adding a Flowgear object. Write Methods return one result per processed input row; Flowgear.Request contains the original row.
  • Record reads return cell values inside fields. Create, update, and upsert inputs expose writable fields directly on each row. A nested Fields object is also accepted; when present, it supplies the write fields instead of the direct properties.
  • Enter comma-separated lists without extra spaces unless those spaces belong to the value. For example, Name,Status selects two fields; Name, Status includes a leading space in the second field name. Table-specific templates also use comma-separated strings for supported list-valued fields, such as multiple-select choices and linked record IDs.
  • The first read or write batch completes before results are streamed to downstream Nodes. Setup, first-page, and first-batch failures stop the Method. Later invalid input rows and handled Airtable business errors produce failed Flowgear results and allow later items to continue. Authentication, exhausted throttling, and other unhandled failures can still stop processing.
  • Inspect Flowgear.IsSuccess and Flowgear.Message after writes. Airtable attachment partial-success responses retain the returned record and details but set Flowgear.IsSuccess to false.
  • The Node handles pagination, batches writes, throttles request starts, and applies bounded retries. You do not need to supply page offsets or split Items into groups of ten.

Examples

These examples assume your base contains a Tasks table with writable Name and Status fields. Replace table names, field names, and record IDs with values from your base.

List open tasks

Use List Records with the following Options to return up to 100 open tasks, selecting two fields and sorting by name:

{
  "TableIdOrName": "Tasks",
  "Fields": "Name,Status",
  "FilterByFormula": "{Status}='Open'",
  "Sort": [
    { "Field": "Name", "Direction": "asc" }
  ],
  "MaxRecords": 100
}

Create and update a task

Use Create Records with these Options:

{
  "TableIdOrName": "Tasks"
}

Supply these Items. If Status is a select field, ensure Open is an available option or enable Typecast where your Airtable permissions allow creating options.

[
  { "Name": "Review order", "Status": "Open" }
]

To update that task, use Update Records with the same Options. Set RecordId to the id returned by the create operation and supply only the fields to change:

[
  { "RecordId": "recXXXXXXXXXXXXXX", "Status": "Closed" }
]

Ensure Closed is also an available value for your field. The omitted Name field retains its existing value.

Known Issues

  • A table can appear in the template list for a write Method but not load a template when it has no usable writable fields or, for upserts, no supported merge field. Supported merge field types include text, long text, number, single select, multiple select, and date.

See also