Custom webhooks
Send each submission to a URL of your own, when your team's code or a tool without a Formstep app should receive the answers.
How it works
Each time someone submits the form, or edits a submission, Formstep sends the answers to your URL. A form can have several webhooks, and each one gets every submission. Unfinished drafts are not sent to a webhook.
Add a webhook
- 1
Open Integrations
Click Integrations in the form's top bar, then pick Webhook.
- 2
URL
Type the https:// address that should receive the answers.
- 3
Answers to send
Leave the mapping empty to send every field. Add rows to send only some fields, each under a name you choose. Open See an example request to watch what is sent change as you edit.
- 4
Signing secret and headers
Formstep creates a signing secret for this webhook. Copy it now and give it to whoever runs the receiving end. Add up to 5 headers of your own if the receiver needs them, such as an authorization token.
- 5
Turn it on
Click Turn on Webhook, then Send a test event to send an example submission.
Testing on your own computer
A webhook also accepts http://localhost, so you can try it against a receiver running on your machine. A request’s callback
URL does not: it must use HTTPS.
Formstep refuses addresses inside a private network. If a delivery fails, Formstep retries it and pauses the webhook after repeated failures: see Health and monitoring.
What your URL receives
Each delivery carries the form, the submission, and every answer twice: once as the stored value, under the question’s field key, and once as text a person reads. To see the exact body for your form, open the webhook and expand Example payload. It uses your current mapping with sample answers.
Each delivery is signed with the webhook’s secret, so the receiver can check it came from Formstep. Developers: see Signing in the webhooks reference, which also has the full format.
FAQ
No. Formstep creates it once, with the webhook. For a new secret, delete the webhook and add a new one. Only the workspace owner can see the secret later.
A custom webhook sends only finished submissions and edits. A developer can subscribe to unfinished drafts through the webhooks reference. Google Sheets, Airtable, Notion, Slack, Discord, Linear and GitHub Issues can send them too, on Pro and Business.
Open Integrations, pick the webhook under On this form, and choose Delete integration in the ⋯ menu. Formstep stops sending at once and deletes the webhook’s event history.