Activity on a legacy email campaign

Sent to URLs registered with type: email (or without type).

  • SENT: right after a sequence email is sent (test sends excluded). Network errors retried up to 5 times; the send waits for your endpoint.
  • OPENED: tracking pixel loaded, at most once per email and contact, delivered 30 to 60 seconds later. Needs open tracking.
  • CLICKED: tracked link clicked, at most once per link and email, delivered 30 to 60 seconds later; two clicks of the same contact on the same step queued within that delay can be merged into the last one. With open tracking on, a click is ignored until an open was recorded.
  • REPLIED: first reply of the contact detected in the mailbox (later replies are not sent), with reply text, AI classification, sending mailbox and Message-ID. Network errors retried up to 5 times.
  • BOUNCED: bounce detected (non delivery report or refusal at send time). No campaign field and step always 0. Network errors retried up to 5 times.
  • UNSUBSCRIBED: the contact confirms on the unsubscribe page (or a one click unsubscribe POST is received); once per contact.
  • INTERESTED: contact marked as interested by a user in the legacy web app (not through the REST API).
  • CAMPAIGN_ENDING: accepted at registration, never sent for email campaigns.

Delivery. One POST per event and per registered URL, header Content-Type: application/json, JSON body, no signature or secret header, default User-Agent of the HTTP library. No timeout is set. Your response (status and body) is ignored: an HTTP error is never retried. Network errors are retried only for some events (see each list). No event ID, no ordering guarantee, no replay; a URL registered twice receives everything twice. Absent fields are omitted, never null.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

Example Requests

POST/emailCampaignActivity