Dashboard · Webhooks

Delivery log & retries

Inspect every attempt Macro made to your URL — status, latency, response body, and automatic retries.

Where to look
Webhooks → row actions → Delivery log. Specialized delivery details stay here; high-level summaries also appear in Activity.

What each delivery records

NameTypeDescription
trigger / eventTypestringSubscribed trigger that fired.
eventIdstringLogical event id (idempotency).
attempt / maxAttemptsnumberAttempt counter vs max (5).
statusenumpending, success, failed, or retrying states from the worker.
requestHeadersobjectHeaders Macro sent (signature redacted in some views).
envelope / messageobjectParsed envelope and trigger message.
sentBodystringExact body bytes after payload mode rendering.
responseStatus / responseBodymixedReceiver HTTP status and truncated body.
durationMsnumberRound-trip time for the attempt.
nextRetryAtISO-8601When the next automatic retry is due.
isTestbooleanTrue for webhook.test deliveries.

Success criteria

Macro treats HTTP 2xx as success. Non-2xx responses, network errors, and timeouts mark the attempt failed and schedule a retry when attempts remain.

Automatic retries

  • Max attempts: 5 (including the first try)
  • Backoff (seconds): 60 → 300 → 1800 → 7200 → 28800 (1m, 5m, 30m, 2h, 8h)
  • A background tick (~60s) picks up due retries across the website database
Response body size
Macro stores up to 4096 characters of the receiver response body for debugging.

Manual resend & test

  1. Send test event

    From the webhook row, send webhook.test. Useful after rotating a secret or changing payload mode — no real content change required.

  2. Resend a delivery

    Open a failed (or any) delivery and resend. That creates a new attempt while preserving the original event id for correlation.

Management API

GET/management/webhooks/:webhookId/deliveriesmt_

List recent deliveries (limit ≤ 100). Requires settings.webhook:read.

POST/management/webhooks/:webhookId/testmt_

Enqueue a webhook.test delivery. Requires settings.webhook:write.

POST/management/webhooks/:webhookId/deliveries/:deliveryId/resendmt_

Retry a specific delivery. Requires settings.webhook:write.

Do

  • Return 2xx quickly; do heavy work asynchronously after ack.
  • Key idempotency on X-Macro-Event-Id.
  • Watch the recent failure badge on the webhook list.

Don’t

  • Don’t rely on delivery order across different triggers.
  • Don’t block the request for long rebuilds — Macro will time out and retry.
  • Don’t disable the endpoint to “fix” a bad payload — fix the receiver or template.