A CSV file (comma-separated values) is a plain text file that stores a table: each line is one row, and commas separate the values in each column. The first line usually holds the column names, so any spreadsheet, CRM or email tool can read it without special software.
Why CSV files matter when you do outreach
Almost every lead list you touch will pass through a CSV at some point. You export leads from a scraper, upload them to a verifier, download the clean results, then import them into a sending tool. Each hop is a chance for something to go wrong: a column gets renamed, an accent turns into garbage characters, or a phone number loses its leading zero.
The CSV is also where your personalization lives. If a column called firstname is empty or mislabeled, every email that uses a first name merge tag goes out broken. A clean file means emails that read like they were written for one person. A messy one means "Hi ," in a stranger's inbox.
It also connects your tools. Your CRM, your spreadsheet and your campaign software probably don't talk to each other directly, but they can all read and write CSV.
A concrete example
Say you are a web designer targeting roofing and HVAC companies in two cities. Opened in a text editor, your file might look like this:
name,firstname,email,website,city,category
Northside Heating,Dana,dana@northsideheating.com,northsideheating.com,Leeds,HVAC contractor
"Smith, Sons & Co",Mark,info@smithsons.co.uk,smithsons.co.uk,York,HVAC contractor
A few things to notice:
- Row one is the header. Tools use it to map columns to fields.
- The second business name contains a comma, so it is wrapped in quotes. Without them, the tool would think "Sons & Co" is a new column and shift everything over.
- Each column has one kind of data. City is not mixed into the address column, which makes it usable for personalization and filtering.
In a sending tool, those columns can then fill tags in your template. In GetClient, for instance, that template line could read: "Hi {{params.firstname}}, I was looking at {{params.website}} and noticed a few things other {{params.category}} businesses in {{params.city}} are doing differently."
Common mistakes that break a CSV
Saving in the wrong encoding
If names like "Zoë" or "Müller" turn into strange symbols after import, the file was saved in an encoding the tool didn't expect. Save as "CSV UTF-8" when your spreadsheet offers it.
Letting the spreadsheet reformat data
Spreadsheets love to be helpful. They strip leading zeros from phone numbers, turn long numbers into scientific notation, and convert things that look like dates into dates. Format phone and ID columns as text before you save, or check the file in a text editor.
Several values in one cell
A cell with three email addresses separated by semicolons will often import as one invalid address. Pick the best email per row, or split extras into their own columns.
Vague or duplicate headers
Columns named Column1, Email 2 or two columns both called Name make mapping guesswork. Use short, clear headers that say exactly what is inside.
Skipping verification
A CSV happily stores addresses that bounce. Sending to a list full of dead addresses hurts your sender reputation. Run email verification on the file before any campaign.
Forgetting the people who opted out
If you merge an old list with a new one, unsubscribed addresses can sneak back in. Keep a suppression list and remove those rows. Rules like CAN-SPAM require honoring opt-outs; check the rules that apply where you and your recipients are.
A quick checklist before you import
| Check | Why |
|---|---|
| Header row present and clearly named | Fields map correctly |
| Saved as UTF-8 | Names and accents survive |
| One value per cell | Emails and tags work |
| Duplicates removed | No one gets the same email twice |
| Emails verified | Fewer bounces |
| Opt-outs removed | You respect unsubscribes |
| Empty personalization cells filled or rows excluded | No "Hi ," emails |
Open the file in a plain text editor once before importing. Spreadsheets hide problems that the raw text shows immediately.
What to do next
If you build lists by hand from search results, start with a consistent column structure and stick to it every time. The guide on how to get emails from Google Maps walks through collecting the fields that matter.
Also ask whether you need to move CSVs around at all. Every export and re-import between a scraper, a verifier and a sender adds a place for mistakes. In GetClient, leads found through the Google Maps scraper, verified and emailed all stay in one place, so you only touch a CSV when you want to: importing a list you already have into My Leads (with custom fields), or exporting to CSV, an Instantly-ready CSV or GoHighLevel. The scrape to send workflow shows how that fits together, and new accounts get 100 free credits with no card; see plans and credits for the rest.