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
- Create a free bin in the browser at view.webhooks.page or by running
curl -X POST https://webhooks.sh/v1/bins. - Copy the bin's ingest URL (
https://<bin>.webhooks.page/) and set it as the webhook URL in the sending app. - Trigger a real event in the sending app, then save the request body from the bin viewer as
payload.jsonand note theContent-Typeheader and any query string. - While the
Custom webhookmodule in Make is waiting for data, replaypayload.jsonto your Make webhook URL withcurl.
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.
| Situation | Status | Body |
|---|---|---|
| Accepted into the queue | 200 | Accepted |
| Queue is full | 400 | Queue is full |
| Rate limit check failed | 429 | Too many requests |
| Data fails the webhook's data structure | 400 | Not specified |
| Scenario error, with a Webhook response module | 500 | Scenario failed to complete. |
| No response after 180 seconds | 200 | Accepted |
| Webhook unused by any scenario for 5 days | 410 Gone | Not 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.
| Limit | Value |
|---|---|
| Payload size | 5MB (5,242,880 bytes) on every plan |
| Queue size | 667 items per 10,000 monthly credits, up to 10,000 |
| Incoming rate | 300 requests per 10 seconds |
| Response timeout | 180 seconds |
| Unconnected webhook deactivated | After 5 days (120 hours) |
| Webhook log retention | 3 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, orsecretshows as redacted in the viewer and the API. - The bin always replies with a fixed HTTP
200and a small JSON body like{"ok":true,"delivery_id":"..."}, so turning onParse responseonly gives youokanddelivery_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.