Skip to content

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>, or
  • X-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:
FieldTypeRequiredDescription
make_send_public_idstringYesValue we sent in the webhook payload as make_send_public_id. Use it from the trigger data.
make_execution_urlstringYesFull URL to the Make.com execution log (e.g. https://make.com/execution/...).
make_execution_idstringNoExecution ID for API/monitoring.
make_execution_statusstringNoStatus (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):

json
{
  "make_send_public_id": "&#123;&#123;1.make_send_public_id&#125;&#125;",
  "make_execution_url": "https://make.com/execution/12345678"
}

With optional fields:

json
{
  "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):

json
{
  "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 &#123;&#123;1.make_send_public_id&#125;&#125; 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:

json
{
  "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 UnavailableCRM_CALLBACK_SECRET not configured.

Make.com setup

  1. 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.
  2. After your scenario runs (or at the end of the flow), add an HTTP – Make a request step.
  3. URL: https://<your-worker>/lead.capture/make-callback
  4. Method: POST
  5. Headers: Authorization: Bearer <CRM_CALLBACK_SECRET> or X-API-Key: <CRM_CALLBACK_SECRET>
  6. Body (JSON):
    • make_send_public_id — from the trigger (e.g. &#123;&#123;1.make_send_public_id&#125;&#125;).
    • 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_status for 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.