Leaving Airtable? Bring your bases to Artavolo, checked record by record. See how

Zapier, Make and n8n

Artavolo has apps for the three automation tools most Airtable teams use, with the same triggers and actions as Airtable's own apps there. Moving a Zap or a scenario means swapping its Airtable steps for Artavolo's: the base, the table and the field names stay as they were after an import.

ZapierMaken8n
New recordNew Record (instant)Watch Records (instant, or on a schedule)Artavolo Trigger: New Record
New or changed recordNew or Updated Record (instant)Watch RecordsArtavolo Trigger: New or Updated Record
Changed or deleted recordWatch RecordsArtavolo Trigger: Updated, Deleted Record
Find recordsFind Record (a field and value, or a formula)Search RecordsArtavolo: Search
Read one recordGet a RecordArtavolo: Get
Create, update, deleteCreate, Update, Delete RecordCreate, Update, Delete a RecordArtavolo: Create, Update, Delete
Anything elseMake an API Callthe HTTP Request node with the Artavolo credential

Every app signs in with an Artavolo API token (your picture, Profile, API tokens) and the address of the instance: https://artavolo.com, or your own server's. The token's person acts with their own permissions: roles, table visibility and row rules apply, every change is in the audit log, deletes go to the trash. A token is held to its workspace and, if you chose, to some bases, so give each tool a token of its own.

The n8n node is marked usable as a tool, so an n8n AI agent can read and write records through it with the same permissions.

Instant triggers: subscriptions

When a Zap, a scenario or a workflow is switched on, its app subscribes to the table; switching it off ends the subscription. Artavolo then sends each change as it happens, after the change has been saved. The apps do this for you; for a program of your own:

POST /v0/hooks
Authorization: Bearer <token>
Content-Type: application/json

{"base": "appXXXXXXXXXXXXXX", "table": "Tasks", "event": "changed", "url": "https://example.com/receive"}

event is created, updated, changed (created or updated) or deleted. base and table are named as on /v0/{base}/{table}. The answer is the subscription with its id and, this once, its signing secret. GET /v0/hooks lists the token's subscriptions with how the last delivery went; DELETE /v0/hooks/{id} ends one.

A delivery is a POST of JSON:

{
  "event_type": "record.updated",
  "hook": {"id": "12"},
  "base": {"id": "aB3dE5"},
  "table": {"id": "tblTasks", "name": "Tasks"},
  "records": [{"id": "rec...", "createdTime": "...", "lastModifiedTime": "...", "fields": {"Name": "..."}}],
  "changedFields": ["Status"],
  "timestamp": "2026-11-14T09:30:00.000Z"
}
  • The records are read as the person who subscribed, in the /v0 shape: a subscription never shows anyone a record they could not read through the API. A deleted record is {id} only. More than 100 records in one change arrive as several deliveries.
  • Signed: X-Artavolo-Signature: sha256=<hex> is the HMAC-SHA256 of the body with the subscription's secret. The n8n trigger checks it. A white-labelled instance names its headers after its own brand (X-<Brand>-Signature, X-<Brand>-Hook), set as the event header name on the Branding tab.
  • Ending: a receiver that answers 410 Gone ends the subscription, as Zapier asks. After 50 failed deliveries in a row it is switched off. Deleting the token ends its subscriptions. A person who loses access to the table gets nothing more, and the subscription is switched off.
  • Addresses: https:// only on the hosted service, and never a loopback, private or link-local address. A self-hosted server may send to n8n on the same network (see WEBHOOKS_ALLOW_PRIVATE in includes/config.php).
  • At most 100 subscriptions per person.

Scheduled triggers: polling

For a tool Artavolo cannot reach (an n8n behind a firewall, a script run by cron), read the newest records instead:

GET /v0/{base}/{table}?sort[0][field]=LAST_MODIFIED_TIME()&sort[0][direction]=desc&modifiedAfter=2026-11-14T09:00:00Z&recordMetadata[]=lastModifiedTime

CREATED_TIME() and LAST_MODIFIED_TIME() sort without a time field of your own; createdAfter and modifiedAfter take an ISO time and are exclusive. Make's "Watch Records (scheduled)" does this.

Bases, tables and fields to pick from

The apps fill their pickers from Airtable's metadata API, which Artavolo answers too: GET /v0/meta/bases and GET /v0/meta/bases/{base}/tables, with field types as Airtable names them (singleLineText, multipleRecordLinks, currency and so on). Fields the server works out (formulas, lookups, rollups, counts, created and modified times) are offered as outputs, never as inputs.

Where the apps are

The source of all three is in the repository under integrations/: integrations/zapier (Zapier Platform CLI), integrations/n8n (an n8n community node package, n8n-nodes-artavolo) and integrations/make (the components of a Make custom app). Until they are listed in each tool's directory, a team can install them itself: the README in each folder says how.

Tests: tests/integrations_test.php (the server side), tests/integration_apps_test.php (the Zapier app and the built n8n node run against a server).

A question these pages do not answer? Write to us and we answer by e-mail, usually within one business day. Contact us