Webhooks
Send an HTTP POST request to your own server or automation tool every time a form receives a submission.
Requires Team plan or higher.
Use cases
Trigger a Zapier / Make workflow on each submission
Notify a Slack channel
Sync to a CRM or database
Mint an NFT or execute on-chain logic
Invalidate a cache or trigger a redeploy
Creating a webhook
Open the form builder
Click Settings → Webhooks
Click Add Webhook
Enter your endpoint URL (must be HTTPS in production)
Optionally add a secret for signature verification
Click Save
You can add multiple webhooks per form (Team+).
Webhook payload
When a form is submitted, forms.wtf sends a POST request with a JSON body:
Signature verification
If you set a webhook secret, forms.wtf signs the request so you can verify it came from us.
Header sent with every request:
Verifying in Node.js:
Delivery behavior
Webhooks are sent fire-and-forget — form submission is not blocked if your endpoint is slow or down
Timeout: 5 seconds — if your endpoint doesn't respond within 5 seconds, the request is abandoned
No retries — if your endpoint is down, the webhook is not re-sent
HTTP status codes 2xx are considered success; anything else is logged as a failure
For critical workflows, use Google Sheets sync as a reliable backup alongside webhooks.
Testing your webhook
Use webhook.site or ngrok during development to inspect incoming payloads without deploying.
Get a temporary URL from webhook.site
Add it as a webhook URL in your form
Submit a test response
See the full payload in the webhook.site inspector
Disabling a webhook
Toggle the webhook off in Form Settings → Webhooks without deleting it. Toggle back on to re-enable.
Last updated
Was this helpful?