Webhook Setup
This guide shows you how to register a webhook endpoint in the Sent Dashboard and verify it receives events.
Prerequisites:
- A handler that accepts HTTP
POSTrequests and responds with a2xxstatus, reachable from the public internet. If your handler runs onlocalhost, expose it through a tunnel first. See Local Development & Debugging.
Events You Can Subscribe To
Sent delivers two event types to webhook endpoints:
| Event type | What it covers |
|---|---|
message | Message status updates: delivery progress, failures, read receipts, and inbound messages |
templates | Template lifecycle updates: approvals, rejections, and category changes from review |
Refer to the Events Reference for the envelope structure and full payloads.
Add a Webhook
Configure the endpoint
Fill in the Add New Webhook form:
| Field | Value |
|---|---|
| Display Name | A label that identifies this endpoint, for example Order Notifications. |
| Endpoint URL | Your handler's public URL. The dashboard prepends https://. URLs that resolve to private or loopback IP ranges are rejected. |
| Select events to listen | The event types to receive. Selecting a type reveals its sub-types, so you can subscribe to specific events only (for example delivered and failed). |
Click Add Webhook to save.
To manage webhooks programmatically instead, call POST /v3/webhooks, which accepts the same fields plus retry_count (1–5, default 3) and timeout_seconds (5–120, default 30).
Copy the signing secret
Click the webhook you just created, then use the Eye button to reveal its signing secret or the Copy button to copy it. Store the secret in your handler's environment (for example SENT_WEBHOOK_SECRET). You need it to verify request signatures before processing events.
Send a test delivery
From the webhook's actions menu, select Test Webhook. The dialog lists every event the webhook subscribes to. Click Test next to one, and Sent sends a sample payload for that event to your endpoint.
Your webhook is working when:
- the test result reports a successful delivery, and
- the delivery appears with status
DELIVEREDin the webhook's Events table, together with the attempt count and the HTTP status your endpoint returned.
If the delivery shows FAILED, your endpoint did not return 2xx in time (test deliveries make a single attempt, with no retries). Work through Debug Failed Deliveries.
Next Steps
- Security: verify the HMAC signature on every request before trusting it
- Handling Retries: make your handler idempotent against duplicate deliveries
- Events Reference: envelope structure, payloads, and delivery statuses
- Production Checklist: what to confirm before going live
Webhooks & Events Overview
Receive real-time message delivery notifications, inbound messages, and template approval events via webhooks, with guides for setup, security, and retries
Webhooks Lifecycle
How a webhook delivery moves from event generation through signing, retries, and the threshold that turns a failing webhook off, plus the events Sent emits