Automation recipe · All recipes
Track Form Submissions in Airtable
Every signed intake form, waiver, and consent document lives inside Formfy — but your operations team tracks clients in Airtable, where the project pipeline, staff roster, and follow-up queue already live. Manually exporting CSVs and pasting rows into Airtable every morning costs real time and introduces transcription errors. Missed submissions fall through the cracks, follow-ups slip, and the Airtable base drifts out of sync with what clients actually signed.
Wire a Formfy webhook to Airtable using Make or n8n. Every signed form lands as a new record within seconds — no CSV exports, no copy-paste, no gaps in the pipeline.
How the recipe flows
Trigger (Formfy)
A recipient signs or submits a Formfy form (form.signed event fires)
Step 1
Formfy delivers the signed payload to your Make scenario or n8n workflow via webhook
Step 2
Automation tool maps submission fields — signer email, form name, signed timestamp — to Airtable column names
Outcome
A new record appears in your Airtable base with signer details, form metadata, and a direct link to the completed PDF — available to your whole team in real time
Build the recipe step-by-step
Subscribe Formfy to send a webhook on every form.signed event, then map the payload fields to an Airtable record using Make or n8n.
Prepare your Airtable base
Create or open the Airtable base where submission records should land. Add columns for Signer Email (Email field type), Form Name (Single line text), Signed At (Date), and Submission ID (Single line text). Copy the Base ID and Table ID from the Airtable URL bar — you will need both values when configuring the automation trigger.
Generate a Formfy API key
In Formfy, navigate to Settings → API Keys and click Create key. Copy the fk_live_… token into a password manager immediately — Formfy displays it only once. During initial setup, use a fk_test_… key so test signatures do not count against your live submission quota.
List existing webhooks before adding a new one
Call GET /api/v1/webhooks with your Bearer token to see all active subscriptions. Confirm no existing endpoint is already targeting the same destination before you proceed. Duplicate subscriptions on form.signed fire double payloads, which creates duplicate Airtable rows that are tedious to clean up later.
GET
/api/v1/webhooksSee in the OpenAPI spec →Subscribe Formfy to fire on every signed form
POST /api/v1/webhooks with event_types set to ["form.signed"] and target_url pointing to the inbound webhook URL from your Make scenario or n8n workflow. Formfy returns a signing_secret — store it immediately inside your automation tool. Every delivery will include an X-Formfy-Signature header you can verify to reject spoofed payloads before they touch Airtable.
POST
/api/v1/webhooksSee in the OpenAPI spec →Map the Formfy payload to Airtable columns
Inside Make or n8n, parse the incoming JSON body. The form.signed payload includes submission_id, form_name, form_id, signer_email, signer_name, and signed_at. Drag each value into the Airtable "Create Record" action, matching every Formfy field to its corresponding Airtable column. Run a test signature to confirm the row populates correctly.
Attach the signed PDF link to each Airtable record
After the form.signed event arrives, call GET /api/v1/forms/{id}/signed-pdf to retrieve a time-limited download token. Map the resulting URL to a dedicated Airtable URL or Attachment column. Team members can then open the full signed document directly from the Airtable record without needing a Formfy login.
GET
/api/v1/forms/{id}/signed-pdfSee in the OpenAPI spec →Rotate the webhook secret on a schedule
Every quarter — or immediately after a suspected credential exposure — POST /api/v1/webhooks/{id}/rotate-secret to issue a fresh signing secret. Update the value inside your Make or n8n scenario at the same time. Webhook deliveries fail closed until both sides agree on the new secret, which is intentional behavior and prevents replay attacks.
POST
/api/v1/webhooks/{id}/rotate-secretSee in the OpenAPI spec →
Subscribe Formfy to fire a webhook on every signed form
Replace target_url with the inbound URL from your Make scenario or n8n workflow. Save the signing_secret Formfy returns — use it to verify X-Formfy-Signature on every delivery before writing to Airtable.
curl -X POST https://formfy.ai/api/v1/webhooks \
-H "Authorization: Bearer fk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"target_url": "https://hook.make.com/your-scenario-id",
"event_types": ["form.signed"]
}'Frequently asked questions
Do I need to write code to sync Formfy submissions to Airtable?
No code is required. Make (formerly Integromat) and n8n both have native Airtable "Create Record" actions and support inbound webhooks as a trigger. The full setup takes around 15 minutes: create the Formfy webhook subscription, paste the inbound URL into your automation tool, map the payload fields to Airtable columns, and activate the scenario. No developer needed.
Which Formfy events can I track in Airtable?
Formfy publishes five webhook event types: form.created, form.sent, form.viewed, form.signed, and form.expired. For submission tracking, form.signed is the most actionable trigger — it fires the moment a recipient completes the form. You can subscribe a single webhook endpoint to multiple events by passing all of them in the event_types array when you POST /api/v1/webhooks.
Can I attach the signed PDF document to the Airtable record?
Yes. After a form.signed webhook fires, call GET /api/v1/forms/{id}/signed-pdf to retrieve a time-limited download token. Store that URL in an Airtable URL or Attachment field. Your team can then open the completed signed document directly from the Airtable row without needing a Formfy account or separate login.
How quickly does the Airtable record appear after a form is signed?
Formfy queues the webhook delivery within seconds of the form.signed event firing. Make and n8n typically process the scenario and create the Airtable record in under 30 seconds end-to-end. If your automation tool is temporarily unavailable, Formfy retries with exponential backoff for up to 24 hours — no submission is silently dropped.
What data fields does the form.signed webhook payload include?
The payload contains: submission_id, form_id, form_name, signer_email, signer_name, signed_at (ISO 8601 timestamp), and a reference to the signed document. You can map all of these directly onto Airtable columns. If you need additional signer metadata such as IP address or signing sequence, call GET /api/v1/forms/{id}/signers after the event fires.
Can I route different Formfy forms into different Airtable tables?
Yes. Inside your Make or n8n scenario, add a router or switch node that reads the form_id or form_name from the webhook payload and branches to a different Airtable "Create Record" action for each destination. You can use a single Formfy webhook subscription covering all forms, then let the automation logic distribute records to the right tables.
How do I verify that Formfy is the real source of each delivery?
Formfy signs every delivery with an X-Formfy-Signature header computed as HMAC-SHA256(signing_secret, raw_request_body). In Make, use a Custom Function module to recompute the signature and compare it before passing the payload to Airtable. In n8n, use the Code node for the same check. Reject any delivery where the signatures differ to prevent spoofed records from entering your base.
Does this recipe work for PDF forms converted from existing documents?
Yes. Formfy can convert an existing PDF — a liability waiver, intake form, or client agreement — into a fully signable form. Once converted, it behaves identically to a native Formfy form: when a recipient signs it, the form.signed webhook fires and the Airtable automation runs, creating a record with signer details and a link to the completed document.
Ship this automation in under 15 minutes
Spin up a Formfy API key, paste the example, and run your first end-to-end signed-form workflow today.
