splitforms.com

Documentation · Integrations

Send form submissions to n8n.

Every submission on your splitforms form can trigger an n8n workflow — cloud or self-hosted. n8n's Webhook node gives you a URL, splitforms POSTs each submission to it as signed JSON, and the workflow runs within seconds.

Get a free access key n8n integration overview

What it does

splitforms delivers every submission on your form to n8n the moment it arrives. On the n8n side you build the workflow once — Webhook trigger node as the trigger, any apps you like after it — and splitforms keeps it fed.

The connection is a signed outbound webhook, not an OAuth app: there is nothing to install and no credentials to rotate.n8n hands you a catch URL (https://your-instance.app.n8n.cloud/webhook/abcd-1234), you paste it into splitforms, and every submission is POSTed there as JSON.

The lead is never at risk: each submission is saved to your dashboard and emailed to you before the webhook fires, so a broken n8n workflow never loses data.

Before you start

  • A splitforms form. Your form's access_key identifies it in the HTML that posts to https://splitforms.com/api/submit— that's what connects a page on your site to the webhook. New accounts get a form and key automatically; find it under Dashboard → Forms.
  • A paid splitforms plan. Forms and the dashboard are free for 200 submissions total; webhooks unlock on paid plans.
  • The n8n catch URL.Created in the first setup step below — don't go looking for it in n8n's settings, it only exists once you add the trigger.

Set up n8n

01Add a Webhook trigger node

In n8n, create a workflow and add a Webhook node as the trigger. Set HTTP Method to POST.

02Copy the Production URL

Use the Production URL (https://<instance>/webhook/<path>) — the Test URL (/webhook-test/<path>) only accepts a single call while the editor is listening. Self-hosted instances must be reachable at a public HTTPS address; splitforms refuses private and loopback targets.

03Paste the URL in splitforms

Open Dashboard → Integrations → Webhooks, click Add a webhook, and pick the n8n preset. Paste the n8n URL, choose whether it fires for all forms or one form, and save.

04Fire the test webhook

Click Test webhook right in the preset card. The sample execution appears in n8n's Executions list. Open the Webhook node's output — the JSON body carries the submission under body.submission, with your form fields at body.submission.data.

05Map fields into downstream nodes

Wire in Set, Notion, Postgres, Slack, or any of n8n's 400+ nodes and reference the submission fields from the webhook output.

06Activate the workflow

Inactive workflows don't listen on the Production URL. Save and activate, and every splitforms submission now triggers a run.

Prefer the short version? The n8n preset in Dashboard → Integrations → Webhooks shows these same steps next to the form where you paste the URL.

Payload n8n receives

n8n gets the full submission as JSON — the same body documented in Webhooks:

{
  "event": "submission.created",
  "submission": {
    "id": "3f9a2b7e-4c1d-4e9a-9b2f-7a6c1d3e4f5a",
    "form_name": "Contact",
    "data": {
      "name": "Ada Lovelace",
      "email": "[email protected]",
      "message": "Hello."
    },
    "ip_address": "203.0.113.7",
    "referer": "https://yoursite.com/contact",
    "created_at": "2026-05-04T14:31:04.123Z"
  }
}

Your form's fields live under submission.data with the exact name attributes from your HTML. Alongside the body, splitforms sends these headers:

HeaderValue
Content-Typeapplication/json
X-Splitforms-Eventsubmission.created
X-Splitforms-Signaturesha256=<HMAC-SHA256 of the raw body with the webhook secret>
User-Agentsplitforms.com-webhook/1.0

Delivery times out after 8 seconds and is not auto-retried — the dashboard shows the last status and error per webhook. Want to inspect a payload by hand? Paste it into the webhook tester.

Troubleshooting

  • n8n returns 404 for the webhook. The workflow isn't activated, or you saved the Test URL in splitforms. The Production URL only responds while the workflow is active — switch the URL and toggle the workflow on.
  • splitforms can't reach your n8n instance at all. Self-hosted n8n must be on a public HTTPS address. splitforms delivers only to public hosts (private IPs and loopback are refused), so put the instance behind a proper domain with TLS.
  • It worked while testing in the editor, but real submissions do nothing. Editor listening uses the Test URL and stops after one call. Save the Production URL in splitforms and activate the workflow.
  • You want to verify requests are really from splitforms. Each webhook has a signing secret in the splitforms dashboard. Verify the X-Splitforms-Signature header (HMAC-SHA256 of the raw body) in a Code node before processing.

FAQ

Does this work with n8n cloud and self-hosted n8n?

Both. n8n cloud instances are publicly reachable out of the box; self-hosted instances need a public HTTPS address, since splitforms refuses to deliver to private or loopback targets.

Is there OAuth or an app to install?

No. The integration is a plain signed webhook: you paste n8n's Production URL into splitforms and submissions start flowing. Nothing to install on either side.

Can one workflow handle submissions from several forms?

Yes. A splitforms webhook is account-wide by default (or scoped to one form), and the payload's submission.form_name field tells you which form each submission came from.

Does splitforms retry a delivery if n8n is down?

No — the dashboard records the webhook's last status and error instead. The lead is never lost: every submission is saved to the dashboard and emailed regardless of webhook outcome, so once the workflow recovers you can act on anything missed from the dashboard.

Start routing submissions to n8n.

200 free submissions total, unlimited forms, no credit card.

Get a free access key Back to docs