Webhooks connect a form to any service that accepts data at a URL. When a form is submitted, Fillin Forge sends all the form data as a structured JSON payload to any URL you specify via an HTTP POST request. This lets you connect your forms to virtually any external service, automation platform, or custom backend — whether Fillin Forge has a built-in integration for it or not.
Think of webhooks as a universal adapter. If a service can receive data via a URL (and many services can), you can connect it to your forms through a webhook.
When to Use Webhooks
| Scenario | Example |
|---|---|
| Automation platforms | Send data to Zapier, Make (Integromat), or n8n to trigger multi-step workflows |
| CRMs without a direct integration | Feed data to Pipedrive, Salesforce, Zoho, or Freshsales |
| Custom backends | Send data to your own API, database, or server |
| Internal tools | Push submissions to Notion, Airtable, or Trello via their APIs |
| Multi-step workflows | A single submission triggers a chain of actions across multiple services |
| Logging and analytics | Send data to a data warehouse or analytics platform |
How to Set Up a Webhook
- Open your form in the builder.
- Find the Webhook card in the builder. It has a Webhook URL field.
- Enter the URL where you want data sent. Examples:
https://hooks.zapier.com/hooks/catch/123456/abcdef/
– Make: https://hook.us1.make.com/abcdefgh
– n8n: https://your-n8n-instance.com/webhook/abcdefgh
– Your own API: https://api.yoursite.com/form-submissions
- Save the form.
What Gets Sent
On every form submission, Fillin Forge sends an HTTP POST request with a JSON body containing:
| Data included | Example |
|---|---|
| All form field values (each with its label and value, keyed by field ID) | {"fields": {"field_1": {"label": "Name", "value": "Jane Smith"}}} |
| Form ID and form title | {"form_id": 123, "form_title": "Contact Us"} |
| Submission ID | {"submission_id": 456} |
| Timestamp | {"timestamp": "2026-04-10T14:30:00+00:00"} |
Delivery, retries and headers. Fillin Forge sends the webhook once, while the form is being submitted, and waits up to 10 seconds for an answer. If the endpoint answers with an error or does not answer in time, the webhook is not sent again, and the Submissions screen has no button to send it again. The request is not signed. To let your endpoint recognize your site, put a secret in the Custom headers box of the Webhook card, one Name: value per line, for example Authorization: Bearer your-token. A Content-Type, Host, Content-Length, Connection or Transfer-Encoding line is ignored. The Send a test submission button of the builder does not call webhooks.
Testing Your Webhook
- Enter the webhook URL in the Webhook card of the form builder and save the form.
- Submit the form with test data.
- Check the receiving service to confirm the data arrived correctly.
- If using Zapier, check the Zap’s task history. If using Make, check the scenario’s execution log.
- If the data does not arrive, verify the URL is correct and the receiving service is active.
Real-World Webhook Examples
| Goal | Webhook setup |
|---|---|
| Create Trello cards from submissions | Webhook to Zapier, which triggers “Create Card” in Trello |
| Add records to Airtable | Webhook to Make, which appends a row to your Airtable base |
| Send custom Slack messages | Webhook to your own API that formats and posts a custom Slack message |
| Update a Notion database | Webhook to Make or n8n, which creates a page in your Notion database |
| Trigger an SMS notification | Webhook to Zapier, which sends an SMS via Twilio |
> Tip: When using Zapier or Make, start with a “Catch Webhook” trigger to receive the data, then add your desired action steps. You can build multi-step automations that do several things from one form submission. Submit a test entry to populate the fields in your automation builder.
> Good to know: Generic webhooks are available on the free plan. If the webhook URL is unreachable or returns an error, the form submission is still saved in Fillin Forge — your data is never lost because of a webhook failure. The webhook is not sent again, so process the saved submission from the Submissions screen or from a CSV export.
> Troubleshooting: Fillin Forge keeps the last 30 webhook calls in the formforge_webhook_log option (time, status, message and form ID). There is no log screen in the admin: read it with wp option get formforge_webhook_log --format=json. If a submission is saved but your external service does not show it, test with webhook.site first, then look in the log for an error, a status that is not 2xx, or a skipped call.
Common Mistakes to Avoid
- Pasting the wrong URL. Webhook URLs from Zapier, Make, and other services are long and easy to mistype. Always copy and paste, never type manually.
- Forgetting to activate the receiving end. In Zapier, your Zap must be turned on. In Make, your scenario must be active. A webhook URL that nobody is listening to does nothing.
- Not testing with real data. A successful webhook test with empty fields might work, but real data with special characters, long text, or file upload references might reveal issues.
[Screenshot: The Webhook card of the form builder showing the Webhook URL field with a Zapier webhook URL pasted in]
—