Events and Webhooks

Events are Buttondown's way of telling you that something interesting has happened to your newsletter, and webhooks are Buttondown's way of letting you react to various incoming events. For example, when a new subscriber signs up for your newsletter, Buttondown creates and emits a subscriber.created event; when that subscriber unsubscribes, Buttondown creates a subscriber.unsubscribed event. If you wanted to, say, create a Slack notification or run some application code whenever something in Buttondown happens, you'd create a webhook for the concomitant event and point it towards your application.

The payload of most events are fairly simple, and look something like this:

"event_type": "subscriber.confirmed",
"data": {
"subscriber": "ac79483b-cd28-49c1-982e-8a88e846d7e7"


Event typedescription
subscriber.repliedWhenever a subscriber has replied to one of your emails.
subscriber.createdWhenever a new subscriber is created.
subscriber.unsubscribedWhen a subscriber has manually unsubscribed from your newsletter.
subscriber.confirmedWhen a subscriber has confirmed that they are enrolled in your newsletter. (For newsletters without double opt-in, this event is created immediately after `subscriber.created`.)
subscriber.trial_startedWhen the trial has started for a subscriber. (For newsletters with automatic free trials, this will be created immediately after `subscriber.confirmed`.)
subscriber.trial_endedWhen the trial has ended for a subscriber.
subscriber.paidWhen a subscriber has enrolled in your newsletter's paid offering.
subscriber.churnedWhen a subscriber has unenrolled from your newsletter's paid offering.
subscriber.clickedWhen a subscriber has clicked a link in one of your emails.
subscriber.updatedWhen a subscriber's notes or metadata has changed.
email.createdWhenever a new email is created and begins delivery. Note that event happens immediately before the emails themselves are sent.
email.sentWhenever an email has finished its delivery. Note that event happens immediately after all emails have been sent, but some email events may not have finished processing.
email.deletedWhenever an email has been deleted.
email.status.changedWhenever an email's status has changed (e.g. from 'draft' to 'sent'.) The `metadata` field will contain the previous and new statii in 'old_value' and 'new_value' respectively.
memberful.subscription.createdWhenever a new subscription is created in Memberful.
memberful.subscription.deletedWhenever a subscription is deleted in Memberful.
memberful.member.updatedWhenever a member changes their email address in Memberful.
stripe.subscription.activatedWhenever a subscription is activated in Stripe.
stripe.subscription.deactivatedWhenever a subscription is deactivated in Stripe.