You pulled a few hundred leads, and now the list is messy. Duplicate businesses, generic inboxes, blank first names, cities spelled three ways. Send to it as-is and you get bounces, awkward emails that say "Hi ," and a sending account that starts landing in spam.
This checklist fixes that. Copy it into a doc or spreadsheet tab and tick each box per list.
Step 1: Set up the working file
- Keep the original export untouched. Work on a copy.
- Add a Status column with values: keep, fix, remove.
- Add a Removed reason column so you can spot patterns later.
- Make sure these columns exist, even if empty: business name, first name, email, website, city, category.
Those last columns map to the merge tags you will use: {{params.name}}, {{params.firstname}}, {{params.website}}, {{params.city}} and {{params.category}}. If a column is wrong, every email built from it is wrong.
Step 2: Remove duplicates
- Dedupe by email address (lowercase everything first).
- Dedupe by website domain. Two locations of the same chain often share one inbox.
- Dedupe by phone number to catch the same business listed twice under slightly different names.
- Decide on chains: one contact per company, or one per location. Write the rule down and apply it consistently.
- Check against people you already emailed or who unsubscribed. Remove them.
Step 3: Verify the emails
- Run every address through an email verifier before sending.
- Remove addresses marked invalid.
- Put "risky" or "unknown" results in a separate small batch, or drop them if your sending account is new.
- Remove obvious typos the verifier missed (gmial.com, .con).
- Remove role addresses you do not want: noreply@, abuse@, postmaster@. Keep info@ or hello@ for small local businesses, where they are often read by the owner.
In GetClient you can run verification on a saved list right before building the campaign, so you do not export to a separate tool and back.
Step 4: Clean the merge tag fields
This is the step people skip, and it shows in the email.
Business name ({{params.name}})
- Strip keyword stuffing: "Joe's Plumbing | 24/7 Emergency Plumber Near Me" becomes "Joe's Plumbing".
- Remove legal suffixes if they read stiffly: LLC, Ltd, Inc.
- Fix ALL CAPS into normal case.
First name ({{params.firstname}})
- Only fill it when you are fairly sure. If an owner name came with a confidence score, keep high-confidence names and blank the rest.
- Remove values that are not names ("Admin", "Office", "Team").
- Capitalise properly: "mARIA" becomes "Maria".
- For blank names, plan a version of your template that does not need one ("Hi there," or open with the business name).
Website ({{params.website}})
- Remove tracking parameters and long paths. Keep the clean domain.
- Flag leads whose "website" is only a social page. They may need a different pitch.
City and category ({{params.city}}, {{params.category}})
-
Standardise spelling and case for each city.
-
Rewrite categories into how a person would say them: "Pest control service" becomes "pest control".
-
Final check: read five random rows aloud inside your actual opening line. If any sounds odd, fix the column, not the single row.
Step 5: Remove leads you should not email
- Businesses permanently closed or with no recent activity on their listing.
- Companies that are clearly outside your offer (wrong category, wrong size, wrong country).
- Personal-looking addresses where you have no business reason to contact the person.
- Anyone in a region whose rules you have not checked. B2B cold email rules differ by country; read our GDPR cold email B2B notes and check the rules that apply to you. This is not legal advice.
Step 6: Segment before you send
- Split by category so each segment gets a relevant message (for example, gyms and pest control should not get the same email).
- Split by city if you mention location.
- Split "has first name" vs "no first name" so each gets the right template.
- Keep segments small enough to send within your account limits. See Gmail daily sending limits before you plan volume.
Step 7: Pre-send test
- Preview each step of the campaign with three real rows, including one with a blank first name.
- Confirm an unsubscribe link is present.
- Send a test to yourself and read it on a phone.
- Write down the clean count: started with X, removed Y, sending to Z. Useful when you compare lists later.
Quick reference table
| Problem | Fix | Remove? |
|---|---|---|
| Duplicate domain | Keep one contact per your rule | Extras |
| Invalid email | None | Yes |
| Risky email | Small test batch | If account is new |
| Keyword-stuffed name | Trim to real name | No |
| Low-confidence first name | Blank it | No |
| Unsubscribed before | None | Yes |
| Wrong category | None | Yes |
Keep lists cleaner from the start
The less junk you collect, the less you clean. Tight keywords and specific cities produce better raw lists; the Google Maps scraper guide covers how to set searches up. Once your list is clean and the campaign is live, have your reply handling templates ready so good replies do not sit unanswered.