Suppression Lists

Suppression lists allow you to prevent emails from being sent to specific email addresses. This is crucial for maintaining good deliverability and compliance with email marketing regulations.

Broadcast supports two types of suppressions:

  1. Channel-specific suppressions: Block emails for a specific channel only
  2. Global suppressions: Block emails across all channels in your application

Understanding Suppressions

Each suppression has a source that determines what it blocks. When an email address is added to a suppression list, Broadcast will prevent certain emails from being sent to that address based on where the suppression came from.

Suppression Sources and What They Block

Suppressions come from different sources, and each source has different blocking behavior:

Added by you: - Added manually: Via the Settings UI - Imported: From an uploaded .txt file - API: Via the Suppressions API

These block ALL email, including transactional emails (password resets, receipts).

Reported by your email provider: - Hard bounce: The provider permanently rejected the email - Spam complaint: The recipient marked email as spam - Suppressed by provider: The provider’s own inactive list (e.g., Postmark error 406)

These block MARKETING email only (broadcasts and sequences). Transactional emails still go through. The reasoning: email providers enforce their own suppression on transactional mail anyway, and providers keep separate suppression lists per message stream, so a spam complaint about a newsletter should not stop password resets.

Hard bounce special setting:

Hard bounces block marketing by default, but you can configure channel settings to make them also block transactional email. This is a per-channel setting under Settings > General Channel Settings. When enabled, hard bounces from that channel’s email provider will block transactional emails too. Changing this setting applies immediately to existing hard-bounce entries. It never affects spam complaints or provider suppressions.

Soft bounces (temporary failures):

Mailbox full, out-of-office, and temporary network failures are not suppressed anymore. Only bounces the provider stopped sending to are suppressed. For Postmark, that is a bounce it marks the address inactive for.

Channel-specific vs Global Suppressions

  • Channel-specific suppressions: These email addresses are suppressed only for the current channel. They can still receive emails from other channels.
  • Global suppressions: These email addresses are suppressed across all channels in your application. They will not receive any emails regardless of which channel is sending them.

If you run several channels, this distinction matters more than it first appears. A bounce or a spam complaint is recorded against the channel it happened in, so the same person can still be emailed from your other channels, and a hard bounce is bad everywhere, not just where you first hit it. Mailing it again costs sending reputation across your whole installation. See Copying a channel’s list to the global list below.

Important: Suppressions are permanent until manually removed. Make sure you’re adding the correct email addresses to your suppression lists.

Accessing Suppression Lists

To access suppression lists, navigate to Settings → Global Suppression in your channel dashboard.

The Channel tab of the suppression list with search, and Source, Blocks and Remove columns for each address

You’ll see two tabs:

  • Channel: Shows email addresses suppressed for the current channel only
  • Global: Shows email addresses suppressed across all channels

Each entry shows: - The email address - The source (Added manually, Imported, API, Hard bounce, Spam complaint, Suppressed by provider) - The provider’s reason (if from a provider report) - What it blocks (All email or Marketing only)

Global suppression tab showing suppressions that apply to all channels

Automatic Suppression from Bounces and Complaints

Most suppressions are not added by hand. When your email provider reports that a message hard bounced or that the recipient marked it as spam, Broadcast suppresses the address for you.

On receiving a bounce or complaint webhook, Broadcast:

  1. Marks the outbound receipt as bounced or complained
  2. Deactivates the subscriber and writes a history entry reading “Bounced (Unsubscribed) [Webhook]” or “Reported Spam (Unsubscribed) [Webhook]”
  3. Adds the address to the channel suppression list for the channel that sent the message, with the provider’s reason recorded

When Postmark or another provider rejects a single recipient as inactive (a 406 error) while sending a broadcast, that recipient is skipped and marked failed. The broadcast continues sending to others, and the subscriber is deactivated and suppressed. Their history reads “Deactivated and suppressed: Postmark reported this address as inactive … while sending broadcast …”, so you can see why.

2.49+

A hard bounce can also arrive at send time, in the SMTP server’s reply: for example “550 5.1.1 user unknown”. Broadcast records it the same way as a bounce webhook, for broadcasts, sequence emails and transactional emails. The subscriber is deactivated and suppressed, and their history reads “Bounced (Unsubscribed) [Send]”. Only a reply that says the address does not exist counts. A full mailbox or an unclear reply suppresses nothing. See Failed Broadcasts and Resume for the codes.

