Connect RowFold to Zapier
RowFold works with Zapier in both directions today, using webhooks and the REST API rather than an app you install from Zapier's directory. This article is the whole recipe: push record changes out to a Zap, let a Zap file records into a table, let a Zap fire an automation, and read or write anything through the API. The same four routes work for Make, n8n, Power Automate and anything else that speaks HTTP.
Is there a RowFold app in Zapier's directory?
Not yet. A RowFold Zapier app exists and is built, but it is private while RowFold is pre-launch — Zapier requires a publicly launched product, a live user base and a set of Zap templates before an app can be listed, so searching Zapier for “RowFold” finds nothing today. We would rather say that plainly than let you hunt for it.
None of that blocks you, and this is the part worth knowing: a listed app would be a convenience, not a capability. Everything a RowFold Zap needs — record changes out, records in, automations fired, full read and write — already ships as ordinary HTTP, and you wire it with Zapier's own Webhooks by Zapier app. All four recipes here are complete. When a directory listing does land, Zaps you build now keep working; the app would just save you pasting URLs.
One thing to check first: Zapier has long packaged Webhooks by Zapier as a premium app, so confirm your Zapier plan includes it before you start building.
1 · Send record changes out to a Zap
This is the common one — “when a deal is won, do something in another tool.”
• In Zapier, make a Zap with the trigger Webhooks by Zapier → Catch Hook. Copy the custom webhook URL it gives you.
• In RowFold, go to Developers → Webhooks and add a webhook. Paste the Zapier URL as the Payload URL, name it something you will recognise later, and pick the table.
• Tick the events you want: created, updated, deleted, restored, posted, unposted. Leave Payload on Full record so the Zap receives the values, not just ids.
• Open Filter & custom headers if you only want some changes — only when status equals Won. Filtering here rather than in the Zap means the Zap does not burn a task on every other change.
• Save, change a record, and Zapier's “Test trigger” will find the sample.
Deliveries are signed with X-RowFold-Signature and retried six times with backoff (immediate, ~1s, ~4s, ~30s, ~5min, ~30min). Every attempt is listed under Recent webhook deliveries on the same page, and any delivery still holding its payload can be re-sent by hand — so “did that reach Zapier?” is always answerable without leaving RowFold.
2 · Let a Zap create records in a table
The reverse direction, for when the record should just appear — a lead from a form tool, a row from a spreadsheet, an order from a store.
• In RowFold, open the table, then Channels → Webhook In (or go straight to Webhook In from the table's view bar) and create an endpoint. You get a URL.
• That page publishes the exact JSON format, using this table's own field keys. Read it — it is the contract, and it is per-table.
• In Zapier, add the action Webhooks by Zapier → POST. Set the URL to your endpoint, Payload Type to json, and map the fields.
The endpoint answers synchronously: 201 with the new record's id, or 400 naming each field it refused. That matters in Zapier, because a bad mapping then shows up as a red failed task with the reason in it, rather than as a Zap that reports success while nothing arrives.
Records created this way go through the same save path as any other, so AutoNumber values are stamped, automations fire and outgoing webhooks deliver — which is also how you get an accidental loop, so see Pitfalls.
3 · Let a Zap fire an automation
Use this when the incoming payload is somebody else's shape and you want RowFold to decide what to do with it, rather than it becoming one record of one table.
• Build an automation with the trigger A webhook is received. Saving it mints an inbound URL, shown in the editor with a copy button.
• POST to it from Zapier as in recipe 2.
Every value in the payload is available to the steps as {{webhook.<path>}} — nested values use dots, array items use numbers, and the raw body rides along as {{webhook.body}}.
The difference from Webhook In is worth holding onto. Webhook In publishes a format and you conform to it; an automation webhook takes whatever shape the sender dictates and the automation adapts. A post that fails the automation's conditions is logged as a Skipped run, so “why didn't it fire?” stays answerable from Run history. This one answers 202 immediately and runs the steps in the background.
4 · Read and write anything: the REST API
When a Zap needs to look something up, update an existing record, or work across tables, use the API directly.
• In Developers → API clients, create a client with the scopes you need. The secret is shown once.
• Exchange it for a token: POST /api/v1/auth/token with {"clientId": "rfc_…", "clientSecret": "rfsk_…"}. Note the response is camelCase, not the RFC 6749 spelling: accessToken, tokenType, expiresIn, scope.
• Call the API from Webhooks by Zapier → Custom Request with the header Authorization: Bearer <accessToken>.
The access token lasts one hour, which is the honest catch with this route inside Zapier: a step holding a pasted token will start failing the same day. For a Zap, prefer the webhook recipes (1–3) and keep the API for a step that fetches its own token first, or for your own code. The full reference is at /Developers/Docs, and the OpenAPI document at /api/v1/openapi.json feeds Postman and code generators without credentials.
Make, n8n and everything else
None of the four recipes is Zapier-specific — they are all just HTTP. In Make, a Custom webhook trigger stands in for Catch Hook and an HTTP module for the POST. In n8n, a Webhook node receives and an HTTP Request node writes back. Power Automate, Pipedream, Retool and a cron job running curl all work the same way.
If a tool can receive an HTTP POST, recipe 1 reaches it. If it can send one, recipes 2 and 3 reach RowFold.
Tips
• Name the RowFold webhook after the Zap it feeds, not after the table. When a Zap is turned off, that name in RowFold's delivery log is the only thing telling you which one to go and fix.
• Set the filter on the RowFold webhook rather than adding a filter step in Zapier. RowFold filters before delivering, so the Zap never spends a task on a change it was going to discard.
• Payload shape “Minimal (ids only)” is the right choice when the Zap fetches the record through the API anyway — it keeps ordinary field values out of a third party's task history.
• Build the Zap first: that gives you the Catch Hook URL to paste. Building the RowFold side first leaves a webhook pointing nowhere, quietly counting failures.
Good to know
• A Zap that creates RowFold records AND a RowFold webhook that fires on created is a loop. Scope the webhook to a different table, or give it a filter that the Zap-created records cannot satisfy.
• Turning a Zap off does not pause the RowFold side. The hook keeps delivering, keeps failing, and pauses itself after 20 consecutive failures — at which point it will not resume on its own when you switch the Zap back on. Pause the RowFold webhook too, or check its status when you return.
• Polling triggers cannot see deletions: a soft-deleted record simply stops appearing, with no tombstone to poll. Only the outgoing webhook reports deleted and restored, which is a reason to prefer recipe 1 over any polling arrangement.
• The previous-values block on a delivery is populated for record.updated only. Posted and unposted arrive without it, even though a diff was computed.
• The inbound URLs are the credential — anyone holding one can file records or fire an automation without signing in. Treat them like a password, and remember Zapier stores them in the Zap's step configuration.
• An API access token expires in an hour. A token pasted into a Zap step is not a configuration, it is a countdown.