How do you clean up CRM data?
You clean up CRM data by first stopping new bad data from coming in, then standardizing field values, merging duplicates, filling the fields that matter, and archiving what you don’t need, in that order. Then you put rules in place so the cleanup doesn’t have to be repeated next year.
The order is the part most teams get wrong. They start with a big deduplication run, feel good about it, and three months later the duplicate count is back where it was because the form that created them is still live. Or they merge before standardizing, so the merge tool can’t match “Acme Ltd” with “ACME Limited” and misses half the duplicates.
This guide assumes you’ve already decided a cleanup is needed. If you’re not sure yet, the data section of our CRM audit walkthrough shows how to assess the scale of the problem first.
Before you change anything
Export a full backup. Every object you plan to touch, with all properties and record IDs. Merges and deletes are often permanent, or only reversible for a short window. You want a file you can go back to.
Decide what “clean” means. Write down, for the fields that matter, what a good value looks like. Country: ISO country name from a fixed list. Phone: international format. Lead source: one of eight agreed values. Without this, two people cleaning the same field will produce two different results. A CRM data dictionary is the natural place to record it.
Pick your critical fields. You can’t clean everything, and you shouldn’t try. Start with the fields that routing, segmentation, lifecycle and reporting depend on. A typo in a job title rarely costs anything. A blank country field on a lead that’s routed by region costs a missed follow-up.
Tell people. Sales reps get nervous when records change under them. A short note about what’s changing, when, and who to ask avoids a lot of “where did my contact go?” messages.
Step 1: Find where bad data comes from
Every bad record got into the CRM somehow. Before cleaning, list the entry points and check which ones produce the most problems:
- Forms with free-text fields where a dropdown should be, or that create new records instead of updating existing ones.
- Imports from events, purchased lists or old systems, often done by someone in a hurry with no template.
- Integrations that create a contact for every order, every support ticket or every calendar booking, with slightly different name or email formatting.
- Manual entry by reps who type company names however they like.
- Enrichment tools that overwrite good values with worse ones.
A realistic example: a scheduling tool pushes booked calls into the CRM through an integration. It matches on email, so anyone who books with a personal address gets a new record alongside their existing work one. Every busy month adds a few hundred duplicates. You could dedupe after each batch forever, or change the integration to also check name and company, and send unmatched records to a review list instead of creating them.
Fix the sources you can before going further, or the rest of the work will need repeating.
Step 2: Standardize values
Standardizing means making one value mean one thing. Work field by field, starting with your critical list.
Export the field’s distinct values with counts. In a US state field you’ll typically see something like “CA”, “Calif.”, “California”, “california” and the occasional “LA” from someone who meant the city. Map each variant to the agreed value, then update in bulk through an import or a workflow.
Things to watch:
- Convert free text to dropdowns once the values are clean, or the variants will return.
- Don’t guess. If a job title field says “Manager”, don’t invent a seniority value from it unless you’ve agreed the mapping. Leave it blank and flag it.
- Watch what reads the field. Changing “Partner Referral” to “Referral – Partner” will break every list, workflow and report that filters on the old text. Find those first.
Standardizing company names and email domains is particularly worth doing before Step 3, because it’s what most deduplication matching relies on.
Step 3: Merge duplicates safely
Duplicates are the most visible data problem and the easiest to make worse.
Decide how you’ll identify a duplicate. Exact email match is safe. Same name plus same company domain is likely. Same name alone is not enough, as anyone who has accidentally merged two different people called James Smith will tell you. Start with the strictest rule and loosen it only with manual review.
Decide which record survives. Common rules: keep the oldest record (it has the longest history), or keep the one with the most recent activity, or keep the one owned by sales. Whatever you choose, apply it consistently.
Decide what happens to conflicting values. When two records disagree on phone number or owner, which wins? Most CRM merge tools keep the surviving record’s value by default, which may not be the one you want. For critical fields, decide the rule in advance: most recent non-blank value, or the value from a trusted source.
Protect consent. This is the one we’d be strictest about. If either record has unsubscribed or opted out, the merged record must keep that opt-out. Check how your platform handles subscription status during a merge, and test it on a few records before running anything in bulk. A merge that re-subscribes someone who opted out is a compliance problem, not just a data problem.
Check associations and history. Make sure deals, tickets, orders, notes and email history move to the surviving record. Some platforms carry everything across; some leave certain activity on the deleted record.
Company duplicates deserve extra care because contacts, deals and ownership hang off them. Merging two company records can change who owns the account and which contacts appear under it. Do companies in smaller batches with someone from sales reviewing.
Step 4: Fill the gaps that matter
With duplicates merged, look at fill rates on your critical fields. You have three options for each gap:
- Derive it from data you already have. Country from phone prefix or company domain, company from email domain.
- Enrich it with a data provider. Useful for firmographic fields like company size and industry, but set enrichment to fill blanks only, not overwrite values sales has entered.
- Ask for it at the next natural point, such as a progressive form field or a sales qualification step.
Not every blank needs filling. If 30% of records have no industry and nothing uses industry, leave it.
Step 5: Archive or delete what you don’t need
Old, unreachable records clutter search, skew reports and can cost money on platforms that bill by contact or profile count. But deleting is not always the right answer.
Delete records that never had any value: test submissions, spam form fills, obvious junk like “asdf@asdf.com”.
Archive or mark as non-marketing records you might need later: old customers, contacts with deal history, anyone whose activity explains a past report. Several platforms let you keep a record without counting it as a marketable contact.
Suppress, don’t delete, opt-outs. If someone unsubscribed and you delete them entirely, the next import may bring them back with no record that they opted out. Keeping them on a suppression list is what stops that. Where a person has asked for their data to be erased under privacy law, follow your legal process, which may involve a minimal suppression record rather than nothing at all.
For email lists specifically, our email list hygiene guide covers bounces, inactive subscribers and sunset policies in more detail.
Step 6: Validate the result
Run the same checks you ran at the start: duplicate counts, fill rates, distinct values in critical fields. Then do the human test. Pull 20 random records and read them. Could a rep act on each one? Would the right segment include them?
Also check that nothing downstream broke. Look at workflow enrollment counts, list sizes and the main dashboards for the week after the cleanup. A list that dropped from 12,000 to 400 overnight usually means a filter is still looking for an old value.
How do you keep CRM data clean afterward?
You keep it clean by controlling the entry points and giving each critical field an owner. A one-off cleanup without that will slowly undo itself.
The controls that make the most difference in practice:
- dropdowns instead of free text for any field used in filters
- required fields on the forms and record-creation screens that matter
- import templates and a rule that imports go through one or two trained people
- integrations configured to update existing records rather than create new ones
- a monthly check of duplicates, ownerless records and fill rates on critical fields
- an owner for each critical field who decides its allowed values
The last point is the subject of our guide to CRM property governance, which covers how to decide who creates fields, how they’re named and when they’re retired.
How long does a CRM data cleanup take?
For a small database with a few critical fields, a focused cleanup can take a few days. Larger systems with several integrations, company-level duplicates and years of imports often take several weeks, mostly because merges need review and every changed value has to be checked against the lists and workflows that use it. The size of the database matters less than the number of sources writing to it.
Can we clean the data during a migration instead of before it?
Partly. Import mapping can translate values on the way in, for example turning “Calif.” into “California”. Merging duplicates during the import is much riskier, because you can’t easily review what happened. Deduplicate and standardize critical fields in the old system or a staging file first, use the import only for simple translations, and fix the entry points in the new system before go-live.
Is it safe to use a CRM’s automatic duplicate merging?
It’s safe for exact matches on a reliable identifier like email address. For fuzzy matches on name or company, review the suggestions before merging. Automatic tools don’t know that two people at the same company with similar names are different people.
Should we delete contacts who haven’t engaged in years?
Usually not outright. Remove them from marketing sends and, if your platform allows, mark them as non-marketing so they don’t count toward billing. Keep the record if it has purchase or deal history, and always keep opt-outs on a suppression list.
What fields should we clean first?
The ones that drive action: email and consent status, lifecycle stage, owner, country or region, and lead source. If routing or segmentation reads a field, it goes on the list.
If the cleanup is bigger than your team has time for, our CRM Data Cleanup service follows this same order and leaves the entry-point controls in place afterward.