CSV enrichment takes a file of names, domains, or emails and returns it with the missing columns filled. Company websites, industries, headcounts, verified emails, appended to the rows you already have. In this guide, I’ll show you the do-it-yourself methods first, then the two real routes for bulk work: uploading the file to a platform, or running an add-on on it inside Google Sheets.
I’m going to be honest with you. The worst CSV I ever enriched was 1,800 rows typed by trade-show booth staff. “Google?” was a company name in it. So was “IBM maybe.” I’ll tell you what that file taught me in a minute.
Let’s get into it.
📌 TL;DR: Three ways to enrich a CSV: (1) join it against files you already own with lookup formulas: free, but limited to data you already have; (2) upload it to an enrichment platform: pick a service, map the input column, run, download; (3) import it into Google Sheets and run an enrichment add-on on the columns in place. Past ~50 rows, use route 2 or 3.
What Is CSV Enrichment?
CSV enrichment matches each row of a CSV file against a data source and appends the missing fields. You give it an identifier per row (a company name, a domain, an email) and it gives you back the same file, wider. More columns, fewer blanks.
Why CSV, specifically? Because CSV is the exchange format every business tool speaks. Your CRM exports it. Your event platform exports it. Your billing system exports it. Whenever data moves between tools that don’t talk to each other, it travels as a CSV, so the CSV is where the gaps show up.
The mental model is simple: input column → matched record → output columns. The file’s contact data or company identifiers go in; firmographic data (industry, size, revenue band, website) comes back attached to each row.
And here’s a fun fact that explains a lot of CSV pain: there is no official CSV standard. The closest thing is RFC 4180, a memo from 2005, which is why every tool parses commas, quotes, and encodings a little differently. Keep that in mind. It comes back in the mistakes section.
🔍 Did You Know? CSV never got a real standard. RFC 4180 (the format's closest thing to a spec) is an informational memo from 2005. That's why one tool's perfectly fine CSV is another tool's shifted-columns disaster.
But maybe you don’t need a platform at all. Let’s check the free routes first.
How Do You Enrich a CSV Without a Platform?
You can join it against data you already own, research rows by hand, or run one-off lookups. Each works. Each has a ceiling. Here’s the honest version.
The Spreadsheet Join
If the missing data exists in ANOTHER file you own (last year’s export, a purchased list, a teammate’s sheet), you don’t need enrichment. You need a join. Open both files in a spreadsheet, use VLOOKUP or XLOOKUP on a shared key, and merge them.
The honest catch: a join only rearranges data you already possess. It cannot create a field nobody in your org has. If no file anywhere contains Bluepine Software’s employee count, no formula will conjure it. That’s the line between merging and enriching, and it matters enough that I wrote a whole section on it in the data enrichment in Excel guide.
Manual Research
Google each company. Open its site. Copy the industry, the headcount from LinkedIn, the website. At 2-3 minutes per row, this is genuinely fine for 20-30 rows. You’ll even catch nuances a database misses.
But do the math before you commit. 1,800 rows at 2.5 minutes each is 75 hours. That’s not a task. That’s a bad month.
One-Off Lookup Tools
Single-search lookup tools exist for almost every field: domain finders, email finders, company profilers. The catch is the loop: search, copy, switch tabs, paste. Per row. The CSV format was invented to move data in bulk, and the one-at-a-time loop throws that advantage away.
So past roughly 50 rows, you want one of the two bulk routes. Here they are.
What Are the Two Real Routes for Bulk CSV Enrichment?
Upload the file to an enrichment platform, or run an add-on on it inside Google Sheets. Both end in the same place (a full file), so the choice comes down to where you want to work.
Route 1: the upload route. In CUFinder’s Enrichment Engine, you pick a service, upload the CSV, map which column holds the input, and run. When it finishes, you download the enriched file, or push the results straight into your CRM. This is the route when the file lives on your desktop and you want it back as a file. It’s also what people mean by a csv enrichment service or “csv enrichment online”: the file goes up, the fuller file comes down.
Route 2: the spreadsheet route. Import the CSV into Google Sheets (File > Import handles it) and run an enrichment add-on on the columns in place. This is the csv enrichment tool for Google Sheets approach, and it wins when the sheet IS your workspace: you’re filtering, scoring, and sharing the list right there anyway.
Two honest expectations, whichever route you take. First, unmatched rows come back empty everywhere: no provider matches 100% of rows, and empty is more honest than guessed. Second, know your ceilings: Google Sheets caps a file at 10 million cells, so a truly monstrous CSV gets split or goes through Route 1.
The upload route explains itself on screen. So let’s walk the spreadsheet route properly.
How Do You Enrich a CSV in Google Sheets With the Add-On?
Import the file, install the add-on, pick a service, map input and output columns, and run your rows. Step by step:
- Install the add-on. Grab the CUFinder add-on from the Google Workspace Marketplace. If add-ons are new to you, Google’s help page covers how they install.
- Copy your API key. Head to your CUFinder dashboard and copy the API key from there.
- Enter the key in the add-on. Paste it once and you’re connected.
- Pick the right service. Open the add-on from the Google Sheets menu. It opens as a right panel listing all the enrichment services. Your input column decides the pick: company names or domains → Company Enrichment, which returns the firmographic profile.
- Map columns, set the range, run. Set the input column, the output column, and the row range (rows 2-1801, say, to cover a 1,800-row file minus the header). Then run it.
Before you run anything, though, spend an hour on hygiene. I learned this the expensive way. My trade-show file matched only ~58% on the first run, not because the database was thin, but because the input column was chaos. Duplicate rows, “Google?”, trailing spaces, two companies crammed into one cell.
So now I run a pre-flight checklist every time:
- One company or person per row: split the crammed cells.
- Names as the company writes them: “Bluepine Software,” not “bluepine sw.”
- Duplicates removed: Sheets does this under Data → Data cleanup → Remove duplicates.
- A raw copy saved somewhere the run can’t touch it.
After that hour of cleanup, the re-run matched ~84%. Same file. Same tool. The input hygiene set the ceiling, not the database.
📌 Example: My 1,800-row trade-show CSV: first enrichment run matched 58%. One hour of cleanup (dedupe, name fixes, splitting crammed cells), and the re-run matched 84%. The tool didn't change. The file did.
What About Contact and Lead-List CSVs?
Same workflow, person-side services: name and company in, email, title, phone, and LinkedIn out. This is the file most marketers actually hold: the webinar export, the event badge scan, the half-filled lead list from three campaigns ago.
For those, the service pick changes. A column of people plus their companies feeds Contact Enrichment, which returns the work email, phone, job title, and LinkedIn profile per person. That’s customer profile enrichment in practice: the attendee list becomes an outreach-ready sheet, and your CRM finally gets records worth syncing.
Two person-side honesty notes. People data ages faster than company data (job changes outpace industry changes), so verify before any send. And a lead list deserves more than one field; the full lead enrichment pass and the email list enrichment workflow both have their own guides in this folder.
A Worked Example: 5 Rows, Before and After
Say your imported CSV looks like this, with company names in column A and three empty columns waiting:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Company | Website | Industry | Employees |
| 2 | Hansel Logistics | |||
| 3 | Bluepine Software | |||
| 4 | Corvid Analytics | |||
| 5 | Marlow & Sons | |||
| 6 | Tidewater Robotics |
Then I ran the add-on: Company Enrichment, input column A, output columns B through D, rows 2 to 6. A minute later, the same sheet looked like this:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Company | Website | Industry | Employees |
| 2 | Hansel Logistics | hansellogistics.com | Freight & Logistics | 201-500 |
| 3 | Bluepine Software | bluepinesoftware.com | Software Development | 51-200 |
| 4 | Corvid Analytics | corvidanalytics.com | Data Analytics | 11-50 |
| 5 | Marlow & Sons | marlowandsons.com | Food & Beverage | 51-200 |
| 6 | Tidewater Robotics | tidewaterrobotics.com | Industrial Automation | 11-50 |
Happy with the five test rows? Change the range to the full file and run it for real. When it’s done, File > Download > Comma Separated Values brings the enriched CSV back to your desktop, or leave it in the sheet and keep working.
→ 1,800-row export → import to Sheets → one cleanup hour → one run → an enriched file your whole team can actually use.
And if your bare list came out of a data tool with export limits (a certain startup database comes to mind), the export-CSV alternative guide in this folder covers that path too.
What Mistakes Should You Avoid With CSV Enrichment?
The big ones: letting Excel mangle the file, unquoted commas, enriching duplicates, and overwriting your originals. Most of these have bitten me at least once, so here’s the scar map.
- Letting Excel mangle the file on open. Excel loves to “help”: it strips leading zeros, rewrites dates, and mis-detects encodings. Microsoft’s own CSV import guide shows the safe import path. Use it, or open the file in Sheets instead.
- Unquoted commas inside fields. “Marlow & Sons, Inc.” without quotes becomes two columns, and every field after it shifts right. That’s the RFC 4180 problem in the wild. If a column looks scrambled, check the commas first.
- Enriching before deduplicating. Duplicate rows mean paying twice for the same company. Run deduplication before the run, not after.
- Overwriting original columns. Enriched output belongs in NEW columns. Good data cleansing practice keeps the source column untouched so you can always tell what came from where.
- Forgetting the people rules. When the CSV contains individuals, GDPR applies: you need a lawful basis such as legitimate interest for B2B processing, plus an easy opt-out.
- Treating the enriched file as done forever. Fields age. Titles change, companies move, domains die. Re-run the file before any big campaign rather than trusting last quarter’s version.
💡 Pro Tip: Keep an untouched copy of the raw CSV before any enrichment run, and write results into new columns only. When something goes sideways (wrong column mapped, bad import), the raw copy turns a disaster into a do-over.
FAQ: CSV Enrichment
What does CSV stand for?
Comma-separated values: a plain-text file where commas divide the columns. It’s the simplest format that every spreadsheet, CRM, and database can read, which is exactly why B2B data travels in it.
What is an example of data enrichment?
A three-column file (name, company, email) comes back with eight columns: title, phone, LinkedIn, industry, headcount added. Same rows, more fields. That widening is enrichment in one sentence.
What is the best data enrichment tool?
It depends on your input columns and where you work. File-on-desktop people want an upload service; spreadsheet-native teams want an add-on. Compare match rates on a sample of YOUR file, not the vendor’s demo data.
What are CSV skills?
The practical ones: importing and exporting cleanly, handling delimiters and quoted fields, fixing encodings, mapping columns, and deduplicating. None of them are glamorous. All of them decide whether your enrichment run matches 58% or 84%.
Can I enrich a CSV file online for free?
Partly. Manual research is free, and most platforms, CUFinder included, offer free credits to start. Fully free bulk csv enrichment doesn’t really exist; at scale, you pay in either credits or hours.
How do I convert an Excel file to CSV?
File > Save As > CSV in Excel, or File > Download > Comma Separated Values in Google Sheets. One warning: check leading zeros and dates after converting: CSV keeps values, not Excel’s formatting.
How big a file can I enrich?
Platform limits vary, so check yours. In Google Sheets the hard ceiling is 10 million cells per spreadsheet. For anything enormous, split the file into batches. Smaller runs are also easier to sanity-check.
It’s Time to Retire the Half-Empty CSV
You know the three routes now. Joins for data you already own. The upload route when you want the file back as a file. The Sheets route when the spreadsheet is home.
Picture the next export that lands in your inbox: you import it, clean it for an hour, run it once, and send the team a file with every column full. No 75-hour month. No “IBM maybe.” That’s my normal now, and it can be yours.
CSV enrichment is one workflow of many, too. The whole data enrichment in Google Sheets hub covers the rest: company enrichment in Google Sheets, emails, tech stacks, all of it. Tell me in the comments: how many rows is YOUR messiest file?