Duplicate CRM records are two or more leads, contacts, or accounts that represent the same person or organisation. Sales then logs calls on one record and quotations on the other. Reports double-count the customer. A merge combines the survivors’ fields and re-points activities, while a delete throws history away.
Not every CRM exposes a merge button. If yours does not, you still need a detection routine and a written way to mark the loser so people stop using it. Do not assume a product merges records until you have seen it done on a copy of your data.
What to match on
Exact name is a weak key. “ABC Trading”, “ABC Trading Sdn Bhd”, and “ABC Trading Sdn. Bhd.” are often the same account. Stronger keys, in combination:
- Registration number or tax identification, when you store it
- Email domain for the company, plus a manual check so that gmail.com does not glue strangers together
- Mobile number, normalised without spaces or a leading zero variant
- Email address for contacts
- Phone plus account name when email is missing
A practical rule is: auto-suggest a duplicate when a strong key matches; require a human when only the name is similar. Fuzzy name match helps find candidates. It should not auto-merge.
Conflicts during a merge
The survivor needs one value per field. Typical conflicts:
- Two different owners
- Two mobile numbers, both plausible
- One record has a quotation, the other has the only complete address
- One record is shared with accounting and must keep the external customer code
Write a field-level winner: prefer the accounting-linked account as the survivor, copy missing fields from the duplicate, and keep both phone numbers if the product has a secondary phone. Activities, opportunities, and files should move to the survivor. The loser should be archived or deleted only after those links are moved.
If the CRM cannot re-parent child records, merging is unsafe. Stop and export a list for a controlled cleanup instead of editing live IDs by hand.
Duplicate cleanup pass
- Export accounts and contacts with IDs and keys
- Flag strong-key matches and review name matches
- Choose a survivor and resolve field conflicts
- Move activities and deals, then retire the duplicate
- Add entry checks so the pair is not recreated
Prevention at data entry
- Search-as-you-type on email and phone before creating a contact.
- Block a second account with the same registration number.
- Convert leads into existing accounts instead of always creating new ones. The record types are explained in CRM terminology.
- Give integrations an external ID so a second import updates the same account. Imports are covered in how to migrate data to a new CRM.
- Restrict who can create accounts if the team is large. Permissions are covered in CRM user roles.
A practical example
Two salespeople each create an account under the same trading name. One stores 012-345 6789 and a Johor address. The other stores +60123456789 and a quotation. Normalising the phone reveals one contact. The account that already has an accounting customer code survives. The quotation is moved onto it. The duplicate account is marked “do not use” until child records are confirmed empty.
Key takeaways
- Match on strong keys, and let humans decide fuzzy names.
- Choose a survivor before you combine fields.
- Move history; do not delete the only copy of a quotation.
- Stop recreation at entry and at import.
FAQ
Should we merge leads with accounts?
Convert or attach the lead to the existing account. A merge tool that only joins two leads will not fix an account created beside them.
How often should we look for duplicates?
Weekly on a busy team, and always before a campaign or a data migration. A one-time cleanup without entry controls comes back within a month.
Who is allowed to merge?
A data owner or sales operations role, not every user. A bad merge is harder to undo than a duplicate.