Webhooks
Outbound Webhooks
Create and manage outbound webhook endpoints for email, subscriber, and sequence lifecycle events.
POST
Outbound Webhooks
Outbound Webhooks
You can configure an endpoint to receive Sequenzy email, subscriber, and sequence lifecycle events as signed JSON POST requests.Create
Human-readable webhook name.
Absolute HTTPS endpoint URL.
Event types to receive. Omit this field to receive the default lifecycle
events: sent, delivered, delayed, bounced, complained, email unsubscribed, and
invalid subscriber, and subscriber unsubscribed. Add opened, clicked, replied,
subscriber.updated, sequence.finished, and sequence.failed explicitly if you
need engagement, inbound reply, profile sync, or sequence lifecycle events.
Manage
Event Payload
Each webhook delivery sends a signed JSON event to your endpoint. Email events include Sequenzy IDs and, when available, your subscriber external ID or thesubscriberExternalId stored on a transactional send:
external_id is included when the recipient is linked to a subscriber with a customer-owned external ID, or when a single-recipient transactional send included subscriberExternalId even if no subscriber exists. email.sent events include computed_lists when campaign personalization selected per-recipient list items for that email; items preserves the original campaign data objects.
email.replied fires when an inbound reply is stored. The payload includes reply, conversation, and original send context plus the reply body text, HTML body, and stripped text. Attachment bodies are not included; only metadata is delivered.
subscriber.invalid fires when a subscriber add attempt cannot create a sendable subscriber because the attempted email is missing, syntactically invalid, has an invalid/blocked domain, or is already suppressed from previous delivery failures. subscriber.updated fires when email, external_id, first_name, last_name, custom_attributes, or a non-unsubscribe status change occurs. Active to unsubscribed changes emit subscriber.unsubscribed; they only also emit subscriber.updated when another profile field changes in the same update. List and tag changes do not emit subscriber.updated.
Responses
Verify Requests
Webhook requests includeX-Sequenzy-Timestamp and X-Sequenzy-Signature. Build the signed payload as v1:{timestamp}:{raw_request_body}, compute an HMAC-SHA256 digest with each active webhook signing secret, and compare it to any v1= signature value.
If a webhook has multiple active signing secrets, Sequenzy still sends one POST request and includes one v1= signature per secret in the same header. Add a new secret, deploy it in your receiver, then remove the old secret.Outbound Webhooks