WEBHOOK · FREE PLAN

Send form submissions to a webhook

A webhook is a URL you own. FormRoute POSTs every valid submission to it as JSON, after Turnstile and the AI classifier have already thrown the spam away. The free plan includes one endpoint.

THE GUARANTEE

Spam filtering and server-side validation run before delivery. Your handler never sees a bot submission, and never sees a payload that failed your own rules.

WHY A WEBHOOK

Email is for a person. A webhook is for a system.

An email notification is read by someone, eventually. A webhook is a request: it creates the ticket, writes the row, starts the trial, pages the on-call. If the next step after a submission is code rather than a human, the notification is the wrong tool.

It is also the more reliable half. Email delivery is best effort, and a notification that lands in a spam folder is a lead you never knew about. A webhook is a request you can log, inspect and replay.

THE RECEIVER

Any URL that answers a POST

No SDK and no library. A route handler, a serverless function or a queue worker: if it reads a JSON body, it is a valid destination.

Answer 2xx once you have taken the submission. The field names in the body are thename attributes of your own form, so the payload changes when your markup does.

webhook.js
// Anything that can read a JSON body.export async function POST(request) { const submission = await request.json(); await createTicket(submission); return new Response(null, { status: 200 }); }
ROUTING

A webhook is one destination, not the only one

On Indie and above, routing rules decide which submission reaches which destination. One submission can hit your webhook and a Slack channel, and skip storage entirely. The rule reads the fields you already collect, so a form with aplan field can send enterprise enquiries somewhere the rest never go.

Nothing above needs a Zapier account or a glue service in between.

FAQ

Webhook questions

Does the webhook fire for spam?+

No. Cloudflare Turnstile and the AI classifier run at the edge, before anything is stored or forwarded. A blocked submission never reaches your endpoint and never counts against your monthly limit.

What happens if my endpoint is down?+

The submission is still stored in your dashboard, so nothing is lost while you fix the receiver. Storage is on by default for 7 days on the free plan, and you can set the window from 0 to 30 days.

How many webhooks do I get?+

The free plan includes one webhook endpoint. On Indie and above, routing rules decide which submissions reach which destination, so the same form can hit a webhook and Slack from one submission.

Do I need a webhook to receive submissions?+

No. Every plan sends an email notification and stores the submission in the dashboard. A webhook is for when a system, not a person, needs to act on the submission.

Point the submission at your own code.

FormRoute is live in private access. Drop your email and we'll send your invite.

Free forever · 1,000 submissions/mo · unlimited forms