Skip to content
FormSubmit

Webhooks integration

Send form submissions to any URL with webhooks

The webhook integration POSTs every new submission as JSON to a URL you control — your own API, a serverless function, Zapier, Make or n8n. Requests are signed with HMAC-SHA256 and retried automatically when your endpoint is down.

How to connect Webhooks

  1. 1

    Open your form in the FormSubmit dashboard and go to Integrations.

  2. 2

    Choose Webhooks and paste the HTTPS URL that should receive submissions.

  3. 3

    Leave the signing secret blank to auto-generate one, or paste your own.

  4. 4

    Click Send test to fire a sample payload and confirm your endpoint returns a 2xx status.

  5. 5

    Verify the X-FormSubmit-Signature header in your handler before trusting the payload.

What FormSubmit sends

  • event — submission.created (or test)
  • form — id and name
  • submission — id, createdAt (ISO 8601), data (every submitted field) and files (field, filename, signed url, size, contentType)
  • Headers: x-formsubmit-event and x-formsubmit-signature (t=<unix>,v1=<hex>)

You'll need

  • Endpoint URL
  • Signing secret (optional)encrypted

Included on every plan, including Free. Failed deliveries are retried automatically with backoff and every attempt is shown in your delivery log.

Frequently asked questions

Can I use webhooks with Zapier or Make?

Yes. Create a “Catch Hook” (Zapier) or “Custom webhook” (Make) trigger, paste its URL into the webhook integration and send a test so the fields are detected.

What status code should my endpoint return?

Any 2xx. 408, 429 and 5xx responses and timeouts are retried; other 4xx responses are treated as permanent failures.

Is there a timeout?

Each request times out after 10 seconds. Do heavy work asynchronously and respond quickly.

Related

Connect your forms to Webhooks in a minute

Sign in with Google, create a form, paste the endpoint. Free forever for small sites — no credit card.