Webhooks

Activity on a legacy LinkedIn campaign

Sent to URLs registered with type: linkedin or linkedin: true.

  • VISITED: profile visited.
  • INVITED: invitation sent. When the contact was already a connection, INVITED and ACCEPTED are sent together.
  • ACCEPTED: acceptance detected (connections polling, inferred from a reply, or real time LinkedIn notification).
  • MESSAGE_SENT: message sent, text in content.
  • INMAIL_SENT: InMail sent.
  • REPLIED: first reply detected, with reply and sentiment.

LIKED, FOLLOWED and CAMPAIGN_ENDING are never sent for these campaigns. Most events come from the LinkedIn worker (contact without id nor email). Replies and acceptances detected in real time come from the API server and add campaignId, contact.id and contact.email; that path retries once on network errors, the worker never retries.

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.

postWebhooklinkedinCampaignActivity

Payload

event'VISITED' | 'INVITED' | 'ACCEPTED' | 'MESSAGE_SENT' | 'INMAIL_SENT' | 'REPLIED' required

Events delivered for legacy LinkedIn campaigns (type: linkedin). LIKED, FOLLOWED and CAMPAIGN_ENDING are never delivered for these campaigns.

campaignstring required

Campaign name.

campaignIdstring

Only on replies and acceptances detected in real time.

datestring date-time required

ISO 8601 UTC. Action time, or message time for replies.

stepinteger required

0 based index of the sequence step (-1 when not resolved).

replystring

REPLIED only.

contentstring

MESSAGE_SENT only: text of the message sent.

Response

Any response is accepted. Emelia ignores the status and the body.

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.