splitforms.com

Form to webhook

Send an HTML form to a webhook, as signed JSON.

Point your HTML form at one endpoint and every submission is forwarded to any webhook URL as HMAC-signed JSON — plus stored and emailed, so you never lose a lead.

  • HMAC-signed JSON
  • 500 free / mo
  • 1-click webhooks
splitforms posts each form submission as an HMAC SHA-256 signed JSON payload to your own webhook endpoint

No backend

Point your form's action at one endpoint — no server route to build or deploy.

Signed JSON

Every delivery carries an HMAC-SHA256 X-Splitforms-Signature header you can verify.

Never lose a lead

Each submission is also stored in your dashboard and emailed to you, on every plan.

Quick start

Point your HTML form at one endpoint.

Point the action at the endpoint, add your access key, then paste a webhook URL in the dashboard. That's the whole integration — no server code, no redeploys.

Get your free access key
contact.html
<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
  <input name="email" type="email" required />
  <textarea name="message" required></textarea>

  <!-- honeypot: must stay empty -->
  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" />

  <button type="submit">Send</button>
</form>

<!-- In the splitforms dashboard:
     Webhooks tab -> Add URL -> https://your-app.com/webhooks/contact
     (paid plans) -->

Step by step

How to send an HTML form to a webhook.

No server, no SMTP setup — six steps from a plain HTML form to a verified, signed webhook delivery.

Get a free access key

Sign up at splitforms.com and create a form. Your access key appears in the dashboard instantly — no credit card required.

Point your HTML form at splitforms

Set action="https://splitforms.com/api/submit" and method="POST" on your existing form. No JavaScript required for the base submission.

Upgrade to Pro for webhook delivery

Free stores every submission and emails you. Webhook forwarding unlocks on Pro ($5/mo, 5,000 submissions) — upgrade from the dashboard in one click.

Add your webhook URL

Open the Webhooks tab on your form and paste the destination URL — Slack, Discord, your own API, or a Zapier/Make/n8n catch-hook.

Send a test submission

Submit the form once. Your endpoint should receive a POST with a JSON body and an X-Splitforms-Signature header within seconds.

Verify the signature

Compute HMAC-SHA256 of the raw request body with your webhook secret and compare it to the sha256=-prefixed header before trusting the payload.

Where submissions go

How do you send a form to a webhook?

splitforms is a hosted form backend: set your HTML form's action to https://splitforms.com/api/submit and every submission is stored, emailed, and — on paid plans — forwarded as an HMAC-signed JSON POST to any webhook URL. One endpoint routes to Slack, Zapier, or your own API, with no server code. Prefer an inbox? Pair it with form to email.

  • Receive HTML, FormData, and JSON from one endpoint
  • Sign every delivery with an HMAC-SHA256 header
  • Route to Slack, Discord, Zapier, Make, n8n, Sheets, Notion, or your own API
  • Stored and emailed on every plan — a missed webhook never loses the lead
One form submission routed to Slack, Google Sheets, Notion, and your own webhook API

Webhook payload

What does the webhook payload look like?

A single HTTP POST with a JSON body — whatever your form fields are named becomes the payload's keys, so there is no fixed schema to map. Every request carries an X-Splitforms-Signature header (HMAC-SHA256, prefixed sha256=) your endpoint checks before trusting the data. Test a live delivery with the webhook tester.

  • One HTTP POST with a JSON body — your field names become the keys
  • X-Splitforms-Signature (HMAC-SHA256, sha256=) on every request
  • One delivery attempt, 8-second timeout — the copy is still saved and emailed
The signed JSON webhook payload splitforms POSTs to your endpoint

Spam filtering

Will spam reach your webhook?

Rarely. Every submission clears a honeypot field, a time-trap, and server-side content heuristics before it is stored or forwarded, and splitforms rate-limits incoming submissions to 6 per minute per IP. Turn on reCAPTCHA v2 with your own secret for an extra layer.

  • Honeypot + time-trap + content heuristics on every submission
  • Rate-limited to 6 submissions per minute per IP
  • Optional reCAPTCHA v2 with your own secret key
splitforms filters spam before a form submission ever reaches your webhook

