Fired when an existing consent record’s status changes. Common triggers: a contact confirms a Double Opt-In email (PENDINGGRANTED), unsubscribes (GRANTEDREVOKED), or consent is re-granted after a previous revocation.

Payload

{
  "id": "evt_b2c3d4",
  "event": "consent.updated",
  "timestamp": "2026-03-28T10:00:00Z",
  "data": {
    "contact_id": "c_a1b2c3d4",
    "consent_record_id": "cr_x1y2z3",
    "channel_type": "EMAIL",
    "message_type": "NEWSLETTER",
    "previous_status": "PENDING",
    "status": "GRANTED",
    "source": "doi_confirmation",
    "doi_status": "DOI_ACCEPTED",
    "updated_at": "2026-03-28T10:00:00Z"
  }
}
data.contact_id
string
The contact this consent record belongs to.
The consent record that was updated.
data.previous_status
string
The status before this change: GRANTED, PENDING, or REVOKED.
data.status
string
The new status after this change: GRANTED, PENDING, or REVOKED.
data.source
string
What triggered the update: doi_confirmation, unsubscribe, complaint, api, or crm_sync.
data.doi_status
string | null
Updated DOI status. DOI_ACCEPTED when a pending DOI is confirmed. null if DOI is not relevant to this update.
When status changes to REVOKED, the contact is automatically suppressed from future sends for this channel_type + message_type combination. You do not need to take action — the platform enforces this at send time.