How to Set Up Webhook Reporting for Email Campaigns
What Are Email Webhooks
An email webhook is an HTTP callback that your SMTP provider sends to your server whenever something happens to a message you sent. Instead of polling the provider's API to check on delivery status, the provider pushes event data to you the moment it happens. This gives you near-real-time visibility into your email campaign performance.
Each webhook event typically includes the recipient address, the event type, a timestamp, and additional metadata specific to the event. For example, a click event includes the URL that was clicked, while a bounce event includes the SMTP error code and a human-readable reason for the failure.
Types of Webhook Events
Most SMTP providers support the following event types through webhooks:
- Delivered: The receiving mail server accepted the message. This does not guarantee inbox placement, but it confirms the message was not rejected at the server level.
- Opened: The recipient loaded the tracking pixel embedded in the email. Open tracking is not perfectly reliable because some email clients block images by default, and privacy features like Apple Mail Privacy Protection can generate false positives.
- Clicked: The recipient clicked a tracked link in the email. Click data is more reliable than open data and is a stronger signal of genuine engagement.
- Bounced (hard): The recipient address does not exist or the domain is invalid. Hard bounces should trigger immediate removal of that address from your list.
- Bounced (soft): The delivery failed temporarily, usually because the mailbox is full, the server is temporarily unavailable, or the message was too large. Soft bounces may succeed on retry.
- Spam complaint: The recipient clicked the "Report Spam" button in their email client. This is the most damaging event for your sender reputation and should trigger immediate suppression of that address.
- Unsubscribed: The recipient used the provider's list-unsubscribe header to opt out. This should add the address to your suppression list.
- Deferred: The receiving server asked the provider to try again later. Deferrals are normal and usually resolve within hours, but a high deferral rate to a specific domain can indicate a reputation problem.
How This Platform Uses Webhook Data
When you connect an SMTP provider to the Email Broadcast app, the platform automatically configures webhook endpoints for your provider. Incoming webhook events are processed in real time to:
- Track delivery rates, open rates, and click rates for each campaign
- Automatically remove hard-bounced addresses from your sending list
- Add spam complainers to the suppression list so they never receive another message
- Process unsubscribe requests immediately
- Log delivery events for campaign analytics and reporting
This automated processing means you do not have to build your own bounce handling or complaint management system. The platform handles the most critical hygiene tasks automatically, keeping your list clean and your reputation protected.
Setting Up Webhooks by Provider
ElasticEmail
ElasticEmail provides the deepest webhook integration with this platform. Their notification system pushes delivery, bounce, complaint, open, and click events through HTTP POST callbacks. The platform's webhook endpoint for ElasticEmail processes all event types automatically, including their detailed bounce classification that distinguishes between dozens of failure reasons.
To configure ElasticEmail webhooks, go to your ElasticEmail account settings, navigate to the Notifications section, and add your platform's webhook URL as the HTTP notification endpoint. Select all event types you want to receive. The platform handles the rest.
SendGrid
SendGrid's Event Webhook sends JSON payloads containing batched event data. Each payload can contain multiple events, and SendGrid batches events to reduce the number of HTTP requests. Configure the Event Webhook in your SendGrid dashboard under Settings, then Mail Settings, then Event Webhook. Enter your platform's webhook URL and select the event types you want to track.
SendGrid also supports a signed webhook feature that adds a verification signature to each payload, letting you confirm the events genuinely came from SendGrid and were not spoofed by a third party.
Mailgun
Mailgun sends webhook events individually rather than batching them, which means you get faster notification at the cost of more HTTP requests. Configure webhooks in your Mailgun dashboard under Sending, then Webhooks. Add your platform's webhook URL for each event type you want to track. Mailgun's bounce events include particularly detailed SMTP response codes that help diagnose delivery problems with specific mailbox providers.
Amazon SES
SES uses Amazon SNS (Simple Notification Service) to deliver event notifications rather than direct webhooks. You create an SNS topic, subscribe your platform's endpoint to it, then configure SES to publish events to that topic through a configuration set. This adds an extra layer of setup compared to direct webhooks, but it integrates naturally with other AWS services if you already use them.
What to Do With Webhook Data
Beyond the automated list hygiene that the platform handles, webhook data gives you actionable insights for improving your campaigns:
Monitor bounce rates by domain. If your bounce rate to Gmail suddenly spikes, that may indicate a Gmail-specific blocking issue. See how to handle bounces automatically for strategies.
Track engagement by campaign. Compare open and click rates across campaigns to understand what content and subject lines resonate with your audience. Low engagement can eventually hurt deliverability as mailbox providers use engagement signals to filter mail.
Watch for spam complaint spikes. Even a small increase in complaint rate can trigger filtering or blocking by ISPs. If complaints spike after a particular campaign, review the content, the list segment, and the sending frequency to identify the cause.
Identify deliverability trends. Track your delivered-to-sent ratio over time. A gradual decline in delivery rate often indicates a reputation problem developing before it becomes a full blocking event.
Troubleshooting Webhook Issues
If you are not receiving webhook events, check these common causes:
- Verify the webhook URL is correct and publicly accessible (not behind authentication or a firewall)
- Confirm your server responds with a 200 status code within a few seconds, since providers will retry and eventually disable endpoints that consistently fail or timeout
- Check that you selected the correct event types in your provider's webhook configuration
- For Amazon SES, make sure you confirmed the SNS subscription by clicking the confirmation link in the subscription notification
Most providers offer a webhook testing feature or log of recent webhook attempts in their dashboard. Use these tools to verify that events are being sent and to see the exact payload format your endpoint should expect.
Set up webhook reporting and let the platform automatically manage your email list hygiene and campaign analytics.
Get Started Free