Skip to main content
Webhooks let EffiLink push email event data directly to your own HTTP endpoint in near real-time — no polling required. Every time a significant event occurs (an email is delivered, a link is clicked, a recipient unsubscribes), EffiLink batches the event data and POSTs it as JSON to the URL you configure. This makes webhooks the right tool for building live dashboards, feeding analytics pipelines, triggering automated workflows, and maintaining an off-platform audit log.

How webhooks work

  1. An event occurs — for example, a recipient opens an email.
  2. EffiLink batches the event — events are grouped into batches of up to 1,000 per push to keep throughput high without overwhelming your endpoint.
  3. EffiLink POSTs to your endpoint — a JSON array is sent to your configured callback URL over HTTPS.
  4. Your server processes the payload — parse the array and handle each event object.
Request details

Configure your webhook URL

Via the dashboard

The simplest way to get started is to set a default webhook URL in the EffiLink dashboard:
  1. Go to Settings → Webhooks.
  2. Enter your HTTPS callback URL.
  3. Select the event types you want to receive.
  4. Toggle webhooks to Enabled and save.
All senders in your account will use this URL unless overridden.

Via the API

Use the Webhook Config API to read or update your webhook settings programmatically. Get current configuration — POST /v5/webhook/get No request body required. Returns the current webhook configuration: Save configuration — POST /v5/webhook/save Example — enable delivered and opened events with a default URL:

Example incoming webhook payload

Below is what your endpoint receives when EffiLink delivers a batch. The array may contain events of mixed types in a single push.

Supported event types

For complete field-level documentation for each event type, see Webhook Events.

Security considerations

Validate the User-Agent header

Every webhook request from EffiLink includes the header User-Agent: YiyeWebhooks. Check for this value on your endpoint as a first-line filter to reject requests from unknown sources.

Plan for duplicate delivery (idempotency)

EffiLink may retry delivery if your endpoint does not respond with an HTTP 2xx status code within the expected window. This means your application can receive the same event more than once. Design your event handler to be idempotent — use UniqueMsgID combined with EventCode as a composite key to detect and skip duplicate events before writing to your database or triggering downstream actions.

Use HTTPS

Always configure an HTTPS callback URL. Plain HTTP endpoints are not recommended and may be blocked in future platform versions.

Respond quickly

Return an HTTP 200 response as fast as possible — ideally before any heavy processing. Offload work to a background queue so your endpoint does not time out and inadvertently trigger retries.