Skip to main content

List Agent Webhook Deliveries

GET 

/api/support/agent/webhooks/:webhook/deliveries

Lists the delivery log of one outbound support webhook — every event that was (or is about to be) POSTed to it, with the exact body sent, how many attempts were made and what came back. Newest first by default. A delivery is tried up to 3 times (retries after 30 seconds, then 5 minutes) before it is marked failed; ping rows are the tenant's "send test" deliveries and are tried once.

Required scope: support:read

Grant this scope to your token under Settings → Developer → Personal Access Tokens.

Each delivery is POSTed as JSON with the headers X-SKU-Event (the event name), X-SKU-Delivery (this delivery's id) and X-SKU-Signature (sha256= followed by the hex HMAC-SHA256 of the raw body, keyed with the webhook's secret).

Path parameters

  • webhook (integer) — the webhook id.

Query parameters — every filter is optional

  • filter[status] (string) — one value or a comma-separated list of: pending, delivered, failed
  • filter[event] (string) — one event name or a comma-separated list: ticket.created, ticket.updated, ticket.replied, ticket.resolved, ping
  • filter[ticket_id] (integer) — one ticket id or a comma-separated list
  • filter[created_at] (string) — a single day YYYY-MM-DD or an inclusive from,to range
  • sort (string) — prefix with - for descending. Allowed sorts: id, created_at, status, response_code, attempts, delivered_at. Default: -id.
  • page, per_page (integer) — standard pagination; per_page default 10, maximum 100

An unknown filter[...] key or sort field is rejected with 400.

Response fields (each entry in data[]; standard pagination envelope)

  • id (integer), webhook_id (integer)
  • event (string) — one of: ticket.created, ticket.updated, ticket.replied, ticket.resolved, ping
  • ticket_id (integer, nullable) — null for a ping
  • status (string) — one of: pending (queued or between retries), delivered, failed
  • response_code (integer, nullable) — the HTTP status the endpoint answered with on the last attempt; null when no response came back
  • attempts (integer) — attempts made so far (max 3)
  • delivered_at (ISO-8601, nullable)
  • error (string, nullable, max 2000) — the last failure reason (HTTP 503: ..., a connection error, Webhook is disabled., ...)
  • payload (object) — the exact JSON body sent: event, occurred_at, ticket (the customer-facing ticket fields: id, number, tenant_id, subject, type, status, status_label, priority, source, visibility, tags, requester {id, name, email}, assignee {id, name} or null, created_at, updated_at, resolved_at, closed_at, url), actor ({id, name}, nullable), change ({from, to}, nullable), message (only on ticket.replied, and only for a customer-visible message: id, author {id, name}, via, body_text, created_at; otherwise null). A ping payload is event, occurred_at, webhook {id, events}.
  • created_at (ISO-8601)

Authentication: Bearer token with the support:read scope, or an authenticated session, from a caller with an active support role (any role, including viewer). No tenant context — this endpoint is central.

Request

Responses

OK

Response Headers
    Content-Type