The CSV in between
Nine free tools for the file you export, fix, and import back into your CRM. They’re the ones I wanted for most of the last 20 years.
I’ve spent about 20 years in CRM and martech: implementations, platform switches, and more cleanup projects than I can count. If you asked me where the hours actually went, I wouldn’t say the CRM. I’d say the CSV.
Almost every CRM project has one. Someone exports contacts from one system, tidies them up in Excel, and hands over a file to import into another. That file is where things go sideways. Phone numbers arrive in five formats. The same company is spelled three ways. There’s a Full Name column when the new system wants First and Last. Then the import runs, and some of the rows quietly don’t make it.
None of this is hard, exactly. It’s tedious, and the usual options were a spreadsheet formula, a script someone wrote once and nobody can find, or a full platform you had to buy and connect first.
So we built nine small, free tools for that file. They run in your browser, there’s no signup, and your file never leaves your machine. Here are the six I would have reached for most.
1. Check the file before the platform does
The most expensive import is the one you run three times. Every platform has its own rules about required columns, header names, file and row limits, and date formats. Most of them tell you about a violation only after the import starts, and some import the good rows and skip the rest without much fanfare.
The CRM Import Checker runs those rules against your file first. Pick HubSpot, Salesforce, Klaviyo, Mailchimp, or Shopify, drop in the CSV, and it lists blockers and warnings with the affected rows:
- Missing required columns, and headers that won’t map automatically
- File size and row limits for that platform
- Invalid or blank email addresses
- Dates in a format the platform doesn’t accept
- The damage spreadsheets do on their own: ZIP codes that lost their leading zeros, phone numbers turned into 1.23E+11, accented names mangled by a non-UTF-8 save
That last group is the one that used to get me. Nobody types 1.23E+11 into a CRM. Excel does it for you, helpfully, on the way through.
2. Find the duplicates before you import them
Duplicates are cheaper to remove from a file than from a CRM. Once they’re in, they’ve picked up activity, owners, and list memberships, and merging them turns into a project.
The CSV Dedupe Tool finds rows that match on the columns you choose: one to three of them, like email, or last name plus email. Exact matching ignores capitalization and stray spaces. A looser mode also ignores punctuation and email +tags, so jane+news@ and jane@ count as the same person. You get two downloads: a deduplicated file, and a file of just the duplicates so you can see what was removed. It handles up to 5,000 rows.
It won’t tell you that Jon Smyth at Acme and Jonathan Smith at ACME Industrial are one person with two email addresses. No column comparison can. It will catch the re-imports and copy-paste doubles, which in my experience is most of the count.
3. Five phone formats in, one format out
(312) 555–0142, 312.555.0142, and 3125550142 are the same number. Your CRM, your dialer, and your SMS tool are not convinced, and neither is any dedupe logic that compares phone numbers.
The Phone Formatter converts a phone column to E.164, the international format those systems expect: a plus sign, the country code, then the number, like +13125550142. A default country fills in numbers written locally, and numbers that already carry a country code keep it.
Get William Flaiz’s stories in your inbox
Join Medium for free to get updates from this writer.
The part I like most is what it doesn’t do. A value it can’t confidently format is left exactly as it was and flagged in an issues report, rather than “fixed” into something wrong. A wrong phone number that looks right is worse than a messy one.
4. One company, one spelling
Acme Inc, Acme, Inc., and acme incorporated are one company with three opinions about punctuation. In a CRM they become three accounts, and every report rolled up by account is quietly wrong.
The Company Normalizer groups names that differ only in capitalization, punctuation, spacing, the word “the,” or the legal suffix. It suggests the most common spelling in your file as the one to keep, tidies suffixes (inc becomes Inc., llc becomes LLC), and lists every group in a variants report so you can review the merges before you trust them.
It deliberately won’t decide that Acme and Acme Industrial are the same company. They might be. They might be a parent and a subsidiary, or two unrelated businesses. That call takes understanding, not string comparison.
5. Full Name in, First and Last out
Splitting a name column sounds like a one-line formula until you meet Dr. Juan de la Cruz, Jr. Split on the first space and his first name becomes “Dr.” Split on the last space and his last name becomes “Jr.”
The Name Splitter handles the formats that actually show up in exports: Jane Doe, “Doe, Jane,” and Dr. Jane Q. Doe. It keeps surnames with particles like de la Cruz together in Last Name, and it recognizes prefixes and suffixes with or without the dots. By default it adds First Name and Last Name, which is what most CRM imports want; you can also ask for prefix, middle, and suffix columns.
No rule set gets every name right across every culture, so it doesn’t pretend to. Single-word names go on a review list instead of being guessed at.
6. Evaluate a vendor without handing over your customer list
This is the one I wish I’d had on the buying side. When you’re evaluating a data cleaning tool, the honest test is to run your own messy data through it. That means handing a vendor your customer list before you’ve signed anything, which is a big ask of your security team and your customers.
The Test Data Generator makes a realistic contacts CSV, up to 5,000 rows, with problems planted on purpose:
- Exact duplicates, which any tool should catch
- Typo’d emails and name variants (Jonathan vs. Jon), which exact matching misses
- Formatting drift in names and company suffixes
- Messy fields: mixed date and phone formats, Illinois vs. IL, and blanks
It also gives you an answer key that lists every planted problem by row. Run the file through any tool, ours included, and grade what it caught. The same seed always produces the same file, so you can compare vendors on identical data.
Three more, for the columns that are almost right
- Email Normalizer: trims and lowercases an email column, strips leftovers like mailto:, and flags typo’d domains like gmial.com with a suggested fix. It applies those fixes only if you turn that on, because a suggestion is still a guess.
- Domain Extractor: pulls the domain out of every email or URL, flags free-mail addresses like gmail.com, and gives you a list of unique domains with counts. Useful before routing, lead scoring, or enrichment.
- Duplicate Cost Calculator: estimates what duplicates cost you each year on HubSpot, Salesforce, Klaviyo, Mailchimp, or Shopify, from each platform’s list pricing. Handy when someone asks why cleanup deserves a budget line.
All nine are at cleansmartlabs.com/tools. No account, no email gate, and no file ever leaves your browser.
When it’s the whole CRM, not one column
Each of these tools does one narrow job on one file, and that’s on purpose. Most days, one column is the problem, and you shouldn’t need a platform to fix it.
Some days it’s everything at once: duplicates that don’t match exactly, formatting that drifted across years of imports, blank fields, and values that make no sense. That’s the job we built CleanSmart for. It works through a whole dataset in one pass, with SmartMatch for duplicates, AutoFormat for formatting, SmartFill for the gaps, and LogicGuard for the values that don’t add up. Every change is staged for your review before you export and import it back.
But start with the free ones. If one of them saves you a re-import, that’s the point. And if it gets something wrong on your data, I’d genuinely like to hear about it.








