Skip to content
SynupAPI
Get an API key
EVENTcampaign.status_change

Campaign message status changed

Event name: campaign.status_change

A recipient's message engagement changed (delivered / opened / clicked / bounced / dropped / unsubscribed). Scope: location-scoped. Delivered as a signed HTTP POST to your Webhooks URL.

Every delivery is signed. Verify X-Synup-Signature before processing — see Synup Webhooks.

Payload

NameTypeRequiredDescription
eventstringoptionalDotted event name.
timestampstringoptionalISO-8601 UTC time the event was emitted.
account_idintegeroptionalSynup account the event belongs to.
location_idstringoptionalNumeric string for location-scoped events; null for brand-scoped events.
dataobjectoptional
data.campaign_idstringoptionalCampaign UUID.
data.customer_idstringoptionalRecipient (LocationCustomer) UUID.
data.message_idstringoptionalMessage UUID.
data.statusstringoptionaldelivered / opened / clicked / bounced / dropped / unsubscribed.
data.channelstringoptional"email" or "sms" (omitted if unmapped).
data.occurred_atstringoptionalWhen it occurred (not present on unsubscribed).
data.urlstringoptionalClicked URL (present only on click events).
Example delivery
{
  "event": "campaign.status_change",
  "timestamp": "2026-07-15T09:20:11Z",
  "account_id": 11073,
  "location_id": "279381",
  "data": {
    "campaign_id": "8f3a1c72-..",
    "customer_id": "a9..",
    "message_id": "d3..",
    "status": "clicked",
    "channel": "email",
    "occurred_at": "2026-07-15T09:20:05Z",
    "url": "https://funnel.example.com/r/abc"
  }
}