Activity on an advanced (multichannel) campaign

Sent to URLs registered with type: advanced.

  • EMAIL_SENT: email step sent (the documented name MAIL_SENT never fires).
  • OPENED, CLICKED, UNSUBSCRIBED: same tracking rules as legacy email, delivered 30 to 60 seconds later; contact without id, no sender.
  • MAIL_REPLIED: first email reply, with reply, sentiment, sender, senderName, messageId, campaignId.
  • BOUNCED: bounce detected; no campaign field, step 0.
  • VISITED, INVITED, ACCEPTED, MESSAGE_SENT (text in content), INMAIL_SENT, LIKED: LinkedIn actions.
  • LINKEDIN_REPLIED: LinkedIn reply with reply and sentiment; campaignId, linkedinUrlProfile and linkedinId only when detected in real time.
  • WHATSAPP_MESSAGE_SENT, WHATSAPP_REPLIED: WhatsApp message sent, reply received (reply).
  • CAMPAIGN_ENDING: see the campaignEnding webhook.

Never sent: SENT, MAIL_SENT, FOLLOWED, TASK_COMPLETED, TASK_FAILED, FAILED_ACTION, EXCLUDED, RE_REPLY_EMAIL, RE_REPLY_LINKEDIN. Only the real time LinkedIn path retries (once, network errors).

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/advancedCampaignActivity