Webhooks for form submissions
POST every submission as JSON to any public HTTPS endpoint you control — your API, a serverless function, a CRM — with the headers it needs and a log of every delivery.
Why Use This Integration
POST to any HTTPS endpoint you control
Custom headers for authenticating the request
Choose the HTTP method per endpoint
Send a test payload before going live
A delivery log with the status code of every attempt
The same envelope Zapier and n8n receive
How It Works
Formboost sends a POST request to your webhook URL whenever a form is submitted, carrying the submission data and metadata. Authenticate the request by adding custom headers — an Authorization header, for example — which Formboost sends with every delivery.
Form submitted → Formboost sends webhook → Your backend receives data → Database updated → Email confirmation sent
Setup in 5 Steps
Go to Formboost dashboard
Add your webhook endpoint URL (HTTPS, publicly reachable)
Add any custom headers your endpoint needs to authenticate the call
Send a test payload to confirm your endpoint accepts it
Handle the webhook payload in your backend
The payload your endpoint receives
One JSON object per submission. Your form's fields are spread into `submission`, with `submittedAt` added last so a field of the same name cannot overwrite it. `eventId` is stable per submission, so a consumer can drop a duplicate if it ever sees one twice. The same envelope is delivered to Zapier and n8n.
POST https://your-app.example/hooks/formboost
Content-Type: application/json
User-Agent: Formboost-Webhook/1.0
Authorization: Bearer <the header you configured>
{
"event": "form.submission",
"eventId": "sub_9c1f…",
"sentAt": "2026-09-16T10:21:07.412Z",
"form": { "name": "Contact", "alias": "YOUR_ENDPOINT_ID" },
"submission": {
"name": "Jane Smith",
"email": "jane@example.com",
"message": "Hello — can we talk on Thursday?",
"submittedAt": "2026-09-16T10:21:06.980Z"
}
}Delivery rules, stated plainly
The URL must be public HTTPS; private and loopback addresses are refused, and redirects are not followed. Each delivery has a 15-second timeout. Any 2xx from your endpoint counts as delivered; anything else, or a timeout, is recorded as failed with the status code — Formboost does not retry automatically, so use the Send test button and the delivery log to get an endpoint right before going live.
There is no signature header. Authenticate the call with a custom header — a bearer token or shared secret you set on the integration — and check it on your side. Test deliveries carry `event: form.submission.test` and are kept apart from real traffic in the log.
Webhooks setup walkthrough
In short
A webhook is an HTTP request Formboost sends to a URL you choose the moment a submission clears screening, with the submission as JSON. Email tells you a form was filled in; a webhook lets something happen — a CRM contact created, a row appended, a workflow started, your own code run.
Key takeaways
- •Custom webhooks start on the Starter plan ($9/mo); Slack, Discord, Telegram and email delivery are on the free plan.
- •The URL must be public HTTPS. Choose the method (POST by default; GET, PUT and PATCH are accepted) and add any headers the receiver needs.
- •One attempt per submission with a 15-second timeout, logged with its status code. There is no automatic retry and no signature header — authenticate with a header you set.
- •
eventIdis stable per submission, so a consumer that sees the same event twice can drop the duplicate.
Where to point a webhook
- •Your own backend — an API route or serverless function that writes to your database or sends a confirmation.
- •A CRM or SaaS API — HubSpot, Pipedrive or any endpoint that accepts JSON, authenticated with a header.
- •An automation platform — Zapier and n8n are first-class destinations with the same payload; Make and IFTTT are reachable through their webhook triggers.
- •A capture tool while you build — webhook.site shows the exact request before you write a line of code.
Setup (under 5 minutes)
- •Open the form in your dashboard and go to Integrations → Webhook.
- •Paste the endpoint URL. It has to be reachable from the public internet over HTTPS —
localhostand private addresses are refused. - •Pick the HTTP method. POST is the default and what most receivers expect.
- •Add custom headers as needed — an
Authorization: Bearer …orX-API-Keyheader is how you authenticate against an API.Host,Content-Length,ConnectionandTransfer-Encodingare ignored if set. - •Save, then click Send test. The test carries
event: form.submission.testand shows up in the delivery log like a real one.
Inspect the payload before you build against it
Open webhook.site, copy the unique URL it gives you, paste it as the webhook URL and send a test. You will see the method, every header and the JSON body exactly as your real endpoint will receive them. The envelope itself — event, eventId, sentAt, form, submission — is documented in the contract above and is identical for Zapier and n8n.
Answer fast, work later
Formboost waits up to 15 seconds for a 2xx and makes one attempt. Acknowledge first and do slow work afterwards:
// Express example
app.post("/hooks/formboost", (req, res) => {
if (req.get("authorization") !== `Bearer ${process.env.FORMBOOST_HOOK_TOKEN}`) {
return res.sendStatus(401);
}
res.sendStatus(200); // acknowledge inside the timeout
processSubmission(req.body); // then do the real work asynchronously
});A non-2xx or a timeout is recorded as a failed delivery with the status code in Integrations → Delivery log. Because there is no retry, fix the endpoint and use Send test to confirm before relying on it — the submission itself is always stored and visible in the dashboard regardless.
Troubleshooting
| Problem | Fix |
|---|---|
| No request arrives | The URL must be public HTTPS; localhost, private IPs and plain HTTP are refused. Check the delivery log for the recorded error. |
| 401 or 403 in the log | The header value the receiver expects is wrong or missing — re-enter it on the integration. |
| Timeout in the log | Respond within 15 seconds; move slow work after the acknowledgement. |
Fields missing from submission | Every input needs a name attribute; unnamed inputs are not submitted by the browser. |
| Redirect answered by the endpoint | Redirects are not followed — point the webhook at the final URL. |
Go deeper
Works Great With
Frequently Asked Questions
Common questions about Webhooks integration
How does Webhooks integration work?
Formboost sends a POST request to your webhook URL whenever a form is submitted, carrying the submission data and metadata. Authenticate the request by adding custom headers — an Authorization header, for example — which Formboost sends with every delivery.
How do I set up Webhooks?
Follow the setup steps below. The process is straightforward and typically takes just a few minutes to complete.
Which plans include the Webhooks integration?
The Webhooks integration is available from the Starter plan ($9/mo) upward. The Free plan includes email, Slack, Discord and Telegram delivery, one destination per form.
Can I use multiple integrations at once?
Yes, on Starter and above: Starter allows five destinations per form and Pro removes the limit, so one form can post to email and Webhooks at the same time. The Free plan sends each form to one destination.
Connect Webhooks to your forms today
It takes less than a minute to set up. No credit card required.