Make webhooks: custom webhook URLs, data structures, responses and limits

A Make custom webhook gives each scenario its own URL that takes query strings, form data and JSON up to 5MB, and replies 200 Accepted unless you add a Webhook response module. To see a sender's raw payload first, capture it in a free webhooks.sh bin: no signup, 48 hours, 100 requests a day.

To receive webhooks in Make (formerly Integromat), add the Webhooks app's Custom webhook trigger to a scenario, copy its unique URL into the sending app, and send one sample request so Make learns the data structure. Below, we'll cover capturing and replaying a sample payload, the replies Make sends back, queue and rate limits, and checking what the HTTP module sends.

Set up a custom webhook

Add the Webhooks app to your scenario, pick Custom webhook as the trigger, create a webhook, and copy its unique URL (which ends in a 32-character string) into the sending app. Each scenario needs its own Make custom webhook, and one webhook can't be shared across several scenarios.

Next, Make needs to know the payload's data structure. You can send a sample request from the third-party app, Postman, or curl, and when fields change later, click Detect new values in the Custom webhook module and send another test request so Make updates the stored structure without validating incoming data. Or you can define a data structure up front when creating the webhook, which makes Make validate incoming data and reject requests that fail with a 400.

A custom webhook accepts query strings, form data, multipart/form-data, and JSON, and turning on the JSON pass-through option gives the scenario the original JSON untouched.

Capture the sender's payload, then replay it

  1. Create a free bin in the browser at view.webhooks.page or by running curl -X POST https://webhooks.sh/v1/bins.
  2. Copy the bin's ingest URL (https://<bin>.webhooks.page/) and set it as the webhook URL in the sending app.
  3. Trigger a real event in the sending app, then save the request body from the bin viewer as payload.json and note the Content-Type header and any query string.
  4. While the Custom webhook module in Make is waiting for data, replay payload.json to your Make webhook URL with curl.

You can resend the same file whenever Make asks for new sample data, without triggering real events. If your webhook requires an API key, add the x-make-apikey header to the replay command.

# 1. Create a free bin; set its ingest_url as the sender's URL
curl -X POST https://webhooks.sh/v1/bins

# 2. Save the captured body as payload.json, then resend it
#    while the Custom webhook module waits for data
curl -X POST "<make-webhook-url>" \
  -H "Content-Type: application/json" \
  -d @payload.json

What Make sends back to the caller

Without a Webhook response module, the caller gets Make's default reply right away, so a 200 Accepted only means the request was queued, not that the scenario ran.

When the caller needs a real answer or a custom status code, add a Webhook response module to set the Status and Body for the reply. If the scenario runs into an error with that module in place, Make returns 500 with Scenario failed to complete, and if the scenario hasn't produced a response within 180 seconds, Make falls back to 200 Accepted.

SituationStatusBody
Accepted into the queue200Accepted
Queue is full400Queue is full
Rate limit check failed429Too many requests
Data fails the webhook's data structure400Not specified
Scenario error, with a Webhook response module500Scenario failed to complete.
No response after 180 seconds200Accepted
Webhook unused by any scenario for 5 days410 GoneNot specified

Queue, rate and size limits

Incoming requests wait in a per-webhook queue whose size depends on your monthly credits (667 items per 10,000 licensed credits per month, up to 10,000 items), so a sudden burst can fill the queue and get rejected with 400 Queue is full. Make also processes up to 300 incoming webhook requests per 10 seconds, and anything over that rate limit check gets 429 with Too many requests.

If a webhook sits unconnected to any scenario for more than 5 days (120 hours), Make deactivates it and returns 410 Gone, which is why old URLs suddenly start failing. Make keeps webhook logs for 3 days, or 30 days on the Enterprise plan, so capture any payloads you need to keep longer than that.

LimitValue
Payload size5MB (5,242,880 bytes) on every plan
Queue size667 items per 10,000 monthly credits, up to 10,000
Incoming rate300 requests per 10 seconds
Response timeout180 seconds
Unconnected webhook deactivatedAfter 5 days (120 hours)
Webhook log retention3 days, 30 days on Enterprise

See what the HTTP module sends

The Make HTTP module's Make a request action supports GET, HEAD, POST, PUT, PATCH, DELETE, and OPTIONS over HTTPS only, rejecting self-signed certificates. It handles application/json (from a JSON string or a data structure), multipart/form-data for files and fields, application/x-www-form-urlencoded, and Custom bodies like text/plain, with a timeout from 1 to 300 seconds and Allow redirects following up to 10 redirects.

Point Make a request at https://<bin>.webhooks.page/make and run the module once to see how a data structure serializes to JSON or what a multipart body looks like. Two limits apply:

  • Any header whose name contains authorization, cookie, key, token, or secret shows as redacted in the viewer and the API.
  • The bin always replies with a fixed HTTP 200 and a small JSON body like {"ok":true,"delivery_id":"..."}, so turning on Parse response only gives you ok and delivery_id, and a free bin can't mock the real API's response.

To build the same request by hand, see the curl POST guide.

Keep the capture URL longer

A free bin lasts 48 hours and takes 100 requests a day with bodies up to 100KB, plenty for building and testing a scenario. To keep the URL, claim the bin with a free Google sign-in before it expires; it then keeps 30 days of rolling history.

For ongoing traffic or bodies over 100KB, Solo ($12 a month, cancel any time, see pricing) gives you named, persistent endpoints on webhooks.host with 250,000 requests per billing period, bodies up to 5MB, 90 days of history, replay with the wsh CLI, and forwarding to up to 3 verified HTTPS URLs.

FAQ

How do I get a webhook URL in Make?

Add the Webhooks app's Custom webhook trigger to a scenario, create a new webhook, and copy its URL. Each scenario needs its own webhook.

Why does my Make webhook return Accepted?

200 Accepted is Make's default reply as soon as a request is accepted into the queue. Add a Webhook response module to your scenario to send back your own Status and Body.

What is the Make webhook payload size limit?

The maximum payload size (Content-Length) is 5MB (5,242,880 bytes) on every plan.

Why is my Make webhook returning 410 Gone?

Make deactivates webhooks that aren't connected to any scenario for more than 5 days (120 hours), and deactivated webhooks return 410 Gone.

Is Integromat the same as Make?

Yes, Integromat evolved into Make. Make calls Integromat a legacy product and states that support for it ended in 2023.

How long does Make wait for a webhook response?

Up to 180 seconds for a Webhook response module. If no response is ready by then, Make returns 200 Accepted.

Last updated

Try it in 10 seconds.

Create a free bin at view.webhooks.page — no signup, no install. Point your sender at the URL and watch requests land live. Bins expire after 48 hours.