How to Use Webhooks with Your Contact Form
Webhooks let you forward form submissions to any URL the moment they arrive — trigger CRM updates, Zapier workflows, database writes, or custom backend logic automatically.
Email notifications tell you a submission arrived. Webhooks let you act on it automatically — update your CRM, create a task, add a row to a spreadsheet, or trigger any backend workflow, the moment a form is submitted.
What Is a Form Webhook?
A webhook is an HTTP request your form service sends to a URL you specify when a new event occurs. In the case of contact forms: every submission triggers a POST request to your endpoint with the submission data as JSON.
You can point a webhook at:
- A Zapier or Make webhook URL to trigger any automation
- Your own backend API to run custom logic
- A CRM's API endpoint to create contacts automatically
- A testing tool like webhook.site to inspect the payload
Setting Up Webhooks in Formboost
- Log in to dashboard.formboost.app
- Open your form → Integrations tab → Webhook
- Enter your endpoint URL
- Choose the HTTP method:
POST,GET,PUT, orPATCH - Optionally add custom headers (for authentication)
- Save
The Payload
Formboost sends submission data as a JSON body:
1{
2 "event": "form.submission",
3 "eventId": "sub_3b241101-e2bb-4255-8caf-4136c566a962",
4 "sentAt": "2026-08-24T12:00:00.120Z",
5 "form": {
6 "name": "Contact Form",
7 "alias": "contact"
8 },
9 "submission": {
10 "name": "Jane Smith",
11 "email": "[email protected]",
12 "message": "Hello, I'd like to learn more.",
13 "submittedAt": "2026-08-24T12:00:00.000Z"
14 }
15}Your own fields live under submission, named after the name attributes on your form inputs. Everything Formboost adds sits at the top level, so a field of your own can never collide with ours.
eventId is stable across retries — use it as an idempotency key. sentAt is when the attempt was made; submission.submittedAt is when the form was actually filled in, which differ if a failed delivery is retried later.
The Zapier and n8n destinations send this identical body.
Custom Headers
Add authentication headers as a JSON object in the Custom Headers field:
1{
2 "Authorization": "Bearer YOUR_API_TOKEN",
3 "X-API-Key": "YOUR_KEY"
4}This is how you authenticate against APIs that require a token (HubSpot, Salesforce, custom backends, etc.).
Testing with webhook.site
Before wiring up to a real service, inspect the exact payload:
- Open webhook.site and copy the unique URL
- Paste it as your webhook URL in Formboost and save
- Submit your form (or click Send Test)
- See the full request — headers, method, body — on webhook.site
This confirms exactly what Formboost sends before you build against it.
Retry Behavior
If your endpoint returns a non-2xx response or times out (10s limit), Formboost retries up to 3 times with exponential backoff. All attempts are logged in your dashboard under Integrations → Delivery Logs.
Common Integrations
Zapier
Use Zapier's Webhooks by Zapier trigger with your Formboost webhook URL. From there, connect to 5,000+ apps — add to Google Sheets, create HubSpot contacts, send a Slack message, and more.
HubSpot Contact Creation
Point the webhook at HubSpot's contact API endpoint and add the required Authorization header:
1{
2 "Authorization": "Bearer YOUR_HUBSPOT_TOKEN"
3}Custom Backend
Your endpoint just needs to return a 2xx status within 10 seconds. Offload heavy work asynchronously:
1// Express.js example
2app.post("/formboost-webhook", (req, res) => {
3 res.sendStatus(200); // Acknowledge immediately
4 processSubmission(req.body); // Async, won't block response
5});Troubleshooting
| Problem | Fix |
|---|---|
| No request received | URL must be publicly accessible — localhost won't work |
| 401 / 403 errors | Check the Authorization header value |
| Timeout | Respond within 10 seconds; defer heavy logic |
| Missing fields | Check name attributes in your HTML form |