Dedupe a contact list

Drop your contact CSV below and dedupe on the email column: email is the identifier that survives name formatting, and exact matching handles hundreds of thousands of rows instantly. Your contact data is processed in your browser. It is never uploaded, and no CRM access is required. For name-based matching ("Smith, Jane" vs "jane smith"), use fuzzy matching in the API.

Drop a .xlsx / .csv file here or

Processed locally. Check your Network tab: no uploads.

The CRM cleanup workflow

  1. Export contacts to CSV from Salesforce, HubSpot, or your email tool.
  2. Dedupe here: select the email column. Review the removed count. The stats line tells you exactly what happened.
  3. Re-import the cleaned CSV. Because processing is local, no third-party service ever sees your contact data. That is usually the blocker for CRM-connected dedupe tools.

When you need fuzzy name matching

Exact-match dedupe misses "Smith, Jane" vs "jane smith" vs "Jane Smyth". That comparison is pairwise and expensive: it used to run in this page and froze the tab on real-world lists, so it now runs server-side in the API. Send your rows with options.fuzzy: true: each key is lowercased, punctuation-stripped and word-sorted, then compared by edit distance against a threshold you set (0.88 means 88% similar after normalization). The first occurrence is always kept, nothing is merged, and a free API key is enough to try it.

FAQ

Frequently asked questions

How do I dedupe a contact list where names are formatted differently?

Dedupe on the email column first: it is the identifier that survives formatting. For name matching ("Smith, Jane" vs "jane smith" vs "Jane Smyth") use the API's fuzzy matching: names are normalized for case, punctuation, and word order, and a similarity threshold catches near-misses.

Does this work with Salesforce or HubSpot?

Yes, via export → clean → re-import: export your contacts as CSV, dedupe on the email column here, then re-import. No integration or OAuth access needed, because your data stays in your browser.

Can this tool do fuzzy matching?

Not in the browser: pairwise fuzzy comparison is heavy enough to freeze a tab on real-world lists, so we removed it rather than ship a tool that hangs. Fuzzy matching lives in the API, where it runs server-side with a free key to try it. Set options.fuzzy: true with a threshold; 0.85 to 0.92 works for names.

Is this tool free?

Yes, permanently. Everything that runs in your browser is free and unmetered. The API, including fuzzy matching, has a free key tier to try and paid plans for volume.

Last updated