Skip to main content

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:

EventWhat It MeansWhy You Need It
DeliveredEmail reached the inbox serverConfirms your emails are actually getting through
BouncedEmail couldn't be deliveredAutomatically suppresses bad addresses to protect your reputation
Spam complaintRecipient marked you as spamAutomatically suppresses them — continuing to send would hurt your domain
UnsubscribedRecipient opted out at the provider levelEnsures 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

  1. Score CRM generates a unique webhook URL for each of your SMTP connections
  2. You paste that URL into your email provider's dashboard
  3. Your provider sends event data to that URL in real time
  4. 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

  1. Log into SendGrid
  2. Go to Settings → Mail Settings → Event Webhook
  3. Paste your Score CRM webhook URL
  4. Check all events: Delivered, Opened, Clicked, Bounced, Spam Report, Unsubscribed
  5. Turn on Signed Event Webhook (for security)
  6. Copy the Verification Key and paste it into your SMTP connection in Score CRM as the webhook signing key
  7. Save and enable

SparkPost

  1. Log into SparkPost
  2. Go to Webhooks → Create Webhook
  3. Paste your Score CRM webhook URL
  4. Select events: Delivery, Open, Click, Bounce, Spam Complaint, Link Unsubscribe
  5. Save the webhook
  6. Copy the authentication token to your Score CRM SMTP connection

Mailgun

  1. Log into Mailgun
  2. Go to Sending → Webhooks
  3. For each event type (Delivered, Opened, Clicked, Bounced, Complained, Unsubscribed), add your Score CRM webhook URL
  4. Copy the webhook signing key to your Score CRM SMTP connection

SMTP.com

  1. Log into your SMTP.com dashboard
  2. Navigate to Webhooks or Notifications
  3. Add your Score CRM webhook URL
  4. Configure event types
  5. Copy the HMAC signing key to your Score CRM SMTP connection

AWS SES

  1. Log into the AWS Console
  2. Go to SES → Configuration Sets
  3. Create or select a configuration set
  4. Add an SNS destination for: Bounce, Complaint, Delivery, Open, Click
  5. Create an SNS subscription pointing to your Score CRM webhook URL
  6. 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:

ProviderHow It's Verified
SendGridECDSA signature in the request header
SparkPostAuth token in the webhook header
SMTP.comHMAC signature in the request header
MailgunHMAC 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:

  1. Verifies the signature (rejects anything that doesn't check out)
  2. Normalizes the data (every provider formats events differently — Score CRM standardizes them)
  3. Updates analytics — delivery counts, bounce rates, open/click stats in your campaign and journey reports
  4. 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

ProblemWhat to Check
No events showing upIs 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 delayedNormal — some providers batch webhook deliveries every few minutes
Missing certain event typesGo back to your provider's webhook settings and make sure all event types are checked
Duplicate events appearingDon't worry — Score CRM handles deduplication automatically
Opens/clicks work but no bouncesThat means the webhook isn't set up yet. Opens and clicks are tracked by Score CRM directly; bounces require webhooks.