Deduplicate, normalize phones to E.164, validate emails and fix domain typos — entirely in your browser, the file is never uploaded.
Quick answer
Upload a CSV — the tool detects columns, removes duplicates, normalizes phones to E.164, validates emails and flags disposable domains. Export clean.csv, rejected.csv with reject reasons, and report.json. All processing is local.
The file is never uploaded — processing runs entirely in your browser.
A dirty CSV is the main source of rejected leads on import: duplicates double the dialer load, national-format phones fail API validation, and gmial.com instead of gmail.com is a lead lost forever. Cleaning before the CRM import is cheap insurance.
The cleaner runs fully in the browser on Papa Parse — the file is never uploaded, which makes it safe for lead bases under NDA. Columns are auto-detected from headers and content but stay editable. The cleaning pipeline trims whitespace and invisible characters, lowercases and validates emails, suggests domain typo fixes against top domains (gmial→gmail, hotmial→hotmail — applied only after you preview them), flags disposable domains, and normalizes phones to E.164 via libphonenumber.
Deduplication works on email, phone or both, with a choice of keeping the first record or the most complete one — handy when dupes carry different field coverage. The report breaks the file down: rows in, clean rows, duplicates removed, invalid emails, invalid phones, disposable domains, typos fixed.
You get three exports: clean.csv ready for import, rejected.csv with a reject_reason column (duplicate, invalid_email, invalid_phone, disposable_email) that doubles as a supplier complaint, and report.json for your records. CSV injection is handled on export: cells starting with =, +, -, @ get a protective prefix — except normalized E.164 phone numbers, which are escaped never.
Loza CRM computes these metrics for your campaigns automatically — try it free.
Open Loza CRM