Suppression List
The suppression list is Engage's mechanism for never sending to addresses or phone numbers that have hard-bounced, complained, or opted out. Sending to those riders again would tank your deliverability reputation, so the list is enforced at dispatch time and cannot be overridden.
Navigation
View and manage the suppression list from Engage > Settings > Suppression List.
Two Tiers
Engage tracks suppressions at two scopes:
| Scope | Effect |
|---|---|
| Per-subaccount | Suppresses only sends from your operator account |
| Global | Suppresses sends from any operator on the platform |
Hard bounces and spam complaints add a global entry by default - the rider's mail server has flagged the address as a problem, and that's not specific to one operator. STOP keyword opt-outs also add a global entry, because TCPA requires honoring STOP across the sending number.
Operator-added suppressions (e.g., "this rider asked me on the phone to stop emailing them") add a per-subaccount entry only.
Identifier Normalization
Before lookup or insert, Engage normalizes every identifier:
| Identifier | Normalization |
|---|---|
| Lowercase, trim whitespace | |
| Phone | E.164 format (+15551234567) |
| Push token | Trim whitespace |
This prevents the same address from sneaking in via case differences (User@Example.com vs user@example.com).
What Adds an Entry Automatically
| Event | Source | Tier |
|---|---|---|
| Hard bounce | Postmark webhook | Global |
| Spam complaint | Postmark webhook | Global |
| STOP / STOPALL / CANCEL / UNSUBSCRIBE / END / QUIT | Telnyx inbound SMS | Global |
| Preference center "Unsubscribe All" | Rider action | Global (per channel) |
One-click List-Unsubscribe | Email client (Gmail, etc.) | Global (email only) |
| Soft bounce repeated 5+ times in 30 days | Engage dispatcher | Per-subaccount |
Soft bounces alone don't suppress - they're often transient (mailbox full, server down) - but a pattern of repeated soft bounces gets the rider held in your subaccount until you investigate.
What Adds an Entry Manually
You can add a per-subaccount suppression from the dashboard:
- Go to Engage > Settings > Suppression List.
- Click Add Entry.
- Choose channel (email / sms / push) and enter the identifier.
- Add a reason (free text, shown in audit).
- Save.
You can also bulk-import via CSV.
What Happens at Send Time
For every recipient, the dispatcher checks the suppression list before calling the provider:
1. Lookup per-subaccount suppressions for (customer.email, channel=email)
→ If hit: skip, log "suppressed_subaccount"
2. Lookup global suppressions for (customer.email, channel=email)
→ If hit: skip, log "suppressed_global"
3. Lookup channel consent on subscription_preferences
→ If consent=false: skip, log "no_consent"
4. (SMS only) Check quiet hours
→ If 9 PM - 9 AM local: hold in queue
5. Otherwise: dispatch
Skipped sends are not failed sends - they are accounted for separately in analytics.
Removing an Entry
In limited cases you can remove an entry:
| Source | Removable? |
|---|---|
| Hard bounce | No - the email is verified-bad by the provider |
| Spam complaint | No - regulatory minefield |
| STOP keyword | Only the rider can reverse via a START keyword |
| Preference center opt-out | Only the rider can re-opt-in via the preference center |
| Manual per-subaccount entry | Yes - operator can delete |
| Soft-bounce auto suppression | Yes after investigation |
This is intentional. Auto-suppressions protect you and the rider; manual overrides would defeat the point.
Viewing the List
The suppression list page shows:
- Identifier (masked:
j***@example.com) - Channel
- Reason
- Tier (per-subaccount or global)
- Created at
- Last attempt (when was the last time you tried to send to them)
You can filter by channel, tier, or reason to spot patterns.
Why Deliverability Cares
Sending to addresses on the suppression list - even one or two per send - dramatically damages your sender reputation:
- Gmail spam folder for the rest of your audience
- Postmark sender suspension if you cross 0.1% complaint rate or 1% hard bounce rate
- 10DLC SMS revocation for repeated STOP violations
The suppression list is the primary defense against all of these.
Cross-Subaccount Concerns
By default, global suppressions are platform-wide. If a rider complains about a send from operator A and complains again from operator B, both events go into the global pool.
For operators who specifically want isolation (e.g., a publicly-branded fleet that doesn't want neighboring operators' bad behavior affecting them), contact support to discuss segregation options.
Best Practices
- Treat suppressions as data, not failures. A 1% hard bounce rate on a new segment is normal. A 10% rate means the list is dirty or stale - investigate.
- Don't try to "reset" the list to send to bounced addresses again. They'll bounce again, and your reputation will get worse.
- Audit the manual entries periodically. If you added someone to suppression in error six months ago, you can remove them now.
- Use the import path for purchased lists with care - or better, don't buy lists. Engage is built for first-party riders, and purchased lists will spike your suppression rate immediately.
Need Help?
For suppression list help, contact support@levyelectric.com.