TL;DR:
Match duplicates on something stable like email address, not on names, and review before merging.
Keep the record with the richest history, copy over any fields the others have, and never delete without a backup export.
Stop the mess coming back: required fields, one owner per contact and a short rule for who may create records.
Your contact list has three entries for the same customer. Sales calls her twice, support emails the old address, and a report says you have more customers than you do. A customer database (a CRM) gets messy because many people add to it over time with no shared rules. Cleaning it is mostly deciding rules, then applying them carefully.
Export a backup first
Before changing anything, export the contacts to a file and save it with today's date. Most CRM tools offer an export to CSV; look in the contacts list or the settings. If a merge goes wrong, that file is how you recover. Merging is often hard to reverse inside the tool, so assume you cannot undo it.
Write the rules before you touch a record
Dedupe rule. What makes two records "the same person"? Email address is the best key because it is usually unique. Names are weak: two real people can share one, and one person can appear as "Bob" and "Robert".
Survivor rule. Which record do you keep? A sensible default is the one with the most history (deals, notes, emails), and if tied, the most recently active.
Field rule. When two records disagree, which value wins? Usually the most recent, unless the older value is one a person typed on purpose, like a preferred name.
Required fields. Decide the minimum every contact needs, for example email, company and owner. A record missing them gets fixed or removed.
Ownership. Every contact has exactly one owner who is responsible for it. Merging two records with different owners means choosing one.
Worked example: merging duplicate contacts
Say the export shows three rows that look like one customer. These are made up for the example.
Row | Name | Company | Owner | Last activity | |
|---|---|---|---|---|---|
1 | Dana Ortiz | dana.ortiz@example.com | Harbor Print | Sam | 2026-10-30 |
2 | D. Ortiz | Dana.Ortiz@example.com | 2026-06-02 | ||
3 | Dana Ortiz | dana@harborprint.example | Harbor Print Co | Priya | 2026-09-14 |
Normalize the key: Lowercase emails and trim spaces. Rows 1 and 2 then match exactly: row 2 had a capital letter and a trailing space that hid the match. In a spreadsheet,
=LOWER(TRIM(C2))does both.Handle the near match: Row 3 has a different email and a slightly different company name. Same name, same company, different address: that is a candidate, not a certainty. Look at the activity before deciding, or ask the owners.
Pick the survivor: Row 1 has the latest activity and the most complete fields. It survives.
Copy across what is missing: Row 2 adds nothing new. Row 3 holds a second email. If it is Dana's work address, add it as an extra email on row 1 rather than losing it. Company stays "Harbor Print" if that is how the company writes it; check their website.
Resolve the owner: Sam and Priya both touched her. Message them, agree on one owner, and note who in the record.
Merge and verify: Merge rows 2 and 3 into row 1. Open the result and check that notes, deals and emails from all three are present, and that the contact count dropped by two.
Counting check: you started with 3 rows for one person and should end with 1, so the total number of contacts should be exactly 2 lower than before. If it dropped by more, something merged that should not have.
The same method works for any job with a long list of near duplicates: normalize first, find candidates, decide by rule, then check the count. Do a small batch of ten, look at the result in the tool, and only then do the rest.
Mistakes to avoid
Merging on name alone. Two real people named Alex Kim will become one.
Letting a tool merge everything automatically on its first run. Review a sample by hand first.
Deleting records that look empty. A bare email may still be on a live mailing list or a past invoice.
Cleaning once and walking away. New duplicates arrive daily from forms, imports and manual entry.
Keeping it clean afterwards
Make the fields from your list required where the tool allows it, so a record cannot be saved without them.
Search for the email before adding a new contact.
Review ownerless contacts every month; unowned records are where mess builds.
Pick one format for phone numbers, company names and countries and write it down for everyone.
Note: Contact data can include personal information. Check your company's privacy rules, and any law that applies where your customers live, before exporting or sharing a list. For legal questions, ask a professional.
Doing it faster
Sort the export by email in a spreadsheet and the duplicates sit next to each other, which makes the review quick. Once you have a method that works, run it the same way each time, on a schedule, so the list never gets as bad again.
Frequently asked questions
Should I delete or merge?
Merge when two records are the same person, so their history is kept. Delete only records that are clearly junk, and only after exporting a backup.
What if I am unsure two records match?
Leave both, add a note, and ask the owner. A duplicate is a small cost; a wrong merge can lose real history.
