Go to app

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. 1

    Open Integrations

    Click Integrations in the form's top bar, then pick Webhook.

  2. 2

    URL

    Type the https:// address that should receive the answers.

  3. 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. 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. 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.

Next steps