Accepted reply, and the fact that it must learn your payload shape before you can map fields.
Set up the trigger
1
Add a Custom webhook
Create one, copy the URL, and paste it into your bot’s webhook settings.
2
Teach Make the payload shape
Click Re-determine data structure, then press Verify in your bot settings. Make catches the
webhook.verify event and learns the fields.Until Make has seen a real payload, the mapping panel is empty — you cannot pick
response_url or message.text. This step is not optional.3
Add a Router
Route on
event, with routes for webhook.verify and message.created.Pass verification
On thewebhook.verify route, add a Webhook response module:
- Status:
200 - Body:
{{1.challenge}} - Custom headers: none needed
Reply in the same request
For work under 10 seconds, end the route with a Webhook response module:- Status:
200 - Body:
- Custom headers:
Content-Type→application/json
Reply later
Anything slower than 10 seconds must confirm first.1
Confirm
A Webhook response module with Status
200 and an empty Body, placed right after the trigger. The typing dots stay on.2
Do the work
Anything you like, for up to 45 minutes.
3
POST the answer
Add an HTTP → Make a request module:No authorization header — the key lives in the URL.
- URL:
{{1.response_url}} - Method:
POST - Body type:
Raw - Content type:
JSON (application/json) - Request content:
Send a file
Two modules.1
Upload
HTTP → Make a request:
- URL:
{{1.response_url}}/files - Method:
POST - Body type:
Multipart/form-data - Add a field named
file, type File, mapped from the earlier module’s file data - You can also add a
filenametext field
file.file_id back.2
Post the message
HTTP → Make a request:
- URL:
{{1.response_url}} - Body type:
Raw→JSON - Request content:
Show progress
Several HTTP modules pointing at the sameresponse_url, all sharing one mid:
mid with "state": "success". One bubble, changing.
Handle button clicks
Clicks hit the same webhook withevent set to interaction.button_clicked. Add a Router branch and map:
{{1.action_id}}— which action{{1.value}}— your data{{1.message_metadata}}— state you attached when sending
Run Re-determine data structure and click a real button once, or Make will not know these fields exist.
Fixing problems
The bot says nothing
The bot says nothing
No Webhook response module, so Make replied
Accepted and we blocked it. Add one.I cannot map response_url
I cannot map response_url
Make has not learned the structure. Click Re-determine data structure, then trigger a real event.
Verification fails with bad_challenge
Verification fails with bad_challenge
Make sure the scenario is ON, not just open in the editor, and that the reply body maps
{{1.challenge}}. The wizard shows what we received.Every message arrives twice
Every message arrives twice
Make retried, and you have no
mid. Add "mid": "reply-{{1.event_id}}".422 BLOCK_VALIDATION_FAILED
422 BLOCK_VALIDATION_FAILED
Usually Body type is not
Raw + JSON, so Make sent form data instead. Check the issues list in the reply, or your bot’s delivery log.
