Webhook Setup
Webhooks allow your email service provider (ESP) to notify Score CRM about email events in real-time — deliveries, opens, clicks, bounces, complaints, and unsubscribes.
Why Webhooks Matter
Without webhooks, Score CRM can only track:
- Opens (via tracking pixel)
- Clicks (via link rewriting)
With webhooks, you also get:
- Delivery confirmations
- Bounce notifications (hard and soft)
- Spam complaints
- Provider-level unsubscribes
These events are critical for suppression management, deliverability monitoring, and accurate reporting.
Webhook URL Format
Each SMTP connection has a unique webhook URL:
https://your-domain.com/webhooks/v2/{vendor}/{connectionId}
Where:
{vendor}is the provider type (e.g.,sendgrid,sparkpost,smtpcom){connectionId}is the unique SMTP connection ID
This URL is automatically generated when you create an SMTP connection and is displayed on the connection's detail page.
Provider-Specific Setup
SendGrid
- Log into your SendGrid dashboard
- Go to Settings → Mail Settings → Event Webhook
- Enter the webhook URL from Score CRM
- Select the events to receive:
- ✅ Delivered
- ✅ Opened
- ✅ Clicked
- ✅ Bounced
- ✅ Spam Report
- ✅ Unsubscribed
- Enable Signed Event Webhook for security
- Copy the Verification Key and add it to your SMTP connection in Score CRM as the webhook signing key
- Save and enable the webhook
SparkPost
- Log into your SparkPost dashboard
- Go to Webhooks
- Click Create Webhook
- Enter the webhook URL from Score CRM
- Select events:
- ✅ Delivery
- ✅ Open
- ✅ Click
- ✅ Bounce
- ✅ Spam Complaint
- ✅ Link Unsubscribe
- Save the webhook
- Copy the authentication token to your Score CRM SMTP connection
SMTP.com
- Log into your SMTP.com dashboard
- Navigate to Webhooks or Notifications
- Add the webhook URL from Score CRM
- Configure event types
- Copy the HMAC signing key to your Score CRM SMTP connection
Webhook Security
Score CRM verifies webhook authenticity using provider-specific signature verification:
| Provider | Verification Method |
|---|---|
| SendGrid | ECDSA signature in request header |
| SparkPost | OAuth token or webhook auth header |
| SMTP.com | HMAC signature in request header |
Always configure the signing/verification key in your SMTP connection settings to ensure only legitimate events are processed.
Event Processing
When a webhook event is received:
- Receive: Score CRM receives the POST request from your ESP
- Verify: Signature is verified against the stored signing key
- Parse: Provider-specific payload is normalized to a standard event format
- Store: Events are processed and stored for real-time analytics
- Suppress: Hard bounces, complaints, and unsubscribes trigger automatic customer suppression
Troubleshooting
| Issue | Check |
|---|---|
| No events coming in | Verify the webhook URL is correct in your provider's dashboard |
| Events rejected (401/403) | Check that the signing key matches between the provider and Score CRM |
| Events delayed | This is normal — some providers batch webhook deliveries |
| Missing event types | Verify all desired event types are selected in the provider's webhook config |
| Duplicate events | Score CRM handles deduplication — this is expected behavior from some providers |