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 POST requests and responds with a 2xx status, reachable from the public internet. If your handler runs on localhost, expose it through a tunnel first. See Local Development & Debugging.

Events You Can Subscribe To

Sent delivers two event types to webhook endpoints:

Event typeWhat it covers
messageMessage status updates: delivery progress, failures, read receipts, and inbound messages
templatesTemplate 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:

FieldValue
Display NameA label that identifies this endpoint, for example Order Notifications.
Endpoint URLYour handler's public URL. The dashboard prepends https://. URLs that resolve to private or loopback IP ranges are rejected.
Select events to listenThe 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 DELIVERED in 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

On this page