Monitor

Monitor deliveries

See every message, delivery and attempt, find a customer's failed webhooks, and answer "did you send it?".

“I never got your webhook” is the support ticket every webhook sender gets. Dispatch records every message, every delivery and every attempt, with the response your customer’s server gave, so you can answer in one lookup.

Messages and deliveries

Record What it is
Message One event you sent: type, version, customer, data and idempotency key.
Delivery The message going to one endpoint. Same statuses as Gateway events: queued, retrying, delivered, failed, cancelled.
Attempt One try: the endpoint URL, response status, latency and when.

Find a message

In the dashboard open Events and set the product filter to Dispatch. Filter by customer, event type, status or time.

Over the API:

curl "https://api.getensue.com/v1/dispatch/events?customer=acme&type=order.shipped" \
  -H "authorization: Bearer ens_<key>"
Query Finds
customer One customer’s messages.
type One event type.
before Messages older than a message ID, for paging.

GET /v1/dispatch/events/:id returns the message with a delivery for each endpoint and its attempts.

Read a delivery

Open a delivery to see its timeline: when it was queued, each attempt with the status your customer returned, and the next retry if one is scheduled.

09:30:00  message accepted · fan-out to 2 endpoints
09:30:00  attempt 1 · 503 in 204ms
09:30:05  attempt 2 · 200 in 118ms · delivered

Events are also reachable through the shared events API with kind=dispatch, so any tooling you build for Gateway works for Dispatch.

Answer “did you send it?”

  1. Find the customer’s message by type and time.
  2. Check each delivery’s status. delivered means their server returned 2xx, and the attempt shows when.
  3. If it is failed, the last attempt’s response says why (a timeout, a 500, a 404 for a wrong URL).
  4. Once they’ve fixed it, retry it or recover the endpoint.

Metrics and usage

Dispatch traffic appears in the same metrics and usage views as Gateway. Each delivery counts as an event against your monthly quota, so a message that fans out to three endpoints counts as three.

Get told when something breaks

Set a workspace notification URL to receive destination.breaker_opened when a customer’s endpoint stops responding, and destination.breaker_closed when it recovers.