EmailElement Docs

Webhook Setup Walkthrough

Prerequisites

  • An HTTPS endpoint that can receive POST requests and return HTTP 200
  • The endpoint must be publicly accessible from the internet

Step 1: Create a Webhook

  1. Navigate to Account from the sidebar

    Navigate to Account

  2. Click the Webhooks tab

    Navigate to Webhooks

  3. Click Add Webhook or Create

  4. Enter a Name for the webhook (e.g., "CRM Event Sync" or "Analytics Pipeline")

    Name Your Webhook

  5. Enter the Webhook URL — must be HTTPS

    Enter Webhook URL

  6. Under Events to Subscribe, check the event types you want to receive:

    Select Webhook Events

    • Initiated — email queued for sending
    • Submitted — email submitted to ESP
    • Paused — send paused
    • Canceled — send canceled
    • Retry — retrying after soft bounce
    • Sent — ESP confirmed delivery
    • Failed — send attempt failed
    • SoftBounced — temporary delivery failure
    • HardBounced — permanent delivery failure
    • Complained — recipient marked as spam
    • Suppressed — email blocked by suppression list
    • Unsubscribed — recipient unsubscribed
    • Opened — recipient opened email
    • Clicked — recipient clicked a link
  7. Click Save

Step 2: Test the Webhook

  1. Click Test Webhook next to the newly created webhook

    Save and Test Webhook

  2. EmailElement sends a test payload to your endpoint

  3. If your endpoint returns HTTP 200, the test passes

    Successful Test

  4. If the test fails:

    • Verify the URL is correct and publicly accessible
    • Ensure the endpoint accepts POST requests
    • Check that the endpoint returns HTTP 200 (not 201, 204, or other codes)
    • Verify SSL/TLS certificate is valid (self-signed certificates may be rejected)

Step 3: Receive Events

  1. Once saved and tested, the webhook is active

  2. All matching events from all Send Integrations in your account are sent to the endpoint

    Events in 'Delivery Events'

  3. Events are delivered as POST requests with a JSON body

    Webhook Site

    Webhook In Action

  4. Your endpoint should:

    • Parse the JSON payload
    • Process or store the event data
    • Return HTTP 200 as quickly as possible
  5. If your endpoint does not return 200, EmailElement retries the delivery

Managing Webhooks

  • Disable: Use the toggle switch next to any webhook to disable it without deleting

    Disable Webhook

  • Edit: Click the webhook name to change the URL or subscribed events

  • Delete: Remove a webhook permanently when no longer needed

  • Multiple webhooks can be active simultaneously, each with different URLs and event subscriptions

  • The same event is sent to all active webhooks that subscribe to that event type

Best Practices

  • Keep endpoint processing fast — return 200 immediately and process asynchronously
  • Log all received payloads for debugging
  • Implement idempotency using the MessageId field to handle duplicate deliveries
  • Use HTTPS with a valid certificate from a trusted certificate authority
  • Monitor your endpoint's health and response times
Something went wrong. Reloading the page usually fixes it. Reload ×

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.