🌍 Discover over 60 product features. Learn more →

how-tosync

Five ways to eliminate duplicate contacts

Duplicate contacts are rarely anyone’s fault. They are the natural byproduct of how address books grow: a colleague forwards you a vCard you already had, your phone imports the same person from two accounts, a CSV export gets re-imported with slightly different column mapping, or two teammates each save the same customer with a different spelling of the name. Multiply that by a team, and a shared address book turns into a guessing game — which of the three “John Smith” entries has the current phone number?

This post covers why duplicates appear, five concrete ways to get rid of them, and how Rolyio prevents them from coming back when contacts are shared across a team.

Why duplicates happen

Most duplicates trace back to one of four causes:

  • Multiple entry points. The same person gets saved from Gmail, from a phone, from a CRM export, and from a business card scanner — each time as a fresh record.
  • CSV round-trips. Exporting contacts to a spreadsheet and importing them back is the single biggest duplicate factory. Import tools rarely check whether a record already exists.
  • Sync loops. Two tools syncing the same address book without a shared notion of identity will happily create a copy of every contact on each pass.
  • Team sharing done by copy. If your “sharing” workflow is emailing a contacts file around, every recipient ends up with an independent copy that drifts and duplicates over time.

Notice the pattern: duplicates come from systems that copy records without agreeing on what makes two records the same. Any real fix has to answer that question.

1. Use the built-in merge tools first

Both major providers ship basic cleanup:

  • Google Contacts has a “Merge & fix” panel that suggests merges for contacts with matching names or emails. It works, but only within one account, and it will not catch entries where the email differs slightly (a personal vs. work address, for example).
  • Outlook flags potential duplicates when you save a contact that resembles an existing one, and lets you update the existing record instead of creating a new one.

These tools are a good first pass on a single mailbox. Their limitation is scope: they know nothing about your teammates’ address books, so team-level duplicates survive.

2. Pick one field as the identity key

Before any bulk cleanup, decide what uniquely identifies a person. In practice, email address is the only field that works. Names get abbreviated, phone numbers change and get reformatted, but a business email is stable and unambiguous. Sort your export by email, and duplicates become visible immediately — including “hidden” ones where the display names differ.

This is also the rule Rolyio uses internally: when a shared label is synced to a recipient, contacts are matched by email, so an entry that already exists in the recipient’s address book is linked rather than duplicated.

3. Clean up via a CSV export — carefully

For a one-time purge, exporting to CSV and deduplicating in a spreadsheet is effective:

  1. Export contacts from Google Contacts or Outlook.
  2. In the spreadsheet, sort by the email column and remove exact duplicates, merging any extra data (a phone number on one copy, a job title on the other) into the surviving row.
  3. Delete the originals in the source and re-import the cleaned file.

The trap here is step 3: re-importing without deleting first is how many duplicate problems start. If you use Rolyio, CSV import is label-aware — imported contacts go into the label you have open, and the email-based dedup applies on the way in.

4. Stop sharing by copying

The durable fix for team duplicates is to stop distributing copies. When each person holds an independent copy of “Customers.csv,” every future edit forks the data further. Sharing a label instead — a real Google contact group or Outlook category — means there is one owner-maintained set of contacts, and everyone else receives a synced view of it.

With Rolyio, you share a label with teammates by email, with a domain group, or with your whole domain. Recipients see the contacts as a “(Shared)” group in their own address book and on their phone. Because sync matches by email, sharing a label with someone who already has half of those contacts does not double their address book: existing entries are recognized and linked, missing ones are added once.

5. Fix the sync loop, not just the symptoms

If duplicates keep reappearing after cleanup, you likely have two systems writing to the same address book. Common culprits: a CRM connector plus a phone sync, or two sharing tools running side by side. Audit what has write access to your contacts and remove all but one path.

Rolyio’s sync engine is built to avoid contributing to this problem. It moves only shared contacts between accounts, uses fingerprint-based echo protection so its own writes are not re-imported as changes, and applies last-write-wins conflict handling that respects roles — a View recipient’s local edits never overwrite the owner’s version. You can read the details in how sync works.

What deduplication looks like day to day

Once your team is on label-based sharing, deduplication stops being a quarterly cleanup ritual:

  • New contacts added to a shared label appear once in each recipient’s address book — never twice, even if the recipient already had the person saved.
  • An Edit recipient who adds a contact to their “(Shared)” group sends it back to the owner’s label, where the same email-based matching applies.
  • Unsharing removes the shared copies from recipients cleanly, so there are no orphaned leftovers to merge later.

Deleted contacts are not lost forever, either: Rolyio keeps a snapshot of deleted shared contacts in Trash for 30 days, so an over-aggressive cleanup can be undone.

Summary

Duplicates come from copy-based workflows and ambiguous identity. The fix is a one-time cleanup (built-in merge tools or a careful CSV pass), a firm rule that email is the identity key, and a switch from copying contacts to sharing labels. If you want the last part handled for you, connect your account and share your first label — the dedup logic comes built in.

Keep reading

migration

Microsoft is retiring EWS: what it means for your shared contacts

🕐 5 min readRead more
product

Sharing contacts between Google Workspace and Microsoft 365

🕐 4 min readRead more
how-to

How to share Google Contacts with your team

🕐 5 min readRead more