Suppression Lists
Suppression is Score CRM's mechanism for ensuring emails are not sent to contacts who should not receive them. The system automatically handles bounces, complaints, and unsubscribes while also supporting manual suppression management.
How Suppression Works
Every customer has a suppression status that is either active or suppressed. Suppressed customers are automatically excluded from all campaign sends and journey emails — no manual intervention needed.
Suppression Reasons
When a customer is suppressed, a reason is recorded:
| Reason | Trigger | Description |
|---|---|---|
hard_bounce | Automatic (webhook) | Email address doesn't exist or is permanently undeliverable |
soft_bounce | Automatic (after 5 consecutive) | Temporary delivery failures that persist |
complaint | Automatic (webhook) | Recipient reported the email as spam |
unsubscribed | Automatic (tracking link) | Recipient clicked the unsubscribe link |
manual | Manual (admin action) | Suppressed by a team member |
list_import | CSV import | Suppressed via bulk CSV upload |
Suppression Sources
Each suppression also tracks how it was triggered:
- webhook: Automated via ESP webhook (SendGrid, SparkPost, SMTP.com, OCI Mail)
- tracking_link: Customer clicked the unsubscribe link in the email
- manual: Admin action via the Score CRM UI
- csv_import: Bulk import of suppressed emails
- api: Suppressed via API call
Managing Suppressions

Viewing Suppressed Contacts
- Navigate to Suppression in the sidebar
- Browse the suppression list with filters:
- Reason: Filter by hard bounce, soft bounce, complaint, unsubscribed, manual
- Source: Filter by webhook, tracking link, manual, CSV import
- Date range: Filter by when suppression occurred
Manually Suppressing a Contact
- Go to Suppression
- Click Add Suppression
- Enter the email address
- Select a reason (defaults to "manual")
- Click Suppress
Unsuppressing a Contact
Unsuppressing a contact means they will start receiving emails again. Only unsuppress contacts when you're confident the issue is resolved (e.g., the customer confirmed they want to receive emails).
- Find the suppressed contact in the list
- Click Unsuppress
- Confirm the action
Bulk Import
To suppress many contacts at once:
- Go to Suppression
- Click Import CSV
- Upload a CSV with an
emailcolumn - Select the suppression reason
- Submit

Limits: Maximum 100,000 rows and 10MB file size per import.
Automatic Suppression Behavior
Hard Bounces
When an ESP reports a hard bounce via webhook, the customer is immediately:
- Marked as
is_bounced = true - Set to
suppression_status = 'suppressed' - Set to
suppression_reason = 'hard_bounce'
Soft Bounces
Soft bounces are tracked with a counter. After 5 consecutive soft bounces, the customer is auto-suppressed with reason soft_bounce. The counter resets if a successful delivery occurs.
Spam Complaints
A single spam complaint triggers immediate suppression with reason complaint. This is critical for maintaining sender reputation.
Unsubscribes
When a recipient clicks the unsubscribe link (generated via the {{unsubscribe_url}} merge tag), they are immediately suppressed with reason unsubscribed.
Audit Trail
All suppression actions are logged in an immutable audit trail for compliance purposes. Each entry records:
- The customer email
- The suppression action (suppressed or unsuppressed)
- The reason and source
- Timestamp
- The user who performed the action (for manual operations)
This audit trail cannot be edited or deleted, ensuring full compliance with email marketing regulations.
Best Practices
- Never unsuppress spam complaints: This damages your sender reputation
- Review bounce patterns: A spike in bounces may indicate a list quality issue
- Monitor complaint rates: Keep complaint rates below 0.1% to maintain deliverability
- Use suppression imports for known-bad lists: If you acquire a list of invalid emails, suppress them before they enter your send pipeline
- Audit regularly: Review suppression trends to catch issues early