Skip to main content
This page documents every event type that EffiLink can deliver to your webhook endpoint, including a description of when each event fires and a full table of the fields present in its payload. For setup instructions and general webhook behavior, see Webhooks.

Batch delivery

EffiLink delivers webhook events in batches. Each HTTP POST to your endpoint contains a JSON array of event objects — up to 1,000 events per push. A single push may contain events of different types, so your handler should branch on the EventCode field of each object in the array.

Common fields

The following fields appear across most or all event types. Individual events may include additional fields documented in their own sections below.

Event types

EventCode: DroppedFired when EffiLink prevents an email from being sent because the recipient’s address is flagged by a suppression filter. The email is never submitted to the mail server.When it fires: Before send, when properties.email_bounced_flag is non-zero on the contact record.Reason codes
EventCode: BouncedFired when an email was submitted to the receiving mail server but delivery failed. EffiLink distinguishes between permanent failures (hard bounce) and temporary failures (soft bounce).When it fires: After submission to the receiving mail server, upon receiving a failure response.Reason codes
Decode FailedCause from Base64 to read the raw SMTP error message, which is useful for diagnosing unusual bounce patterns.
EventCode: DeliveredFired when the recipient’s mail server accepted the email. Note that “Delivered” means the server accepted the message — it does not guarantee the email reached the inbox (it may still be filtered to spam by the recipient’s mail client).When it fires: Upon receiving a successful 250 OK (or equivalent) response from the receiving mail server.
EventCode: OpenedFired each time a recipient opens the email. If the same recipient opens the email multiple times, a separate Opened event is generated for each open. Open tracking works via a hidden 1×1 pixel image embedded in the email body.When it fires: When the tracking pixel is loaded by the recipient’s email client.
Open tracking requires images to be loaded by the recipient’s email client. Some clients block image loading by default, which means opens may be under-counted. Apple Mail Privacy Protection (MPP) may also cause inflated or delayed open events.
EventCode: UnsubscribedFired when a recipient clicks the unsubscribe link in an email. EffiLink automatically updates the contact’s email_bounced_flag to 2 (unsubscribe filter), preventing future sends.When it fires: When the unsubscribe action is confirmed (either one-click or via a confirmation page, depending on your settings).
EventCode: SpamReportFired when a recipient reports the email as spam via their email client’s “Report Spam” or “Mark as Junk” button (feedback loop events). EffiLink automatically updates the contact’s email_bounced_flag to 3 (complaint filter).When it fires: When a feedback loop complaint is received from the recipient’s email provider.
A high spam complaint rate will damage your sender reputation. Monitor SpamReport events closely and investigate the sending practices or content associated with campaigns that generate complaints. Most email providers consider a complaint rate above 0.1% problematic.
EventCode: TaskStatusFired when the status of a campaign task changes. This event is useful for triggering downstream workflows — for example, starting a post-campaign report job when a send completes.When it fires: When a campaign transitions to Created (task scheduled or queued) or Completed (all sends attempted).

Further reading