How SplitForms works

From form to workflow in 3 simple steps.

Connect your form, collect every submission, and send data where it needs to go — without building backend infrastructure.

A SplitForms contact form submission launching straight to your inbox

Add your endpoint

Point your form to your unique SplitForms endpoint. That's it.

HTML form pointing at a SplitForms submit endpoint

Receive submissions

We instantly capture and organize every submission in your inbox.

Submissions inbox with searchable leads and status pills

Route anywhere

Send data to email, spreadsheets, CRMs, webhooks, and 7,000+ apps.

Generic integration tiles for email, sheets, chat, CRM, automate, and webhook

No credit card required. Set up in under 60 seconds.

Connect & automate

Connect your favorite tools and automate everything

SplitForms works with the destinations you route to and the platforms you build on — from Slack and Sheets to WordPress, Shopify, and Next.js.

Connect your SplitForms form to Slack, Google Sheets, Mailchimp, Zapier and more

Trusted by indie teams and agencies shipping forms worldwide

PETAL/COKRAFT.DELINEAR-XBUILD.DEVSTUDIO 71MERIDIANFRAME&CO

Testimonials

Loved by developers shipping at every scale.

40 quotes on record — from indie hacks to agency migrations.

Form to webhook FAQ

Form to webhook questions.

View all FAQs
How do I send an HTML form to a webhook?

Set your form's action to https://splitforms.com/api/submit and add a hidden access_key input. splitforms receives the POST, stores it in your dashboard, and — on paid plans — forwards the submission as a signed JSON POST to any webhook URL you add under the Webhooks tab.

Can I send the same form submission to multiple webhooks?

Yes. Add more than one webhook URL to the same form. Each destination gets its own delivery attempt, so a Slack outage doesn't stop your other integrations or the copy stored in your dashboard.

Are splitforms webhooks signed?

Yes. Every outbound webhook includes an HMAC-SHA256 signature in the X-Splitforms-Signature header, prefixed sha256=, so your receiving endpoint can verify the payload really came from splitforms.

What happens if my webhook endpoint is down?

splitforms sends each webhook once, with an 8-second timeout, and does not automatically retry a failed delivery. The submission is still stored in your dashboard and emailed to you — email notifications are included on every plan, including Free — so a webhook failure never means a lost lead.

Do webhooks work on the Free plan?

No. Webhook delivery starts on the Pro plan ($5/mo, 5,000 submissions/mo). Free (500 submissions/month) still includes unlimited forms, email notifications, spam filtering, and dashboard storage — upgrade only when you're ready to route submissions automatically.

What does the webhook payload look like?

Your endpoint receives an HTTP POST with a JSON body containing whatever fields the visitor submitted, plus the X-Splitforms-Signature header for verification. There's no separate schema to learn — the form's own fields become the payload's keys.

Can I send form submissions to Zapier, Make, or n8n?

Yes. splitforms doesn't have a native Zapier app, but Zapier's "Webhooks by Zapier" trigger, Make's webhook module, and n8n's Webhook node all accept a splitforms webhook URL directly — paste the catch-hook URL into the Webhooks tab like any other destination.

Will spam submissions reach my webhook?

Rarely. Every submission passes a honeypot field, a time-trap check, and server-side content heuristics before it's stored or forwarded, and splitforms rate-limits incoming submissions to 6 per minute per IP. You can also turn on reCAPTCHA v2 with your own secret for extra filtering.

Simple pricing

Start free. Scale when you need more.

Choose a plan that fits your workflow — from a free form endpoint to full automations, exports, and higher submission limits.

Free

$0

Free forever

 
Best for testing

For side projects and indie devs.

  • 500 submissions / mo
  • Unlimited forms
  • Email notifications included
  • Honeypot spam filtering
  • Submissions dashboard
  • MCP setup stays free
  • No credit card required

3-Year

$59/ 36 months
was $99 · save 40% · new-user price

Pay $59. 3 years sorted.

  • 15,000 submissions / mo
  • Unlimited forms
  • Everything in Pro
  • Renews every 3 years
  • Long-term discount
  • Priority support included
  • Vote on the roadmap

No credit card required on Free • Cancel anytime