CRM Data Cleanup Checklist: Fix Duplicates in 7 Steps
Written by Kamran, Founder, 3xRevenue. Published · 11 min read.
A CRM data cleanup takes seven steps: back up, audit, set match rules, merge duplicates, refresh stale contacts, standardize fields, then schedule upkeep. It matters because 76% of CRM users say less than half their CRM data is accurate and complete. By our estimate, the first full pass takes most small businesses one to three working days.
You open your CRM to call a lead and find three records for the same person. One has the right phone number, one has last month's notes, and one belongs to a rep who left. Your texts go to old numbers, reports double count deals, and nobody trusts the pipeline.
This checklist fixes that in one focused pass, then keeps it fixed. Want to see how messy your list is first? Run an export through our free CRM lead deduplicator and get a duplicate count in a few minutes.
What counts as bad CRM data, and what it costs you
Bad CRM data comes in five types: duplicates, stale contacts, incomplete records, inconsistent formats and junk. Stale means a wrong job, a dead email or an old phone. Junk means test leads and spam form fills.
The problem is bigger now because more follow-up runs on automation. A rep might notice that "Jon Smith" and "Jonathan Smith" are one person. An automated text sequence will not, so it messages both or skips the real lead.
The cost shows up in three places:
- Wasted time. Validity's State of CRM Data Management in 2025 report found workers spend an average of 13 hours a week hunting for basic information in the CRM.
- Lost revenue. The same report says 37% of organizations lose revenue as a direct result of data quality. Companies lose an average of 16 sales deals per quarter to poor data.
- Broken automation. Workflows that route, score or text leads are only as good as the fields they read. If you plan AI lead follow-up, clean data comes first.
The 7-step CRM cleanup checklist
Plan one half day for steps 1 to 4 and another half day for steps 5 to 7. Work in this order, because each step makes the next one safer.
1. Back up everything before you touch a record
Export every object you plan to change: contacts, companies, deals and activities. Save the files outside the CRM and label them with the date.
Example: In most CRMs you can export all contacts with all properties to a CSV from the contacts list view.
Quick check: Open the export and confirm the row count matches the record count in your CRM. A backup you have not opened is not a backup.
2. Audit what you have
Measure before you fix anything. You want a short list of numbers to compare against after the cleanup.
Example: Count total contacts, contacts with no email, and contacts with no activity in 12 months. Add hard bounces and contacts with no owner. Then count likely duplicates by running an export through a dedupe tool.
Quick check: Write the numbers in a simple sheet with today's date. If you cannot say how many duplicates you have, you are not ready to merge.
3. Write your match rules and survivorship rules
Write down both rules before you merge anything. A match rule decides when two records are the same person. A survivorship rule decides which record, and which field values, win the merge.
Example: Match on exact email first. Then match on phone number in one format (for US numbers, +1 and ten digits). Only flag name matches for human review. For survivorship, keep the record with the most recent activity, but keep the newest phone number from either record.
Quick check: Show the rules to whoever owns sales. If they disagree on which record should win, settle it now, not after 500 merges.
4. Merge duplicates in small batches
Start with exact email matches, since those are safest. Merge 50 to 100 records, then stop and check the results.
Example: HubSpot deduplicates contacts by email address. It can also use Record ID or custom unique value properties. So email matches are the easy part. The risky duplicates have different emails, like a personal and a work address.
Quick check: Open five merged records. Confirm the deals, notes, emails and calls all moved to the surviving record. Check that the owner is correct.
Here is how the main issue types compare, so you can decide what to fix first.
| Issue type | How to find it | Default fix | Risk if you get it wrong |
|---|---|---|---|
| Exact duplicates (same email) | Sort or dedupe by email | Merge, keep most recent activity | Low |
| Near duplicates (same phone or name, different email) | Normalize phone, then compare | Human review, then merge | Medium: merging two real people |
| Stale contacts (bounced, left the company) | Hard bounce list, no activity in 12+ months | Mark inactive or archive | Low |
| Incomplete records (no email or phone) | Filter on empty fields | Enrich or archive | Low |
| Inconsistent formats (state, phone, lead source) | Group by field value | Standardize, then lock with dropdowns | Low |
| Junk and test records | Search "test", fake domains, spam names | Delete | Low, if backed up |
Source: 3xRevenue checklist based on HubSpot's deduplication documentation and the CRM hygiene guides from Insightly, Common Room and Digital Applied.
5. Refresh or retire stale contacts
Stale records are not duplicates, but they do the same damage. Bounced emails hurt your sender reputation. Old phone numbers waste follow-up calls and texts.
Example: Suppress every hard-bounced email right away. Move contacts with no activity in 18 to 24 months to an "inactive" list instead of deleting them. If a B2B contact changed jobs, mark the old record as departed and create a new contact at the new company.
Quick check: Your active list should now exclude every hard bounce. Search for one or two you know about to confirm.
6. Standardize fields and lock them down
Most new mess comes from free-text fields. One rep types "TX," another types "Texas" and a form sends "tx." Your reports now split one state into three.
Example: Turn lead source, state, industry and lifecycle stage into dropdowns. Delete or hide fields nobody uses. Format phone numbers the same way on every import.
Quick check: Group contacts by lead source. If you see two spellings of one value, you have more cleanup to do.
7. Add prevention rules and a cleanup schedule
A one-time cleanup decays. You need rules that stop bad data at the door and a calendar for the rest.
Example: Make email a unique, required field. Let only one system create contacts, often your CRM's own forms. Set your other tools to update existing records only, and remove "create" permission from integration users that do not need it.
Quick check: Put the schedule below on someone's calendar with their name next to it.
| Cadence | Task | Time it usually takes (our estimate) |
|---|---|---|
| Weekly | Review new duplicate alerts, suppress hard bounces | 15 to 30 minutes |
| Monthly | Merge queued duplicates, fix unowned records, spot-check 20 records | 1 to 2 hours |
| Quarterly | Re-audit with step 2 numbers, review fields and permissions | Half a day |
| Yearly | Archive inactive contacts, review match and survivorship rules | Half a day to a day |
Source: 3xRevenue estimates for a CRM with under 10,000 contacts, based on the cadence in Insightly's and Common Room's CRM hygiene guides.
Where duplicates come from in a small business CRM
Small business duplicates usually come from four places. Knowing the source tells you which prevention rule to add.
- Several tools creating contacts. Your booking tool, website form, phone system and email tool all push contacts in. If two of them create records with slightly different data, you get duplicates. If you connect tools through Zapier or similar, set each connection to "find or create," not "create." Our HubSpot integration overview shows how we wire these sync rules.
- Imports without a key. A trade show list uploaded without matching on email creates a second copy of every existing contact.
- People with two emails. A work and a personal address look like two different people to most CRMs.
- Manual entry under pressure. A rep on the phone creates a new contact instead of searching first.
If your CRM fights you on every one of these, it may be the wrong fit. Our HubSpot vs Pipedrive vs GoHighLevel comparison covers which handles deduplication and imports best for small teams.
Example: cleaning up a 4,000-contact home services CRM
In this example, the cleanup cuts 4,000 contacts down to 2,570 that are active and reachable. This is a hypothetical example with illustrative numbers, not a client result.
A home services company has 4,000 contacts in its CRM. The audit in step 2 finds:
- 480 likely duplicates (12% of records), mostly from the booking tool and the website form both creating contacts
- 350 hard-bounced emails
- 600 contacts with no activity in 24 months
- 3 spellings of each of the main lead sources
After the cleanup:
| Metric | Before | After |
|---|---|---|
| Total contacts | 4,000 | 3,520 (after merging 480 duplicates) |
| Active, reachable contacts | Unknown | 2,570 (3,520 minus 350 bounced and 600 archived) |
| Lead source values | 14 | 5 |
| Systems allowed to create contacts | 4 | 1 |
Source: hypothetical example built by 3xRevenue for illustration.
The useful number is 2,570. That is the real list the owner's follow-up should run on. Before the cleanup, a reminder campaign would have sent over 1,400 messages to duplicates, dead emails or people long gone.
A 4-week schedule for your first cleanup
Spread the first pass over four weeks so normal work keeps moving. Tick off each item as you go.
- ☐ Day 1: Export a full backup of contacts, companies and deals
- ☐ Day 2: Run the step 2 audit and write down your baseline numbers
- ☐ Day 3: Write match and survivorship rules and get sales to sign off
- ☐ Days 4 to 7: Merge exact email duplicates in batches of 50 to 100
- ☐ Week 2: Review near duplicates by phone and name by hand
- ☐ Week 2: Suppress hard bounces and archive long-inactive contacts
- ☐ Week 3: Convert free-text fields to dropdowns and delete unused fields
- ☐ Week 3: Set every connected tool to "find or create" or "update only"
- ☐ Week 4: Re-run the audit, compare to your baseline, and book the weekly and monthly checks
Common CRM cleanup mistakes
Most failed cleanups trace back to one of five mistakes.
- Merging before backing up. Treat every merge as permanent. If your survivorship rule was wrong, the backup is your only way back.
- Matching on names. Two people named Maria Garcia can both be real customers. Match on email and phone, and review name matches by hand.
- Deleting instead of archiving. Old customers can come back. Archive inactive contacts unless they are spam or test data.
- Cleaning once and stopping. Without prevention rules, duplicates return within months as your tools keep creating contacts.
- Running automation on a dirty list. Turn on AI follow-up or text sequences only after the cleanup. Otherwise you will message the same person twice.
FAQ
How often should you clean CRM data?
Run a light check weekly, a merge and spot-check monthly, and a full audit every quarter. Once the first cleanup is done, a small business with under 10,000 contacts can usually keep up in an hour or two a month.
Can you undo a merge in a CRM?
Plan as if you cannot. Some CRMs offer limited restore options. Merged field values and reassigned activities are often hard to separate, so export a backup first and test merges in small batches.
Should you delete old contacts or archive them?
Archive by default. Delete only spam, test records and contacts who asked to be removed. Archiving keeps history and past purchases available if the customer returns, while keeping them out of active lists.
What is the best way to find duplicate contacts?
Start with exact email matches, then normalize phone numbers and compare those. Name matches catch the rest. They need a human to review them, since different people often share names.
How long does a CRM cleanup take?
By our estimate, a few thousand contacts need one to three working days for the first full pass. Spread that across a few weeks. Larger databases, many connected tools or custom objects can push it longer.
What a clean CRM gets you
A clean CRM is the cheapest fix you can make to your sales process. Back up, measure, write your rules and merge in small batches. Then lock the doors with prevention rules.
Skip the prevention step and you will be doing this again next year. Do it properly and every tool you add after it, from lead routing to follow-up, works on data you can trust.
Stop duplicates at the source
The best prevention is a website form or client portal that creates exactly one record per person. Start by running your export through the free CRM lead deduplicator to size the problem. If your forms or intake tools keep creating duplicates, tell us about your setup and we will scope a fix.