Make.com Execution Callback
Endpoint: POST /lead.capture/make-callback
Used by Make.com to send back the execution log URL (and optional execution ID/status) after the scenario runs. The entire request body is stored as JSON so you can send any extra data (e.g. scenario name, duration, step counts, custom fields) for monitoring. We store it on the corresponding MakeWebhookSends row; the dashboard shows "View in Make.com" and the full callback payload in the Sent to Make.com panel.
Authentication
Uses the same CRM callback secret as /lead.capture/crm-callback (not the lead capture API key from Forms config). Configure it in Settings → CRM callback secret or via CRM_CALLBACK_SECRET. Send via:
Authorization: Bearer <secret>, orX-API-Key: <secret>
Requests without a valid secret receive 401 Unauthorized. If the secret is not configured, the endpoint returns 503 Service Unavailable.
Request
- Method:
POST - Content-Type:
application/json - Body:
| Field | Type | Required | Description |
|---|---|---|---|
make_send_public_id | string | Yes | Value we sent in the webhook payload as make_send_public_id. Use it from the trigger data. |
make_execution_url | string | Yes | Full URL to the Make.com execution log (e.g. https://make.com/execution/...). |
make_execution_id | string | No | Execution ID for API/monitoring. |
make_execution_status | string | No | Status (e.g. success, error) for monitoring. |
You can include any additional JSON fields in the body; the full body is stored and shown in the dashboard (Sent to Make.com → open a row → "Callback data from Make.com").
Sample payloads
Minimal (required only):
{
"make_send_public_id": "{{1.make_send_public_id}}",
"make_execution_url": "https://make.com/execution/12345678"
}With optional fields:
{
"make_send_public_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"make_execution_url": "https://make.com/execution/12345678",
"make_execution_id": "12345678",
"make_execution_status": "success"
}Full (with custom data for monitoring):
{
"make_send_public_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"make_execution_url": "https://make.com/execution/12345678",
"make_execution_id": "12345678",
"make_execution_status": "success",
"scenario_name": "Lead to CRM",
"duration_ms": 1200,
"steps_completed": 5,
"crm_lead_id": "lead_abc_xyz",
"notes": "Created in HubSpot"
}Use {{1.make_send_public_id}} in Make.com to reference the value from the webhook trigger (module 1). The execution URL is available in the scenario execution context (e.g. from the execution URL or built from your scenario/execution ID).
Response
200 OK — Row updated:
{
"ok": true,
"make_send_public_id": "550e8400-e29b-41d4-a716-446655440000",
"make_execution_url": "https://make.com/execution/12345678",
"make_execution_status": "success"
}400 Bad Request — Missing or invalid make_send_public_id or make_execution_url.
401 Unauthorized — Missing or invalid secret.
404 Not Found — No MakeWebhookSends row with that PublicId (e.g. old send before this feature, or wrong ID).
503 Service Unavailable — CRM_CALLBACK_SECRET not configured.
Make.com setup
- In your scenario, the Webhooks – Custom webhook (or similar) trigger receives our payload. It includes
make_send_public_id— pass this through to the callback step. - After your scenario runs (or at the end of the flow), add an HTTP – Make a request step.
- URL:
https://<your-worker>/lead.capture/make-callback - Method: POST
- Headers:
Authorization: Bearer <CRM_CALLBACK_SECRET>orX-API-Key: <CRM_CALLBACK_SECRET> - Body (JSON):
make_send_public_id— from the trigger (e.g.{{1.make_send_public_id}}).make_execution_url— from Make.com’s execution context (e.g. execution URL or built from scenario/execution ID).- Optionally:
make_execution_id,make_execution_statusfor monitoring.
After this callback is called, the Sent to Make.com dashboard list and payload panel show a "View in Make.com" link for that send.