A CRM decays. Imports overlap, the same owner turns up under two spellings, numbers get disconnected, postcards come back. None of it announces itself — it just quietly makes your numbers wrong and your spend less efficient. Half an hour of hygiene a month is the highest-return admin work in the app.
Merging duplicate contacts
Open the contact you want to get rid of, use the ⋯ menu, and choose Merge into another contact…, then search for the one to keep.
The merge is a genuine fold, not a delete — everything moves onto the surviving contact:
- Conversations and call history
- Deals and properties
- Campaign memberships, with touch counts added together and the earliest join date kept
- Tasks and buyer links
So the survivor ends up with the full story, and the duplicate disappears. There's no undo, so merge in the right direction: keep the record with the better contact detail, and fold the thinner one into it.
Stop making duplicates in the first place
- Property Records imports dedupe by parcel — a record already in your CRM is marked In CRM and never charged again. Re-running a search you've already imported is safe.
- CSV imports match on email and phone, so a clean re-import of a list you've already loaded mostly folds into itself. Rows without either are the ones that twin.
- Website form submissions match against your CRM by email and phone — a returning enquirer lands on their existing timeline rather than becoming a second card.
Flags that stop you paying for dead ends
These are the ones people don't use enough:
- 🚫 Bad # — a Dialer outcome. Marks that number invalid and drops the contact out of the dialable queue, so nobody on your team burns another dial on it. Clear it from the contact card if you flag one by mistake.
- Returned mail — when a piece comes back, that address is dead. Build an automation on the "returned to sender" trigger to tag it, and filter that tag out before your next mailer. Postage on known-bad addresses is the purest waste in the business.
- Bounced email — a hard bounce is flagged on the contact and stops that address being used.
- Opt-outs — recorded permanently and enforced on every send path. Never delete an opted-out contact to "clean up": the record is your compliance evidence, and deleting it means a future import can quietly re-add them.
A monthly pass worth doing
- Sort by name in each tab and scan for obvious twins — merge them.
- Filter to contacts with no phone and no email. Skip trace them, or accept they're mail-only and stop counting them in your outreach numbers.
- Check the bad-number and returned-mail tags and decide: re-trace, or retire.
- Look at untouched leads. Contacts that were imported and never worked are the most expensive thing in your database — you paid for them and got nothing.
Why it pays
Duplicates don't just look untidy. They split a lead's history across two cards, so nobody sees the whole picture; they let the same person get the same campaign twice, which is how you earn opt-outs; and they inflate your contact count against your plan. Every one you merge makes your reply rate more honest.
What's next
To automate the cleanup, build rules on the returned-mail trigger in Automations. To fill the gaps rather than delete the rows, read Skip tracing.