What are Webhooks?
Webhooks allow you to receive real-time notifications when events occur in your Transmit account. Subscribe to specific event types and receive HTTP POST requests to your endpoint whenever those events happen.Available Event Types
Email Events
email.sent
email.sent
Triggered when an email has been successfully submitted to the email provider for delivery.Example Payload:
email.delivered
email.delivered
Triggered when an email has been successfully delivered to the recipient’s mail server.Example Payload:
email.opened
email.opened
Triggered when a recipient opens an email (tracking pixels enabled).Example Payload:
email.clicked
email.clicked
Triggered when a recipient clicks a link in an email (link tracking enabled).Example Payload:
email.bounced
email.bounced
Triggered when an email bounces (hard or soft bounce).Example Payload:
email.complained
email.complained
Triggered when a recipient marks an email as spam.Example Payload:
Domain Events
domain.added
domain.added
Triggered when a new domain is added to your account.Example Payload:
domain.verified
domain.verified
Triggered when a domain has been successfully verified.Example Payload:
domain.failed_verification
domain.failed_verification
Triggered when domain verification fails.Example Payload:
domain.removed
domain.removed
Triggered when a domain is removed from your account.Example Payload:
Contact Events
contact.created
contact.created
Triggered when a new contact is created.Example Payload:
contact.updated
contact.updated
Triggered when a contact is updated.Example Payload:
contact.deleted
contact.deleted
Triggered when a contact is deleted.Example Payload:
contact.subscribed
contact.subscribed
Triggered when a contact opts in to receive emails.Example Payload:
contact.unsubscribed
contact.unsubscribed
Triggered when a contact unsubscribes from emails.Example Payload:
Suppression Events
suppression.added
suppression.added
Triggered when an email or phone number is added to the suppression list.Example Payload:
suppression.removed
suppression.removed
Triggered when an email or phone number is removed from the suppression list.Example Payload:
SMS Events (Coming Soon)
Setting Up Webhooks
1
Create an Endpoint
Create an HTTPS endpoint on your server to receive webhook events
2
Add Webhook in Dashboard
Go to Settings → Webhooks → Add Webhook
3
Enter URL and Select Events
Enter your endpoint URL and choose which events to receive
4
Test Your Webhook
Use the test button to send a sample payload
Webhook Payload
Example webhook payload:Handling Webhooks
Verifying Webhooks
Transmit signs all webhook requests. Verify the signature to ensure authenticity:Retries
Transmit will retry failed webhooks:- Initial retry: after 1 minute
- Second retry: after 5 minutes
- Third retry: after 30 minutes
- Final retry: after 2 hours
Best Practices
Return 200 Quickly
Process webhooks asynchronously. Return 200 immediately, then process in background.
Verify Signatures
Always verify webhook signatures to prevent spoofing
Handle Duplicates
Webhooks may be delivered more than once. Use idempotency keys.
Log Everything
Log all webhook events for debugging and auditing