Office and Data, free, by Pivotal Labs
Clean a contact list before you import it
Paste a messy list of names, emails and numbers and get back one deduplicated, properly cased, correctly formatted CSV. It runs in your browser, so the list never leaves your machine, which matters when the list belongs to a client.
Loading Contact List Cleaner...
What Contact List Cleaner does
Paste a messy list of names, emails and phone numbers, get back a deduped, properly-cased, phone-normalised contact list as a clean CSV. Nothing leaves your browser.
Doing this job well
Every CRM migration starts the same way. Someone sends over the contacts, and what arrives is three exports stapled together: a spreadsheet from the old system, a few rows a colleague copied out of their inbox, and a tab that somebody clearly maintained by hand. Names in block capitals. Four spellings of the same company. Phone numbers written six different ways, at least two of them missing the leading zero because Excel decided they were numbers.
The temptation is to import it and fix it later. That is almost always the expensive choice. A duplicate that enters a CRM does not sit still: it collects an activity history, gets attached to a deal, receives a campaign email, and by the time anyone notices there are two records for the same person, merging them means choosing which history to lose. Cleaning before the import costs an afternoon. Cleaning after it costs a project.
So the order that works is boring and worth following. Normalise the formatting first, because you cannot spot duplicates while the same person appears as SMITH, Smith and smith. Then deduplicate, on email rather than name, since two people genuinely can share a name and almost nobody shares an inbox. Then look at what is left over, because the rows that fail validation are usually telling you something true about where the data came from. A column of addresses ending in the same typo'd domain is a broken form somewhere, not a list problem.
This applet does the first two steps and shows you the third. It is deliberately not clever about it: predictable rules you can check, rather than a guess about what you probably meant. You can see exactly which rows it merged and why, because the point of a clean list is that you trust it, and you cannot trust a transformation you cannot inspect.
It also runs entirely inside this page. That is not a technical detail when the list you are about to paste is a client's customer database. Uploading personal data to a free web tool is a processing decision with your name on it, and most data protection policies have something to say about it. Here there is nothing to say, because nothing is sent anywhere.
Where an applet stops being the right answer is repetition. If this is a one-off before a migration, a browser tab is genuinely the correct tool and you should close it afterwards feeling nothing. If it is happening every month, between systems that disagree about what a contact is, then the cleaning is a symptom rather than the job, and the thing worth fixing is upstream.
Common questions
Does my contact list get uploaded anywhere?
No. The cleaning happens in your browser, on your machine. Nothing is sent to us or to anyone else, there is no account, and closing the tab is the whole of the deletion process.
How does it decide what counts as a duplicate?
Email address, normalised for case and spacing, because two people can share a name but almost never share an inbox. Rows without an email fall back to name and phone together, and are flagged rather than merged silently.
Will it fix phone numbers that lost their leading zero in Excel?
Yes, that is one of the specific cases it handles. UK numbers that a spreadsheet has quietly turned into integers are restored to a dialable format.
Is there a size limit?
Only what your browser can hold in memory, which in practice is tens of thousands of rows. It is not built for millions, and if that is your problem then a browser was never the answer.
Can I see what it changed before I trust it?
Yes. Every merge and every correction is shown, because a transformation you cannot inspect is one you should not import.
Related applets
Built by Pivotal Labs
We build software, and this is a small piece of it.
Pivotal Labs is a software development and product management team. The applets on this site are the offcuts, the small things we build for ourselves and give away. The work we are paid for looks rather different.
See what Labs buildsWhen the browser tab is not enough
A one-off clean-up is a job for an applet. Doing it the same way every month, across systems that disagree with each other, is a job for data management & crm integration.
Further reading

The CS Tech Stack: What to Buy, and in What Order

The Sales-to-CS Handover Is Broken, and Both Teams Know It

How Customer Experience Transformation Boosts Business Success

What Your CS Health Score Is Actually Measuring, and What It's Probably Missing

The QBR Format That Fits Nobody

