Every event type Supermail emits, its payload, and the shared value types they carry.
Every event shares one envelope;
type selects which payload field is present. Types are dotted
noun.past_tense strings. Skip any type you do not recognize — the set is
additive.
type
Payload field
Meaning
email.received
email_received
A message newly appeared in the account's view
email.updated
email_updated
A provider-side change to an existing message
email.deleted
email_deleted
A message was removed/expunged
email.placement_upserted
email_placement_upserted
A message gained or changed one mailbox occurrence
email.placement_removed
email_placement_removed
A message lost one mailbox occurrence
email.sent
email_sent
A durable submission reached the provider
email.send_failed
email_send_failed
A durable submission ended in permanent failure
mailbox.changed
mailbox_changed
A folder was created, removed, renamed, or updated
label.changed
label_changed
A label was created, updated, or removed through Supermail
Message events are thin change notifications. They identify the message and its
mailbox occurrences and carry no addresses, dates, flags, attachments, or
content references; mail content and metadata are replicated to authorized
consumers through the content lane.
The provider's own conversation: Gmail threadId, Outlook conversationId. Opaque, scoped to the account and fixed for the message's lifetime; absent when the provider has none (IMAP)
Messages with the same thread_id in one account belong to one provider
conversation. There are no thread-level writes: act on each message.
The native Rust event DTO has one JSON wire representation, used for retained
event reads and signed webhook delivery.
The provider label: a Gmail label id, an Outlook category name or an IMAP keyword
kind
ChangeKind
CHANGE_KIND_CREATED, CHANGE_KIND_UPDATED (renamed or recolored; the id is kept), or CHANGE_KIND_REMOVED
Emitted when a Labels/create, Labels/update or Labels/delete operation is
confirmed by the provider. Labels changed in another client emit no event;
read the current catalog with Labels/list.
Events carry no content_ref. Gateway exposes no public endpoint that resolves
event payloads to bytes; raw content is served only through the
content lane to authorized DUCS consumers.