Webhooks overview

A webhook is an outbound HTTP request Makeform sends to a URL you configure. Use it to receive a notification when someone completes a form.

Create a webhook

You can create one in either place:

Use the dashboard

Open the form, go to Integrations, and choose Webhook.

Use MCP

Call create_webhook with the form ID and a public HTTPS URL. You can also provide up to 20 custom headers. If you omit signing_secret, Makeform generates one and returns it once.

{ "form_id": "FORM_ID", "url": "https://example.com/hooks/makeform", "headers": { "Authorization": "Bearer YOUR_ENDPOINT_TOKEN" } }

There is one webhook per form. If the form already has one, create_webhook returns webhook_exists. Webhooks are not available through the REST API.

When it fires

Makeform sends the webhook when a submission is completed, either on first completion or when a previously partial submission is completed. Partial saves do not trigger it.

The request uses POST by default. It includes submission and form identifiers, the submission timestamp, and form data keyed by field name. A webhook can also be configured to use GET, PUT, PATCH, or DELETE; a GET request has no body or signature.

Delivery behavior

Makeform attempts each submission delivery once. It does not retry, including when your endpoint responds with 5xx or 429. The delivery times out after 30 seconds.