Event Webhooks — Complete Delivery Tracking
Webhooks are how your email provider tells Score CRM what happened after an email was sent. Without them, you're flying partially blind.
Why This Matters
Score CRM can track opens and clicks on its own (using a tracking pixel and link rewriting). But some critical events can only come from your email provider:
| Event | What It Means | Why You Need It |
|---|---|---|
| Delivered | Email reached the inbox server | Confirms your emails are actually getting through |
| Bounced | Email couldn't be delivered | Automatically suppresses bad addresses to protect your reputation |
| Spam complaint | Recipient marked you as spam | Automatically suppresses them — continuing to send would hurt your domain |
| Unsubscribed | Recipient opted out at the provider level | Ensures you honor opt-outs even outside your unsubscribe link |
Without webhooks, bounced addresses stay on your list and keep getting emails (which hurts your sender reputation), and spam complaints go unnoticed.
Bottom line: Set up webhooks. It takes 5 minutes and saves you from deliverability problems down the road.
How It Works
- Score CRM generates a unique webhook URL for each of your SMTP connections
- You paste that URL into your email provider's dashboard
- Your provider sends event data to that URL in real time
- Score CRM processes the events — updating analytics, triggering suppressions, and feeding your campaign reports
Your Webhook URL
Each SMTP connection has its own webhook URL. You'll find it on the connection's detail page:
https://your-domain.com/webhooks/v2/{provider}/{connectionId}
Copy this URL — you'll need it for the next step.
Provider Setup Guides
SendGrid
- Log into SendGrid
- Go to Settings → Mail Settings → Event Webhook
- Paste your Score CRM webhook URL
- Check all events: Delivered, Opened, Clicked, Bounced, Spam Report, Unsubscribed
- Turn on Signed Event Webhook (for security)
- Copy the Verification Key and paste it into your SMTP connection in Score CRM as the webhook signing key
- Save and enable
SparkPost
- Log into SparkPost
- Go to Webhooks → Create Webhook
- Paste your Score CRM webhook URL
- Select events: Delivery, Open, Click, Bounce, Spam Complaint, Link Unsubscribe
- Save the webhook
- Copy the authentication token to your Score CRM SMTP connection
Mailgun
- Log into Mailgun
- Go to Sending → Webhooks
- For each event type (Delivered, Opened, Clicked, Bounced, Complained, Unsubscribed), add your Score CRM webhook URL
- Copy the webhook signing key to your Score CRM SMTP connection
SMTP.com
- Log into your SMTP.com dashboard
- Navigate to Webhooks or Notifications
- Add your Score CRM webhook URL
- Configure event types
- Copy the HMAC signing key to your Score CRM SMTP connection
AWS SES
- Log into the AWS Console
- Go to SES → Configuration Sets
- Create or select a configuration set
- Add an SNS destination for: Bounce, Complaint, Delivery, Open, Click
- Create an SNS subscription pointing to your Score CRM webhook URL
- Confirm the subscription
Generic SMTP
Generic SMTP connections don't support webhooks — there's no standardized way for arbitrary SMTP servers to report back events. You'll still get open and click tracking (Score CRM handles those directly), but you won't get bounce or complaint data.
If deliverability matters to you (it should), consider switching to one of the supported providers above.
Webhook Security
Score CRM verifies that webhook events are genuine using each provider's signature method:
| Provider | How It's Verified |
|---|---|
| SendGrid | ECDSA signature in the request header |
| SparkPost | Auth token in the webhook header |
| SMTP.com | HMAC signature in the request header |
| Mailgun | HMAC signature verification |
Always enter the signing/verification key in your SMTP connection settings. Without it, Score CRM can't confirm events are really from your provider.
What Happens When Events Arrive
When Score CRM receives a webhook event, it:
- Verifies the signature (rejects anything that doesn't check out)
- Normalizes the data (every provider formats events differently — Score CRM standardizes them)
- Updates analytics — delivery counts, bounce rates, open/click stats in your campaign and journey reports
- Triggers suppressions automatically:
- Hard bounce → contact is suppressed (no more emails)
- Spam complaint → contact is suppressed
- Unsubscribe → contact is suppressed
This all happens in real time. You don't need to manually clean your lists — Score CRM handles it.
Troubleshooting
| Problem | What to Check |
|---|---|
| No events showing up | Is the webhook URL correct in your provider's dashboard? Is the webhook enabled/active? |
| Events rejected (401/403 errors) | Does the signing key in Score CRM match the one from your provider? |
| Events seem delayed | Normal — some providers batch webhook deliveries every few minutes |
| Missing certain event types | Go back to your provider's webhook settings and make sure all event types are checked |
| Duplicate events appearing | Don't worry — Score CRM handles deduplication automatically |
| Opens/clicks work but no bounces | That means the webhook isn't set up yet. Opens and clicks are tracked by Score CRM directly; bounces require webhooks. |