NEW AI agents now first-class: authorize · audit · revoke in one click — your agents submit cleanly, bots stay blocked. Read agent docs →
integrations

Connect to 1,000+ apps via Zapier, Make, n8n, or Activepieces.

Every form on Form4Dev can push to a signed webhook on every submission. That single webhook is all Zapier, Make, n8n, and Activepieces need to wire your form to Gmail, Google Sheets, Notion, HubSpot, Slack, Airtable, Pipedrive, Trello — anything any of them supports. You don't need a separate Form4Dev connector. The webhook is the connector.

How it works — 60 seconds

  1. In your workflow tool (Zapier / Make / n8n / Activepieces), create a new flow with a Webhook trigger. The tool gives you a unique webhook URL.
  2. Open your form in Form4Dev → Webhooks, click Add webhook, paste that URL, save.
  3. Submit a test entry to your form. The webhook fires within a second; your workflow tool now sees a sample payload and you can map the fields to a destination — Gmail, Sheets, Notion, whatever your tool supports.

That's the whole pattern. The four recipes below are just the same three steps with each tool's UI labels.

The webhook payload

Every event is a single JSON POST with this body:

{
  "event": "submission.created",
  "formId": "frm_a1b2c3",
  "formName": "Contact form",
  "submissionId": "sub_4d5e6f",
  "createdAt": "2026-05-29T14:30:00.000Z",
  "data": {
    "name": "Ada Lovelace",
    "email": "[email protected]",
    "message": "I'd like a demo."
  }
}

data is whatever the form submitter sent — the keys match your form's field IDs. Magic fields (_replyto, _subject, etc.) are stripped from data before delivery, so you only see the real form fields.

eventwhen it fires
submission.createdEvery non-spam submission. The default — what you almost always want.
submission.spamA submission that was caught by the spam pipeline. Subscribe to this if you want a separate "quarantine review" workflow; otherwise leave it off.
submission.deletedA submission was deleted from the dashboard. Useful for keeping a downstream CRM in sync.

Pick which events your webhook subscribes to in the form's webhook settings. submission.created is the default if you pick nothing.

Headers we send

headervalue
Content-Typeapplication/json
User-AgentForm4Dev-Webhook/1.0 — allowlist this if your edge proxies block unknown UAs.
X-Form4Dev-Evente.g. submission.created — useful when one endpoint handles multiple event types.
X-Form4Dev-DeliveryUnique delivery ID. If you retry a downstream action, dedupe on this so a retried delivery doesn't double-post.
X-Form4Dev-Attempt1 on the first try, 2..5 on retries.
X-Form4Dev-Signaturesha256=<hex> HMAC-SHA256 over the raw request body, using your webhook's secret. Only sent when a secret is configured.

Verifying the signature (when your tool supports it)

Most no-code workflow tools (Zapier, Make, Activepieces) don't check signatures — they trust the URL is hard to guess. Fine for most cases. If you're running n8n on your own server or a custom endpoint and want HMAC verification, set a secret on the webhook in Form4Dev and verify it like this:

import { createHmac, timingSafeEqual } from "node:crypto";

const raw = await request.text();
const expected = "sha256=" + createHmac("sha256", secret).update(raw).digest("hex");
const sent = request.headers.get("x-form4dev-signature") ?? "";
if (sent.length !== expected.length ||
    !timingSafeEqual(Buffer.from(sent), Buffer.from(expected))) {
  return new Response("bad signature", { status: 401 });
}

Compute the HMAC over the raw request body — don't parse and re-stringify, the spaces will mismatch and signatures will never pass.

Retries and delivery log

We treat any 2xx response as success. Anything else (or a timeout past 10 seconds) is retried with exponential backoff:

attemptdelay after previous failure
1immediately (when the submission lands)
2+1 minute
3+5 minutes
4+30 minutes
5+2 hours
(give up)after 5 failed attempts the delivery is marked abandoned

The dashboard shows the full delivery history for every webhook — request body, response status, response body (first 2KB), timestamps, attempt number. If something downstream broke, replaying or debugging starts there.

