Cleaning a Brevo contact list
To clean a Brevo contact list, let Brevo's blocklist handle the contacts it already knows are bad, then verify the contacts it still mails and blocklist the ones whose result says remove. Brevo blocklists a contact from email campaigns after a hard bounce, after five consecutive campaign soft bounces, after a spam complaint and after an unsubscribe. It cannot tell you which addresses will fail before you send. The workflow is: export the subscribed contacts, verify the file, re-import the results into contact attributes, then blocklist rather than delete.
What Brevo already does on its own
Brevo, formerly Sendinblue, keeps a blocklist per channel. Its article What are the different types of blocklisted contacts? gives four reasons a contact is blocklisted from your email campaigns: they unsubscribed through your unsubscribe form, they marked a campaign as spam, a campaign to them hard bounced, or you blocklisted them yourself, one by one or through an import. A blocklisted contact is left out of every email campaign, and you use no email credits on them. They still count toward your total number of contacts.
Bounces
What are soft bounces and hard bounces in email? describes the bounce rules:
- Hard bounce: a permanent failure, for example an address that does not exist. Brevo blocklists the address automatically and never retries it.
- Soft bounce: a temporary failure, such as a full mailbox or an unavailable server. Brevo first defers the message and retries it for 36 hours. If an email campaign soft bounces for the same contact five times in a row, the contact is blocklisted. This rule does not apply to transactional emails.
The same article shows how to find the bounced contacts: in CRM > Contacts, click Add filter and choose Marketing > Email > Email classed as soft bounce or Email classed as hard bounce.
Transactional email is a separate blocklist
Transactional emails have their own blocklist, fed by the same kinds of events. By default, a contact who unsubscribes from a transactional email is blocked only from that sender. You view that list under Settings > Transactional emails > Blocked or Unsubscribed contacts (View your blocklisted contacts).
What verification adds
Every rule above reacts to mail you already sent. Verification checks addresses before the next send. It catches addresses that would bounce, and some that a bounce never reveals:
- mailboxes that no longer exist (
no_mailbox, which would bounce with a reply like 550 5.1.1); - disposable addresses from throwaway mail services;
- addresses that accept mail but should not be mailed, such as known spam traps and complainers, which are
validwith the actionremove; - catch-all domains, where a single mailbox cannot be confirmed.
Step 1: Export the subscribed contacts
Skip the contacts Brevo already blocklists: it would not mail them, so checking them buys you nothing. Follow Export your contacts from Brevo:
- Go to CRM > Contacts. To export one list or segment, click Load a list or segment and pick it.
- Click Add filter > Marketing > Email > Email campaigns subscriptions > Subscribed, so only contacts who are not blocklisted from email campaigns remain.
- Select the checkbox in the CONTACT column, then Select all contacts.
- Click More actions > Export. EMAIL is selected by default; keep it, because it is how the re-import finds each contact.
- Pick a separator (semicolon or comma) and click Start export. Download the file from the notification under the bell icon.
Step 2: Verify the file
Upload the export as a bulk list in the dashboard. Our upload reads comma, semicolon, tab or | separated files, so either Brevo separator works; check that the email column was detected. You do not need to deduplicate first, and malformed addresses, duplicates and unknown results cost nothing (cost).
When the job is complete, download the results as CSV with your original columns (download options). Our columns follow yours in every row. Three of them matter here:
| Column | What it holds |
|---|---|
ev_status | valid, invalid, catch_all, unknown or disposable |
ev_reason | why, for example no_mailbox, spamtrap or role_account |
ev_action | send, send_with_caution, remove or retry_later |
Decide by ev_action, not by the status alone: a spam trap is valid, because the mailbox accepts mail, but its action is remove (actions).
Step 3: Re-import the results as contact attributes
Attributes are what Brevo segments and automations filter on. You can create them in Settings > Contacts > Contact attributes, on the Normal Attributes tab, with + Add a new attribute (Create and manage custom contact attributes), or while mapping the import. Use the Text type. Brevo's naming rules: at most 50 characters, letters, digits and underscores only, not starting with a digit, and up to 200 attributes per account. Choose carefully, because an attribute's name and type cannot be edited later.
Then import the result file, as described in Update the information of your contacts and Import your contacts to Brevo:
- In CRM > Contacts, click Import contacts, keep the Contacts card selected and click Continue.
- Choose Upload a file, select the result file and click Confirm your file.
- Map EMAIL to the email column and
ev_status,ev_reasonandev_actionto their attributes. Set every other column to Do not import, then click Confirm mapping. - Select the list the contacts came from, so you do not add them to a new one, and click Confirm your list.
- In Contacts management, keep Update the attributes of the existing contacts on, and leave Import empty fields to erase existing attribute data off.
- Check the opt-in confirmation only if it is true: these are contacts who agreed to hear from you. Click Confirm your import and read the import report.
Two re-import rules matter. Without an identifier such as EMAIL, Brevo imports the rows as new contacts and you get duplicates. And the blocklist toggles in step 5 apply to every contact in the file, so leave them off for this import, which contains everyone.
Step 4: Blocklist the contacts to remove
Build a segment on the attribute: in CRM > Contacts, click Add filter, pick your ev_action attribute among the contact attributes and filter on the value remove (Create a segment to filter your contacts; custom text attributes can be filtered by value, per What conditions are available to segment my contacts?). Save it with Save as segment if you want to reuse it. Then, following Brevo's list cleaning article:
- With the segment applied, select the checkbox at the top left of the table and click Select all contacts.
- Click Blocklist.
- Enter the number of contacts and click Blocklist again to confirm.
The alternative is a file. Filter the result file to the rows whose ev_action is remove and import it with Blocklist the imported Email contacts turned on (Import a list of blocklisted contacts). Brevo applies the blocklist choice to the whole file, so put only those rows in it.
Both ways blocklist contacts from email campaigns only. Brevo manages a contact's transactional email status one contact at a time, on the Preferences tab of their details page (Blocklist, unblock, or resubscribe contacts).
Step 5: Handle the caution and retry rows
send_with_cautioncovers catch-all domains, role addresses and a fewvalidreasons such aslow_engagement. Keep them, put them in their own segment, send to it less often and watch its bounces and complaints.retry_latermeans the check got no definite answer this time, for example because the receiving server was unavailable or deferred the check. Do not blocklist these; check them again in a few days.- Typos. An
invalidaddress with the reasonlikely_typomay come with a suggestion inev_did_you_mean. Do not replace the address without asking the person.
Blocklist, do not delete
Brevo is firm on this. Its Delete contacts article says deletion is permanent and recommends it only for data protection requests, such as a person asking you to delete their data. Its FAQ on deleting blocklisted contacts explains the risk: a deleted contact loses their blocklist status, so a later import can bring them back and you mail someone who was invalid or had unsubscribed. If you would rather not see them, move blocklisted contacts to a separate list instead.
Blocklisting can be undone only one contact at a time, from the contact's page. Brevo warns that resubscribing someone who asked to be blocklisted is illegal and can get the account suspended.
Engagement cleaning is a separate job
A deliverable address can still belong to someone who stopped reading. Brevo's list cleaning article recommends cleaning at least once a year, and more often when bounces, unsubscribes or complaints rise. It finds unengaged contacts with Contact attributes > Engagement status > Unengaged, a predefined segment you can adjust in the Unengaged Contacts setting (contacts using Apple Mail Privacy Protection are left out of it). It suggests a re-engagement email first, then blocklisting the contacts who stay unengaged; an automation workflow can do both. Our re-engagement and sunset policy guide covers how to choose the windows.
The same article says purchased or rented lists are prohibited in Brevo and recommends blocklisting all their contacts. Verification does not change that: it says whether mail can arrive, not whether the person agreed (bought email lists).
Questions
Does Brevo blocklist bounced addresses by itself?
Yes, after the bounce. A hard bounce blocklists the contact at once, and five consecutive soft bounces on email campaigns do too. Verification removes addresses that would bounce before you send to them.
Should I delete invalid contacts in Brevo?
No, blocklist them. Brevo recommends deletion only for data protection requests, and a deleted contact can come back with a later import without its blocklist status.
Try it
Upload your Brevo export for bulk email verification, or check one address in the free email checker.
Related
- Bulk lists: upload, cost and result columns.
- Statuses, reasons and actions.
- Glossary: suppression list.
- General list cleaning steps.
Related guides
- How to clean an email list
- Re-engagement campaigns and sunset policies
- Cleaning an email list in Klaviyo
- How to clean a Mailchimp audience
- Reduce your email bounce rate
- All guides
Sources
- Brevo: What are the different types of blocklisted contacts?: blocklist reasons per channel, credits, contact counts, transactional senders.
- Brevo: What are soft bounces and hard bounces in email?: bounce handling, the 36-hour retry, the five-soft-bounce rule, bounce filters.
- Brevo: View your blocklisted contacts: where campaign and transactional blocklists are shown.
- Brevo: Optimize and clean your contact list: cleaning frequency, unengaged contacts, bulk blocklisting, purchased lists.
- Brevo: Export your contacts from Brevo: export steps and the subscription filter.
- Brevo: Create and manage custom contact attributes: attribute types, naming rules and limits.
- Brevo: Import your contacts to Brevo and Update the information of your contacts: import steps, contacts management options, identifiers.
- Brevo: Create a segment to filter your contacts: segment steps.
- Brevo: What conditions are available to segment my contacts?: filtering on custom attributes and subscription status.
- Brevo: Import a list of blocklisted contacts and Blocklist, unblock, or resubscribe contacts: blocklisting by file and by selection, unblocking rules.
- Brevo: Delete contacts and Why not delete contacts who are blocklisted?: deletion versus blocklisting.
- Brevo: From Sendinblue to Brevo: the former name.
How we wrote this: drafted by the email-validation.org team with the help of AI writing tools, from our product documentation and the sources linked in the text.