Bounce and complaint webhooks for sequence emails now deactivate and suppress the subscriber too. Before 2.49 they failed for sequence emails, so those subscribers stayed active.

Important: Automatic suppressions are always channel-specific, so they appear on the Channel tab. Nothing is ever added to the Global tab automatically. That list is yours to curate. If a bounced address seems to be missing, check the Channel tab first.

How Provider Suppressions Interact With Manual Ones

Each email address can have one entry per channel. When multiple sources of suppression exist for the same address, the strongest one wins:

Priority order: 1. Added by you (blocks all email) 2. Hard bounce (blocks marketing only, unless configured to block transactional) 3. Spam complaint or provider suppression (blocks marketing only)

Adding an address manually upgrades a provider suppression to block all email. A provider report never weakens an entry you added yourself.

Reactivating a subscriber (through import, API upsert, or re-subscribe) does not remove them from the suppression list. The suppression entry stays in place and continues to block email until it is manually removed.

Syncing Suppressions from AWS SES

AWS SES keeps its own account-level suppression list. Broadcast can import it, which is how you pick up bounces from mail sent before the integration was configured, or sent outside Broadcast entirely.

Go to Settings → Email Servers, find your integrated AWS SES server, and use Suppression List Sync → Sync Suppression List. Imported addresses are added as channel suppressions for the channel that owns that email server, and the panel shows a “Last synced” timestamp along with any errors. See AWS SES Integration for the full setup and for what to check when bounces are visible in AWS but not in Broadcast.

Adding Individual Suppressions

Single Email Address

  1. Navigate to Settings → Global Suppression
  2. Click Add suppression
  3. Enter the email address you want to suppress
  4. Choose the suppression scope:
    • Channel-specific suppression: Suppresses emails only for the current channel
    • Global suppression: Suppresses emails across all channels
  5. Click Add Suppression

Suppressions added manually block all email, including transactional emails.

Add suppression form with email field and suppression type options

Bulk Upload Suppressions

For larger lists, you can upload multiple email addresses at once using a text file.

Preparing Your File

  1. Create a plain text file (.txt extension)
  2. Add one email address per line
  3. Save the file as UTF-8

Example file content:

spam@example.com
bounce@test.com
complaint@domain.org

Uploading the File

  1. Navigate to Settings → Global Suppression
  2. Click the dropdown menu next to “Add suppression” and select Upload email list
  3. Choose your suppression scope:
    • This Channel Only: Suppresses emails only for the current channel
    • All Channels (Global): Suppresses emails across all channels
  4. Select your text file (maximum 10,000 email addresses per file)
  5. Click Upload Email List

Suppressions added via import block all email, including transactional emails.

Upload suppression list form with file upload area and suppression type options

Broadcast will process the file and provide a summary of:

  • How many email addresses were added
  • How many were already suppressed (skipped)
  • How many were invalid (skipped)

An address only needs a single @ with something either side of it to be accepted. International addresses containing accented or non-Latin characters are fine, and so are addresses your email provider might refuse at send time. Blocking an address you cannot currently mail costs nothing, whereas refusing to record it means you keep mailing somebody who asked you to stop.

Lines are counted as invalid when they could never match an address: a whole spreadsheet row rather than a single address, a line containing spaces, or text that could not be decoded. If your file came out of another platform and the accented addresses are all reported invalid, it was almost certainly saved as Latin-1 or Windows-1252. Re-export it as UTF-8 and upload it again.

Tip: Only plain text files (.txt) are supported for bulk uploads. If you have your list in a spreadsheet, export it as a text file with one email per line.

Copying a Channel’s List to the Global List

If a channel has collected bounces and complaints over time, you can copy that whole list onto the global list in one action, so those addresses are blocked in every channel.

On the Channel tab, click Copy to global list. That takes you to Settings → Maintenance, which reports how many addresses would be copied and lists them before anything is written. Addresses already on the global list are excluded from the count.

The channel’s own list is kept. Nothing is deleted or overwritten, so you can still see which channel a suppression originally came from. Running it again adds nothing, so it is safe to repeat as the channel’s list grows.

This needs write access to global suppressions, since it changes what every channel can send to. See Channel Maintenance for the full description.

Managing Suppressions

Viewing Suppressions

The suppression list interface allows you to:

  • View all suppressed email addresses
  • See when each suppression was added
  • Search for specific email addresses
  • Switch between the Channel and Global tabs

Searching Suppressions

Use the search box to quickly find specific email addresses in your suppression lists. The search will match partial email addresses, making it easy to find all suppressions for a particular domain.

