You have a spreadsheet of leads. Maybe it came from a past client, an event list, a directory export or months of manual research. Now you want those people in an email campaign, and the import is where things quietly go wrong: names show up blank, the business name lands in the city field, duplicates get emailed twice, and dead addresses hurt your sending account.
This guide walks through the whole job, from a messy file to a campaign-ready list, with steps you can finish today.
Step 1: Save a copy and look at the raw file
Before touching anything, duplicate the original file. Work on the copy. If a cleanup step goes wrong, you can start again.
Then open it and check three things:
- Encoding. Save as CSV UTF-8. Plain "CSV" in some spreadsheet apps can turn accented names (José, Zoë) into garbage characters.
- One header row. Row 1 should hold column names, nothing else. Delete title rows, notes or merged cells above it.
- One lead per row. If a cell holds two emails separated by a comma or slash, split them into separate rows or pick the best one.
Step 2: Clean the columns that matter
You don't need every column perfect. You need the ones you will send to and personalize with.
- Trim spaces before and after the address.
- Lowercase it.
- Remove rows with no email, or move them to a separate file for phone outreach.
- Delete obvious junk: placeholder addresses, your own address, anything without an @.
Names
First names are where personalization breaks most visibly. "Hi JOHN," or "Hi john smith," reads like a mail merge. Split full names into first name and last name, and fix capitalization. If you are not sure of a first name, leave it blank rather than guessing; you can write the email so it still reads fine without one.
Business name, website, city, category
Strip legal suffixes where they sound stiff in a sentence ("Smith Plumbing LLC" often reads better as "Smith Plumbing"). Make websites consistent: either all with https:// or all without. Use one spelling per city.
Duplicates
Sort by email and remove repeats. Then sort by website or business name: two different addresses at the same small business usually means one person gets your email twice through different inboxes. Decide whether you want one contact per company.
Step 3: Rename headers to match your fields
Mapping is much easier when your headers already say what they are. A simple, clear set:
| Header in your CSV | What it holds |
|---|---|
| The address you will send to | |
| firstname | Contact's first name |
| name | Business name |
| website | Company site |
| city | City or area |
| category | Type of business |
Anything else you want to use later (last service date, rating, the reason you picked them, an opening line you wrote by hand) can stay as an extra column. You will map it as a custom field.
Step 4: Import and map the fields
Most outreach tools follow the same pattern: upload the file, match each column to a field, then choose where the leads go.
In GetClient, this happens in My Leads. You upload the CSV, map each column, add custom fields for the extra columns, and save the leads into a folder. Name folders by source and date (for example "Event list - March") so you can tell batches apart later and avoid mixing tested and untested lists.
Once mapped, the standard fields fill merge tags when you send. In GetClient they must be written exactly like this in your emails:
- {{params.name}} for the business name
- {{params.firstname}} for the first name
- {{params.website}}
- {{params.city}}
- {{params.category}}
After the import, open a handful of leads and check that each field landed where you expected. Five spot checks now save an embarrassing send later.
Step 5: Verify emails before the first send
A CSV from anywhere is only as good as its oldest row. People change jobs, businesses close, domains lapse. Sending to many dead addresses raises your bounce rate, which can hurt how inbox providers treat your account.
Run email verification on the list and drop addresses marked invalid. Treat "risky" or "unknown" results with care: you might send to them in a smaller, separate batch. GetClient lets you verify a list before sending; check plans and credits for how verification uses credits.
Also check where the list came from. If you are emailing people in the EU or UK, or the source is unclear, read up on GDPR for outreach and check the rules that apply to you. This is not legal advice, but at minimum you should know why each person is on your list and give an easy way to opt out.
Step 6: Build the campaign and preview real rows
With clean, verified leads in a folder, set up your sequence. A short drip campaign of three or four steps with a few days between them is a sensible starting point.
Write with your fields in mind. If some leads have no first name, use an opening that doesn't need one, like "Hi there" or a sentence that starts with {{params.name}}. A custom column you prepared, such as a hand-written reason for reaching out, often does more than any standard tag.
Before scheduling, preview each step against several different leads, including ones with missing fields. Look for blank gaps, odd capitalization and double spaces. For a stronger first impression, work on your cold email subject lines too.
Finally, start with a modest daily send limit from each connected account and raise it gradually as you watch bounces and replies.
Step 7: Watch the first batch closely
The first few days tell you whether the import worked. Check bounces first: a high number means the verification step missed something or the source was stale. Then look at replies and opens per step. Our guide on campaign metrics that matter explains which numbers to act on.
If something looks off, pause, fix the list or the copy, and restart. A clean import is the cheapest way to protect your sending reputation.