1. Home
  2. Free tools
  3. Email list tools
  4. CRM export to email list

CRM export to email list: drop opt-outs and bounces from a Salesforce, HubSpot, Zoho or Pipedrive export

In short: Reads a contacts or leads export from Salesforce, HubSpot, Zoho CRM, Pipedrive or another CRM, finds the opt-out, bounce and marketing-status columns by name, and splits it into a send list and a set-aside file with the reason per address. Repeats merged; an opt-out on any copy wins. Limit: It reads the columns in the export; an opt-out field left out of the export can't be honoured here.

To build a send list from a CRM export, export contacts or leads with Email, the opt-out field (Email Opt Out in Salesforce and Zoho, Unsubscribed from all email in HubSpot, Marketing status in Pipedrive) and bounce fields, and upload it here. Opted-out, bounced and non-marketing contacts are set aside with the reason; the rest download as a clean CSV.

Price: this tool is free. Checking a whole email list is from $9/mo, and the first 100 checks are free with Google, no card. See pricing

Runs in your browser. Nothing is uploaded.
Options
Sample result from the CRM export to email list
Show the sample result as

Sample result

3 of 5 CRM contacts are ready to send; 1 opted out and 1 bounced.

Ready to send
3 contacts
Records read
7
Read as
Salesforce

What this means for you

Opt-out, bounce and marketing-status columns are found by name; any opt-out on a repeated address wins.

Next step:Verify the cleaned list
  • Email Opt Out and unsubscribes
  • Bounce reason and quarantine
  • Non-marketing contacts optional
  • Reason per removed address
  • CRM
  • Opt-out
  • CSV

By SimpleVerifier Team · Last updated · Runs in your browser; nothing you paste is sent to us

How do I build a send list from a CRM export?

  1. Export contacts or leads from your CRM as CSV or Excel. Include the email field and the opt-out and bounce fields: Salesforce Email Opt Out and Email Bounced Reason, HubSpot Unsubscribed from all email, Marketing contact status and Email hard bounce reason, Zoho Email Opt Out, Pipedrive Marketing status.
  2. Upload it here, or paste it. The CRM is recognised from the column names.
  3. Tick Also read secondary email columns if you want every address on a record, and Keep non-marketing contacts if this is a sales or service send, not marketing.
  4. Download the send list, and the set-aside file to fix the records in the CRM.

Example

You enter
A Salesforce contacts report with 7 rows and Email Opt Out, Email Bounced Reason and Email Bounced Date columns; one contact appears twice in different case, one has no email.
You get
3 addresses ready to send. leo@northwind.example is set aside as opted out (the opt-out on one copy applies to both), and mia.chen@outlook.com as bounced with the 550 5.1.1 reason.
Limits
Runs in your browser with no row cap; an uploaded file can be up to 25 MB.

Which columns mean a contact has opted out?

Salesforce: Email Opt Out (API name HasOptedOutOfEmail, exported as 1/0 or true/false). HubSpot: Unsubscribed from all email, plus Marketing contact status for contacts you don't count as marketing contacts. Zoho CRM: Email Opt Out. Pipedrive: Marketing status (Subscribed, Unsubscribed, No consent, Archived). Generic exports often use Do Not Email or Unsubscribed.

Bounces show up as Email Bounced Reason and Email Bounced Date in Salesforce, Email hard bounce reason and Email address quarantined in HubSpot. Any value there sets the address aside with the bounce text as the reason.

Why does an opt-out on one record remove the address everywhere?

Because the person opted out, not the record. CRMs often hold the same address as a lead and a contact, or on two duplicate contacts, and only one of them has the opt-out ticked. Mailing the other copy is still mailing someone who said no. The tool merges by email and lets any opt-out or bounce win.

Honouring opt-outs is a legal requirement, not just good practice: the FTC's CAN-SPAM guide requires opt-outs to be honoured within 10 business days, and Gmail and Yahoo require bulk senders to honour unsubscribes (Gmail sender guidelines).

Why check a CRM list if bounces are already flagged?

A CRM only marks an address as bounced after you mailed it from a connected tool. Contacts imported from events, enrichment or old spreadsheets, and contacts nobody has emailed since they changed jobs, look fine in the CRM until the first send bounces.

A mailbox check finds those before the send; the first ones are free under the result. To write the results back, see re-importing verified emails into HubSpot.

Is this faster than filtering the report in the CRM?

This toolCRM report filter
Opt-out, bounce and marketing statusAll three at onceOne filter each
Same address on a lead and a contactAny opt-out winsEach record filtered separately
What was removed and whySet-aside file with reasonsRows simply missing
Works across CRMsSalesforce, HubSpot, Zoho, PipedriveOne CRM

Who uses this tool, and for what?

Sales ops
Export a Salesforce report and hand a sequencing tool a list with opt-outs and bounces already removed.
Marketing teams
Move HubSpot contacts to another platform without carrying unsubscribed or non-marketing contacts across.
Agencies
Clean a client's CRM export before a campaign, with a set-aside file to show what was removed and why.
Founders
Check a Pipedrive export for no-consent contacts before a newsletter.

What can’t this tool tell you?

  • It reads the columns in the export; an opt-out field left out of the export can't be honoured here.
  • Custom opt-out fields with unusual names may not be recognised.
  • It can't tell which addresses still have a working inbox.
  • It doesn't write anything back to the CRM.

Common questions

How do I export emails from Salesforce without opted-out contacts?
Add Email Opt Out to a contacts or leads report and export it, then upload it here. Or filter the report on Email Opt Out = False before exporting; the tool still catches bounces and duplicates.
Does it work with HubSpot exports?
Yes. Export contacts with Unsubscribed from all email, Marketing contact status and Email hard bounce reason included. Non-marketing contacts are set aside unless you tick the option to keep them.
What about Pipedrive's Person - Email - Work columns?
They are read as the primary email. Home and Other email columns are read when you tick Also read secondary email columns.
Does it change anything in my CRM?
No. It only reads the exported file. Use the set-aside file to update the records yourself.
Is my CRM export uploaded?
No. It is read in your browser. Nothing is sent unless you choose to check the addresses afterwards.

Sources

A tidy list can still be full of dead addresses.

Extracting, deduplicating and syntax checks all work on the text of an address. None of them can tell whether the mailbox exists. Only the server that hosts it can answer that, through an SMTP check, and that is what the paid product does.

  • Upload the cleaned file as it is: CSVs up to 100,000 rows
  • A real SMTP mailbox check on every row, with catch-all detection
  • Small list? Starter at $9/mo covers 2,500 emails a month, cancel anytime

One plan, cancel anytime, no contract. Sign in with Google and your first 100 email checks are free, no card. The free tools stay free either way.

Clean your next list before it bounces

100 free email checks when you sign in with Google, no card. Then monthly plans from $9, or one flat price with fair use, never cut off.

100 free checks, no card Cancel anytime Secure payment by Stripe