Removing Suppressions

To remove an email address from the suppression list:

  1. Navigate to Settings → Global Suppression
  2. Find the email address you want to remove (use the search box if needed)
  3. Click Remove next to the email address
  4. Confirm the removal

Warning: Once you remove an email address from the suppression list, it will be able to receive emails again. Make sure this is intentional.

How Suppressions Work

Automatic Checking

Broadcast automatically checks all suppression lists before sending any email. Whether an email is actually blocked depends on both the source of the suppression and the type of email being sent.

What blocks what: - Suppressions added by you (manual, imported, API) block ALL emails (broadcasts, sequences, and transactional) - Provider-reported suppressions (bounces, complaints, provider suppression) block MARKETING only (broadcasts and sequences) - Hard bounces can optionally be configured to also block transactional email per channel

Priority Order

If an email address appears with multiple suppression sources, the strongest blocks the email:

  1. Added by you (blocks all email) always takes precedence
  2. Hard bounce (blocks marketing; optional transactional) comes next
  3. Spam complaint or provider suppression (blocks marketing only)

Integration with Email Sending

When a suppressed email address is encountered during sending:

  • Broadcasts leave the address out silently: it is not counted in the recipient total, and no email activity is recorded for it
  • Sequences skip the email step for that subscriber
  • Transactional emails that a suppression blocks are marked Failed, with the reason “Email recipient is on the global suppression list”

2.51+

In an email sequence, a subscriber whose address is suppressed skips the email step and continues with the next step: tag, move and deactivate steps still run, and the subscriber can complete the sequence. Before 2.51 such a subscriber waited at the email step and never reached the steps after it. When you upgrade, those waiting subscribers continue on the next sequence run, and their later steps and webhooks run then. See Email Sequences.

Best Practices

When to Use Suppressions

Bounces and spam complaints are suppressed for you automatically, so add suppressions by hand for:

  • Legal compliance: Addresses that have requested removal (these will block all email)
  • Internal testing: Test addresses that shouldn’t receive production emails
  • Addresses that should never be mailed from any channel: add these to the Global tab, since automatic suppression only ever covers the sending channel
  • Lists brought in from another platform: bulk upload the previous platform’s bounce and complaint list (these will block all email)

Note: Manual suppressions block all email including transactional emails, while provider-reported suppressions (bounces, complaints) block marketing only by default.

Maintaining Your Lists

  • Regular cleanup: Review your suppression lists periodically
  • Documentation: Keep records of why addresses were suppressed
  • Global vs channel: Use global suppressions for addresses that should never receive any emails
  • Backup: Consider exporting your suppression lists as backups

Compliance Considerations

  • Respect requests: Always honor suppression requests from recipients
  • Legal requirements: Some jurisdictions require permanent suppression for certain types of requests
  • Documentation: Keep records of suppression requests for compliance purposes

Troubleshooting

Common Issues

Q: Why isn’t my suppression working? A: Check that the email address is spelled correctly and that you’ve selected the right suppression scope (channel-specific vs global). Also check which emails are being suppressed: provider-reported suppressions (bounces, complaints) block marketing only, not transactional emails.

Q: An address bounced, but I can’t find it on the suppression list. A: Automatic suppressions land on the Channel tab, never the Global tab. If it isn’t on the Channel tab either, the bounce notification never reached Broadcast. See AWS SES Integration for the webhook checks.

Q: A hard bounce isn’t blocking transactional emails. Can I change that? A: Yes. Go to Settings > General Channel Settings and enable “Hard bounces also block transactional email”. This applies to existing hard-bounce suppressions immediately. It never affects spam complaints or provider suppressions, only hard bounces.

Q: Can I export my suppression lists? A: The dashboard has no export button. To export, page through the list endpoints of the Suppressions API (GET /api/v1/suppressions for a channel, GET /api/v1/global_suppressions for the global list, with an admin API token).

Q: What happens to existing scheduled emails? A: Suppressions are checked at send time, so any scheduled emails to suppressed addresses will be automatically skipped when they’re due to be sent.

Q: Are suppressions case-sensitive? A: No, email addresses are normalized to lowercase, so suppressions work regardless of the case of the original email address.

Q: Can I manage suppressions from my own code? A: Yes. See the Suppressions API for adding, listing and removing addresses on both lists, plus a check endpoint that answers whether a given address will receive mail.

Last updated

Was this page helpful?

Thanks for your feedback!

Thanks for letting us know. We'll work on improving this page.