Reference · Tools
Airtable trigger
Starts a workflow when new or modified records are detected in an Airtable table based on a scheduled poll. (Polls on a schedule.)
The Airtable Trigger starts a workflow whenever records are created or updated in an Airtable table, emitting each matching record as its own item. It polls on a schedule you set, using a Created Time or Last Modified Time column to work out what has changed since the last check. A common build is routing new form-submission rows into Slack and filing their attachments to storage.
- Works as
- Polling trigger — checks on a schedule
- Tool name
airtable_trigger- Parameters
- 8
- Outputs
- Output
- Credentials
- Airtable Personal Access Token
- Official docs
- Airtable docs airtable.com
What you can build with Airtable
- Trigger workflow when a new row is added to an Airtable base.
- Monitor an Airtable table for updated records every 5 minutes.
- Watch for new Airtable records matching a specific view and formula.
- When detect changes in an Airtable CRM table and sync to another system.
Overview
Polls an Airtable table on a schedule to detect new or recently modified records. Uses a configurable date/time trigger field with the IS_AFTER() formula to filter records created or modified since the last poll. Supports additional formula filters, view scoping, field selection, and attachment downloading. Returns each matching record as a separate workflow item.
Node Type
Trigger — polling (checks for new data on a schedule)
Input / Output
| Direction | Port(s) |
|---|---|
| Input | None (trigger node) |
| Output | Output |
Credentials
This tool requires Airtable Personal Access Token credentials. See the Credentials Guide for setup instructions.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Base ID | string | Yes | — | The ID of the Airtable base (e.g. appXXXXXXXXXXXXXX). You can find this in the Airtable URL: https://airtable.com/{baseId}/… |
| Table ID | string | Yes | — | The ID or name of the table (e.g. tblXXXXXXXXXXXXXX). You can find this in the Airtable URL after the base ID. |
| Trigger Field | string | Yes | — | A Created Time or Last Modified Time field used to detect new/updated records. If you do not have one, create a Created Time or Last Modified Time field in your Airtable schema. |
| Download Attachments | boolean | No | false | Whether attachment fields should be downloaded and included as binary data in the output. |
| Download Fields | string | No | — | Comma-separated names of attachment-type fields to download (e.g. ‘Photos, Documents’). Case sensitive. (shown when Download Attachments is true) |
| Additional Fields | collection | No | {} | Optional query refinements applied on top of the time filter. |
| — Fields | string | No | — | Comma-separated list of field names to include in the response. By default all fields are returned. Example: Name, Email, Status |
| — Formula | string | No | — | An additional Airtable formula to combine with the time filter using AND(). See https://support.airtable.com/hc/en-us/articles/203255215-Formula-Field-Reference |
| — View ID | string | No | — | The name or ID of a view in the table. If set, only records in that view will be returned. |
| Poll Interval | number | No | 1 | How often to check for new data. |
| Poll Interval Unit | options | No | minutes | Unit for the poll interval. |
Options: seconds, minutes, hours |
Output Data
Each new or updated record becomes one output item. The Airtable record is emitted as-is, plus two trigger markers:
{
"id": "recXXXXXXXXXXXXXX",
"createdTime": "2026-08-15T09:12:44.000Z",
"fields": {
"Name": "Acme Corp",
"Status": "Active",
"Last Modified": "2026-08-15T09:12:44.000Z"
},
"_trigger": "airtable_polling",
"_timestamp": "2026-08-15T09:13:00.000Z"
}
id— the Airtable record ID.createdTime— when Airtable created the record.fields— the record’s column values, restricted to Fields when that option is set._trigger— alwaysairtable_polling._timestamp— when the poll that produced the item ran.
When Download Attachments is on and Download Fields names one or more attachment columns, each item additionally carries:
_attachments— an object keyed by attachment field name, each holding an array of{ url, filename, type, key }entries.- Binary properties named
{fieldName}_{index}(for examplePhotos_0), holding the downloaded file so that downstream nodes can read it. An attachment that cannot be downloaded is skipped; its URL metadata is still emitted.
Reference record values downstream by expression, e.g. {{ $json.fields.Email }}.
Example Configuration
Watch a table for newly created records:
{
"type": "airtable_trigger",
"parameters": {
"baseId": "appXXXXXXXXXXXXXX",
"tableId": "tblYYYYYYYYYYYYYY",
"triggerField": "Created Time",
"pollInterval": 1,
"pollIntervalUnit": "minutes"
}
}
Watch for modified records in one view, narrowed by a formula and a field list:
{
"type": "airtable_trigger",
"parameters": {
"baseId": "appXXXXXXXXXXXXXX",
"tableId": "Customer Records",
"triggerField": "Last Modified",
"pollInterval": 5,
"pollIntervalUnit": "minutes",
"additionalFields": {
"fields": "Name, Email, Status, Priority",
"viewId": "Active Customers",
"formula": "{Priority} = 'High'"
}
}
}
Download attachments from the records that match:
{
"type": "airtable_trigger",
"parameters": {
"baseId": "appXXXXXXXXXXXXXX",
"tableId": "Project Files",
"triggerField": "Created Time",
"downloadAttachments": true,
"downloadFieldNames": "Photos, Documents",
"pollInterval": 30,
"pollIntervalUnit": "seconds",
"additionalFields": {
"formula": "{Processing Status} = 'Pending'"
}
}
}
Trigger Behavior
- Activation: Polling starts when the workflow is activated. There is no poll at the moment of activation — the first check runs one full interval later.
- Schedule: The trigger polls for new data based on the configured polling interval.
- State: Maintains internal state (the last poll timestamp plus the record IDs seen at that boundary) so each poll returns only records that are new since the last check.
- First Run: The first poll records the current position and returns no items, so activating the workflow never replays existing records.
- Testing: Running the node from the editor emits a single sample record so you can build the rest of the workflow; real records arrive only while the workflow is activated.
Tips
This tool monitors Airtable tables for new or updated records. It is ideal when you need to initiate a workflow based on changes within an Airtable database, rather than manually checking for updates or using a different data source. It produces individual workflow items for each record that matches the configured criteria.
Parameter Relationships
-
Download Fields dependency: The
downloadFieldNamesparameter is only available whendownloadAttachmentsis set totrue. This lets you specify which attachment fields to download rather than downloading all attachments. -
Additional Fields structure: All filtering options (
fields,formula,viewId) must be nested within theadditionalFieldsobject. They cannot be specified at the top level of parameters. -
Trigger Field requirement: The specified
triggerFieldmust be a Created Time or Last Modified Time field type in your Airtable schema. Standard text or number fields will not work for change detection.
Frequently asked questions
Which Airtable field types can be used as the trigger field?
Only a Created Time or Last Modified Time field. The trigger builds an IS_AFTER() formula against that column to find records newer than the last poll, so a plain text, number or date-entry field will not detect changes and the trigger will appear to do nothing.
Why are my view or formula filters being ignored?
Fields, formula and view ID all have to be nested inside the Additional Fields object. Set at the top level of the parameters they are silently not applied, which usually looks like the trigger returning far more records than expected.
How do I download attachments from the matched records?
Turn on Download Attachments first — the Download Fields parameter only becomes available once it is enabled. Leave Download Fields empty to take every attachment field, or name specific fields to fetch only those.
Does each record arrive as a separate workflow item?
Yes. Every record matching the poll becomes its own item on the Output port, so the node after the trigger runs once per record rather than once per poll.
Build with Airtable
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Airtable Personal Access Token credentials first.
Open BusyBotLast reviewed . Spotted something wrong? Tell us.