Short answer: Clean a CRM in four passes: standardise formats, deduplicate against a defined matching key, fill or explicitly mark gaps, and validate against an external source where possible. Do this before building automation, because automation on dirty data multiplies errors rather than revealing them. Budget more time than seems reasonable — cleaning usually takes longer than the build that follows.
Automation and AI are amplifiers. Feed a workflow a database with three records for one company, and it will send three emails, create three projects, or report three clients. It won't flag the problem, because from its perspective there is no problem — the data says three.
The cost of cleaning first is a few weeks. The cost of cleaning after go-live is the same work plus unpicking whatever the automation did in the meantime.
Mechanical and high-value. Working systematically through each field type:
Define your matching key before you start. In order of reliability:
When merging, keep the most complete version of each field rather than the most recent record wholesale, and log every merge. Someone will ask where a record went.
Empty fields carry meaning that must be made explicit. For each important field, decide whether blank means unknown, not applicable, or genuinely empty — and encode that distinction rather than leaving it ambiguous. Then decide which gaps are worth filling: for most businesses, missing email on active clients matters and missing sector on dormant leads doesn't.
Where a public register exists, use it. For UK B2B data, Companies House gives you authoritative company names, numbers, status and registered addresses. Matching your records against it resolves naming variants and surfaces dissolved companies still sitting in your pipeline.
One caution from experience: name-based matching against a register produces false positives at a rate that will surprise you. Match on identifiers where possible, and treat name-only matches as candidates requiring review rather than as confirmed.
Cleaning is a project; hygiene is a practice.
For a few thousand records with typical mess, one to three weeks. For tens of thousands with multiple sources, considerably more — and it should be scripted rather than manual.
Clean active records thoroughly, dormant records lightly, and archive anything untouched for several years rather than cleaning it.
It's genuinely useful for standardisation and for proposing duplicate candidates. Merge decisions and validation should stay human — an incorrect automatic merge is very hard to reverse.
We've cleaned and migrated datasets from a few thousand to nearly a million records. Tell us what you're working with.