The short version
- Duplicates come in through the doors you leave open: forms, imports, integrations and people typing records by hand.
- Most CRMs match on one key, usually email. Anything without that key, or with it written differently, slips past.
- Clean what is there once, then close the doors, or the same duplicates come back within weeks.
Three copies of the same customer. Two reps calling the same lead on the same afternoon. A pipeline report nobody trusts because the same deal appears twice under slightly different names. If that sounds familiar, the problem is rarely laziness. It is almost always the way records get into the CRM.
Where duplicates actually come from
Every route into your CRM is a chance to create a second record for someone who is already there. The usual ones:
- Website forms. A customer fills in a form with a different email address from the one you already have, or with no email at all, and a new contact is created.
- Imports. A spreadsheet from an event or an old system goes in without matching against what is already in the CRM.
- Integrations. A dialer, booking tool or ad platform creates contacts in its own way. Many tools match only on their own rules, or not at all.
- Manual entry. A rep adds “Jon Smith” while “Jonathan Smith” already exists with the same phone number.
- Phone numbers written five ways.
(415) 555-0142,415-555-0142and+14155550142are the same number, but to a computer they are three different values.
Why the CRM does not catch them
CRMs do try. They just match on narrow rules, and anything outside those rules gets through.
HubSpot, for example, de-duplicates contacts automatically by email address and companies by domain. When a form is submitted with an email that already exists, the details are added to the existing contact. But a contact with no email is not de-duplicated automatically, and companies created through the API, including third-party sync apps, are not de-duplicated by domain. HubSpot’s duplicate management tool, which suggests possible duplicates to review, is on Professional and Enterprise accounts.
Pipedrive takes a different approach. Its Merge Duplicates tool flags people who share a name plus at least one of the same phone number, email or organization, and organizations that share a name and an address. Imports offer to recognize and merge duplicates as they go in. Deals have no duplicate identifier at all, because several deals can share a name.
The pattern is the same in both: if the matching key is missing or written differently, the CRM sees a new person.
How to clean up what is already there
- Measure first. Export your contacts and count how many share an email, a phone number (once formatted the same way) or a name and company. This tells you how big the job is and which source is the worst offender.
- Decide which record wins. Agree a rule before merging: usually the oldest record, or the one with the most activity. Merging moves history onto the surviving record, so pick the one your team already works from.
- Standardise phone numbers. Convert every number to one format, ideally international (E.164, like
+14155550142). Phone matching only works when the numbers look identical. - Merge in batches. Use your CRM’s own merge tool, a batch at a time, and spot-check a few merged records before moving on.
- Check what depends on the old records. Workflows, lists and reports that pointed at the merged-away record may need a look.
How to stop new duplicates coming in
Cleaning without closing the doors is how teams end up doing the same clean-up every quarter. For each way in:
| Way in | What to set |
|---|---|
| Website forms | Make email (or phone) required, and send submissions to the CRM in a way that matches existing contacts instead of always creating new ones. |
| Imports | Always import with matching switched on, on email or a unique ID, never as plain “create new”. |
| Dialer and other integrations | Match callers on a normalised phone number before creating a contact, and only create one when nothing matches. |
| Manual entry | Ask reps to search before they add. A short written rule beats a long training session. |
| Phone numbers | Store them in one format everywhere, so the next match works. |
When it is worth getting help
A small CRM with a few hundred contacts can be cleaned by hand in an afternoon. It gets harder when several tools write into the CRM, when merges would affect running workflows, or when nobody is sure which record is the real one. That is the point where a planned clean-up, with the rules written down and the integrations fixed at the same time, saves more time than it costs.
We clean CRMs, merge duplicates and set the rules so they stay clean, as part of CRM setup and management. If calls are part of the problem, see how we connect dialers to CRMs so callers are matched before anything new is created.