Cakemail
Webhooks

Webhook event catalog

These are the events a webhook can subscribe to, grouped by object. Each webhook subscribes one URL to one event (see Using webhooks).

Class says what a subscription needs:

  • Standard and compliance events can be sent to any URL. Compliance events report bounces, complaints, unsubscribes and refused sends. Their payloads are documented in Compliance events.
  • High-volume events can only be sent to an approved domain. See event classes.

Payloads of the other events aren't documented yet.

EventWhen it firesClassPayload
Account.CreatedA partner creates a sub-account (POST /accounts). Delivered to the partner account.StandardNot yet documented
Account.ConfirmedA pending sub-account is confirmed from its verification link (POST /accounts/{account_id}/confirm). Delivered to the partner account.StandardNot yet documented
Account.UpdatedA partner edits a sub-account (PATCH /accounts/{account_id}), delivered to the partner account; or an account edits itself (PATCH /accounts/self), delivered to the account and to its partner.StandardNot yet documented
Account.DeletedA partner deletes a sub-account (DELETE /accounts/{account_id}). Delivered to the partner account.StandardNot yet documented
Campaign.CreatedA campaign is created (POST /campaigns).StandardNot yet documented
Campaign.UpdatedA campaign is edited (PATCH /campaigns/{campaign_id}).StandardNot yet documented
Campaign.ScheduledA campaign is scheduled or rescheduled (POST /campaigns/{campaign_id}/schedule, POST /campaigns/{campaign_id}/reschedule).StandardNot yet documented
Campaign.UnscheduledA scheduled campaign is unscheduled (POST /campaigns/{campaign_id}/unschedule).StandardNot yet documented
Campaign.SuspendedA campaign is suspended with POST /campaigns/{campaign_id}/suspend.StandardNot yet documented
Campaign.ResumedA suspended campaign is resumed (POST /campaigns/{campaign_id}/resume).StandardNot yet documented
Campaign.CanceledA campaign is canceled (POST /campaigns/{campaign_id}/cancel).StandardNot yet documented
CampaignLogExport.CreatedAn export of a campaign's activity log is requested (POST /logs/campaigns/{campaign_id}/exports). It fires on the request, not when the export is ready.StandardNot yet documented
Contact.AddedA contact becomes active on a list: added (POST /lists/{list_id}/contacts), imported, signed up with a form, added by an Email API message to a list, confirmed after a double opt-in, or resubscribed. A pending contact fires it when they confirm.High-volumeNot yet documented
Contact.UpdatedA contact changes (PATCH /lists/{list_id}/contacts/{contact_id}), or is added or imported again while already on the list.High-volumeNot yet documented
Contact.RemovedA contact leaves a list: unsubscribed (a link, the API, a list unsubscribe or a global unsubscribe) or deleted (DELETE /lists/{list_id}/contacts/{contact_id}). An import that unsubscribes contacts doesn't fire it.CompliancePayload
ContactsExport.CreatedA contacts export is requested (POST /lists/{list_id}/exports).StandardNot yet documented
ContactsExport.DeletedA contacts export is deleted (DELETE /lists/{list_id}/exports/{export_id}).StandardNot yet documented
Email.SubmittedEmail API: POST /v2/emails accepts a message.High-volumeNot yet documented
Email.QueuedEmail API: a submitted message passes the checks and is queued for delivery.High-volumeNot yet documented
Email.ProcessingEmail API: the sending server reports that it's processing the message.High-volumeNot yet documented
Email.DeliveredEmail API: the sending server reports the message delivered.High-volumeNot yet documented
Email.RejectedEmail API: POST /v2/emails refuses a message before queueing it, because the recipient bounced, unsubscribed, hasn't confirmed, reported spam, was deleted or is suppressed.CompliancePayload
Email.ErrorEmail API: a submitted message hits an internal error before it's queued.CompliancePayload
Email.SentThe deprecated POST /emails accepts a message. Campaigns and POST /v2/emails don't fire it.High-volumeNot yet documented
Email.OpenedA recipient opens a tracked message, whichever way it was sent.High-volumeNot yet documented
Email.ClickedA recipient clicks a tracked link, whichever way the message was sent.High-volumeNot yet documented
Email.BouncedA message bounces, whichever way it was sent.CompliancePayload
Email.ReportedAsSpamA recipient reports a message as spam to a mailbox provider that shares complaints, whichever way it was sent.CompliancePayload
Email.UnsubscribedEmail API: a recipient unsubscribes from the list with a link or the List-Unsubscribe header.CompliancePayload
Email.GlobalUnsubscribedEmail API: a recipient unsubscribes from all email.CompliancePayload
List.CreatedA list is created (POST /lists).StandardNot yet documented
List.UpdatedA list's settings change (PATCH /lists/{list_id}, POST /lists/{list_id}/accept-policy).StandardNot yet documented
List.DeletedA list is deleted (DELETE /lists/{list_id}). Archiving a list doesn't fire it.StandardNot yet documented
ListLogsExport.CreatedAn export of a list's activity log is requested (POST /logs/lists/{list_id}/exports).StandardNot yet documented
Segment.CreatedA segment is created (POST /lists/{list_id}/segments).StandardNot yet documented
Segment.UpdatedA segment's name or conditions change (PATCH /lists/{list_id}/segments/{segment_id}).StandardNot yet documented
Segment.DeletedA segment is deleted (DELETE /lists/{list_id}/segments/{segment_id}).StandardNot yet documented
Sender.CreatedA sender is added (POST /brands/default/senders).StandardNot yet documented
Sender.UpdatedA sender is edited (PATCH /brands/default/senders/{sender_id}).StandardNot yet documented
Sender.DeletedA sender is deleted (DELETE /brands/default/senders/{sender_id}).StandardNot yet documented
Sender.ConfirmedA sender is confirmed from its confirmation link (POST /brands/default/senders/confirm-email), or by an administrator.StandardNot yet documented
Sender.ConfirmationEmailSentThe confirmation email is sent again (POST /brands/default/senders/{sender_id}/resend-confirmation-email). The first one, sent when the sender is added, doesn't fire it.StandardNot yet documented
SuppressedEmail.AddedAn address, domain or local part is added to the suppression list: with POST /suppressed-emails, or by a global unsubscribe.StandardPayload
SuppressedEmail.RemovedA suppression is removed (DELETE /suppressed-emails/{email}).StandardNot yet documented
SuppressedEmailsExport.CreatedA suppression-list export is requested (POST /reports/suppressed-emails-exports).StandardNot yet documented
SuppressedEmailsExport.DeletedA suppression-list export is deleted (DELETE /reports/suppressed-emails-exports/{export_id}).StandardNot yet documented
User.CreatedA user is added (POST /users).StandardNot yet documented
User.ConfirmedAn invited user sets their password from the verification link (POST /users/{user_id}/confirm).StandardNot yet documented
User.UpdatedA user's profile, permissions or status changes (PATCH /users/{user_id}).StandardNot yet documented
User.DeletedA user is deleted, whether confirmed or pending (DELETE /users/{user_id}).StandardNot yet documented

Which events fire depends on how you send

Campaigns and workflow emailsEmail API (POST /v2/emails, and automations)Deprecated POST /emails
Email.Opened, Email.Clicked, Email.Bounced, Email.ReportedAsSpamYesYesYes
Email.Submitted, Email.Queued, Email.Processing, Email.Delivered, Email.Rejected, Email.ErrorNoYesNo
Email.Unsubscribed, Email.GlobalUnsubscribedNo: see belowYesNo
Email.SentNoNoYes

An unsubscribe from a campaign or workflow email fires Contact.Removed. A global unsubscribe from one also fires SuppressedEmail.Added.

Some events exist only inside the platform and can't be subscribed to, such as logins, MFA changes and contact tags.

Last modified on