Recipe: Form4Dev → Zapier → anything

  1. In Zapier, click Create Zap. For the trigger, pick Webhooks by ZapierCatch Hook.
  2. Zapier shows you a unique URL like https://hooks.zapier.com/hooks/catch/12345/abcdef/. Copy it.
  3. Open your form in Form4Dev → WebhooksAdd webhook. Paste the URL, save.
  4. In Zapier, click Test trigger. Submit a real entry to your Form4Dev form (or use the dashboard's Send test button). Zapier picks up the payload.
  5. Add an Action. Examples: Gmail → Send Email (map data.email to To, data.message to Body), Google Sheets → Create Spreadsheet Row (one column per data.* field), Slack → Send Channel Message, etc.
  6. Publish. From now on every submission flows through.

Zapier's free plan gives you ~100 tasks/month — enough to wire one or two forms. The webhook itself is free on every Form4Dev plan including Free.

Recipe: Form4Dev → Make → anything

  1. In Make (formerly Integromat), create a new Scenario. Pick WebhooksCustom webhook as the first module.
  2. Click Add, give it a name, then Save. Make shows the webhook URL — copy it.
  3. Paste into Form4Dev → Webhooks. Save.
  4. Back in Make, click Run once. Submit a test entry. Make captures the payload structure.
  5. Add the next module — Gmail → Send an email, Google Sheets → Add a row, Notion → Create a database item, etc. Map fields from 1.data.<field>.
  6. Activate the scenario.

Recipe: Form4Dev → n8n → anything

  1. In n8n, create a new workflow. Add a Webhook node as the trigger. Set the HTTP method to POST.
  2. Copy the Test URL (during development) or Production URL (when live). Paste into Form4Dev → Webhooks.
  3. If you want HMAC verification, set a secret on the Form4Dev webhook and add a Function node right after the webhook to verify X-Form4Dev-Signature against the raw body — snippet under Verifying the signature.
  4. Add an action node — Gmail, Notion, Airtable, HubSpot, anything in n8n's catalogue. Reference fields as {{$json.data.email}} etc.
  5. Save and activate.

n8n on your own server is the right pick if you want signature verification, full payload control, and no per-execution metering. Cloud-hosted n8n works identically.

Recipe: Form4Dev → Activepieces → anything

  1. In Activepieces, create a new Flow. Pick Webhook as the trigger.
  2. Activepieces gives you a webhook URL — copy it.
  3. Paste into Form4Dev → Webhooks. Save.
  4. Submit a test entry; Activepieces captures the sample.
  5. Add the next step — Gmail, Google Sheets, Slack, HubSpot, etc. Map fields from trigger.body.data.<field>.
  6. Publish.

Activepieces can also run inside your own infrastructure — useful if you want the workflow engine on your servers.

Test before you wire it

If you want to see the exact bytes Form4Dev sends before you commit to a workflow tool, point a webhook at webhook.site for five minutes. Submit a test entry. You'll see the full request — method, URL, headers, body — and can copy the JSON into whichever tool you end up using. Delete the test webhook afterwards.

FAQ

Do I need a paid plan? No. Webhooks work on every plan including Free.

How many webhooks per form? No hard limit — add one for each destination. They all fire in parallel after the submission lands.

What if my workflow tool is slow? We wait up to 10 seconds for a response. After that the delivery is logged as a timeout and retried per the schedule above. Your tool sees the same delivery ID — dedupe on X-Form4Dev-Delivery if you're doing something non-idempotent downstream.

Can I use this to call my own backend? Yes — that's the original use case. Set a secret, verify the HMAC, you're done. See the snippet under Verifying the signature.

Does this replace the built-in Slack / Discord / Telegram / Mailchimp integrations? No, those still exist for one-click setup. Webhooks are for everything else — anything outside that short list. You can use both on the same form.

What about Gmail OAuth, Notion OAuth, HubSpot OAuth? Your workflow tool handles all of that — you authorize Zapier / Make / n8n / Activepieces against those services once in their UI, and Form4Dev never sees those credentials. We just push the submission payload to the URL you gave us.

Need help wiring a specific destination? Email [email protected] with the tool you're using and the destination you want, we'll send you a screenshot walkthrough.