Cleaning a B2B contact list means checking every row before a campaign goes out: is the person still at the company, is their title still right, will their email deliver, and should they hear from you at all. The output is a decision per contact, not just a pass or fail on the email.
A list goes stale on its own. In Lusha’s study of 148,000 records, 12.25% of US sales leaders changed roles in 12 months. A list you built last spring already has people on it who’ve moved, been promoted, or left the company.
What a clean list protects
Your sender reputation. Emails to addresses that no longer exist bounce, and recipients who don’t recognize you mark mail as spam. Google asks senders to keep their spam rate below 0.1% and never let it reach 0.3%. Mail sent to the wrong people pushes that number the wrong way.
Your personalization. A message that opens with the wrong title, or congratulates someone on a role they left, tells the reader the list is old.
Your reps’ time. Every call to a dead number or a person who’s gone is a call that didn’t reach a buyer.
How to clean a B2B contact list before a campaign
1. Export the fields you’ll check. Name, company, domain, email, title, phone, and the last date anyone touched the record. Without the domain, matching gets harder.
2. Remove duplicates. Merge the same person listed twice and the same company under two spellings, so nobody gets the email twice.
3. Take out people who shouldn’t hear from you. Unsubscribes, opt-outs, competitors, and, for a prospect campaign, customers and contacts in open deals.
4. Check who’s still at the company. Match each person against current data. Anyone who left goes to a separate list, not the bin.
5. Check titles against the message. If the email is written for directors of sales operations, a person now running all of revenue needs a different version, or a different email.
6. Verify the emails. Keep high-confidence addresses. Drop or hold the rest rather than sending and finding out from the bounce report.
7. Replace the people who left. Find who now holds the same role at the same company. That’s often the best row on the list: a new person who hasn’t heard from anyone yet.
8. Decide per row. Send, update first, or don’t send. Count each, so you can see how much of the list you’re removing before you launch.
9. Recheck before the next send. Clean before every campaign, not once a year. A list that passed in March doesn’t pass in October.
What to check on every row
| Check | What it catches |
|---|---|
| Still at the company | Catches people who left before the email reaches their old inbox. |
| Current title | Stops a message written for a director from reaching someone promoted to VP, or moved to another team. |
| Email validity and confidence grade | Separates addresses you can send to from ones likely to bounce. |
| Duplicate record | Stops the same person getting the same email twice. |
| Opt-out and suppression status | Keeps people who asked not to hear from you off the list. |
| CRM and deal status | Keeps prospect campaigns away from customers and open deals. |
| Phone and Do Not Call flag | Clears a call list before a dialing block, where it applies. |
| Replacement contact | Turns a person who left into the person who now holds the seat. |
List cleaning checklist
- Duplicates are merged.
- Unsubscribes, opt-outs and suppressed contacts are removed.
- Customers and open deals are out of prospect campaigns.
- Every contact’s employer and title have been checked against current data.
- Low-confidence emails are held back.
- People who left have a replacement, or a note saying the seat is open.
- Each row has a send, update or don’t send decision.
- A recheck date is set before the next campaign.
Common mistakes
Verifying only the email. An address can deliver and still belong to someone in a different job. Check the person, not just the inbox.
Deleting people who left. Their seat didn’t disappear. Find who’s in it now.
Cleaning once a year. People move every month. Clean before each send.
Sending to everything that passes. A valid email on someone outside your audience is still the wrong send.
Paying to re-check people you’ve already revealed. In Lusha, re-viewing a contact you’ve already revealed costs nothing, so recheck freely.
How to clean a contact list with Lusha
Lusha checks each row against current data: whether the person is still at the company, their current title, and whether the email and phone are verified. Emails come with a confidence grade, and phones carry a Do Not Call flag where it applies.
In Lusha Workspace. Import the list or pull it from Salesforce or HubSpot into a table, add Lusha data columns, and enrich the rows you need. Export the clean list back to your CRM or sequencer.
In Claude or ChatGPT. Connect Lusha, paste the list, and ask for a decision per row. The assistant checks each contact and finds replacements for people who left.
Through the API. Run the check on every list before it reaches your sequencer, so cleaning happens automatically instead of before each campaign.
What it costs: rows with no match cost nothing, and re-viewing a contact you’ve already revealed is free. A new email reveal costs 1 credit and a phone 5. The full breakdown is in how Lusha credits work.
Example prompt: clean a list before a campaign
Here's my campaign list: [paste rows with name, company, email and title].
For each contact, check with Lusha:
- are they still at this company
- is the title still current
- is the email still valid, and what is its confidence grade
Return one decision per row:
- SEND
- UPDATE FIRST (with what to update)
- DO NOT SEND (with the reason)
For anyone who left, find who now holds the same role at that company. Don't reveal their contact details yet.
Finish with a count of each decision and the share of the list you'd remove.Paste your rows into the brackets and run it. Replacements come back without contact details, so you reveal only the people you’ll actually email.
FAQ
How do I clean a B2B email list?
Remove duplicates and opt-outs, check that each person is still at the company with the same title, verify each email, replace the people who left, and decide per row whether to send, update or hold.
What’s the difference between email verification and list cleaning?
Email verification checks whether an address will deliver. List cleaning also checks whether the person behind it is still the right person to receive the message.
How often should I clean a contact list?
Before every campaign. People change roles every month, so a list that was clean last quarter isn’t clean now.
What should I do with contacts who left the company?
Move them to a separate list and find who now holds their role. You can also follow the person to their new company, which is often a warm lead.
Can I clean a contact list in Claude?
Yes. Connect Lusha to Claude, paste the list, and ask for a send, update or don’t send decision on each row.
Does it cost credits to re-check contacts I already revealed?
No. Re-viewing a contact you’ve already revealed costs nothing, even in a later session. Rows with no match are free too.