Deduptio

Why Attio email sync creates duplicate people, and how to fix it

The short answer

Attio's email and calendar sync treats every address it has not seen as a new person. One human with a work address, a personal address and an alias becomes three records. Set record creation to Selective, suppress role inboxes, match the pairs sync has already made on name plus a second signal, and make sure each survivor holds every address so sync stops recreating them.

How email sync decides a person already exists

When you connect a Google or Microsoft mailbox, Attio reads your email and calendar history and, with the default settings, creates person records for the people you have corresponded with or met, and company records from their email domains. It is most of why an Attio workspace fills up with useful history without anyone typing.

The check it runs before creating a person is the email address. If a record already holds jane@acme.com, new mail from that address attaches to it. If not, a new person is created. There is no name check, no company check, no “this looks like someone we know”. That is the right design for a write path that runs unattended over thousands of messages — a looser rule would merge strangers — but it means every second address a person uses becomes a second person.

Five ways one person becomes two records

PatternExampleHow common
Personal and work addressjane.doe@gmail.com signs up on a form, then jane@acme.com emails your sales teamVery common in any product-led funnel
Aliases on the same domainjane@acme.com and j.doe@acme.comCommon at companies that changed their address format
Regional or brand domainsjane@acme.com and jane@acme.co.ukCommon with international or multi-brand accounts
Job movesjane@oldco.com and, a year later, jane@newco.comThe largest source in a workspace older than a year
Sync running during an importThe same person arrives from a CSV and from the mailbox within the same hourThe largest source in a new workspace

The regional-domain case duplicates companies as well as people: sync creates a company for acme.co.uk next to the one for acme.com, and the two people are linked to different companies. That half of the problem is covered in finding duplicate companies.

Sync also creates records that are not duplicates but are not people either: info@, billing@, noreply@. They matter here because a careless email-based cleanup rule will happily merge a company's whole front desk into one “person”.

The settings that limit it

Record creation is a workspace-wide setting, so it affects every teammate who has connected a mailbox. It lives in Workspace settings → Email and calendar → Record creation.

None of these settings touch the job-move or alias cases. Jane replying from her new company is someone you emailed, so Selective creates her. Settings reduce the volume; they do not remove the need for a cleanup pass.

Finding the duplicates sync has already created

Exact email matching — the check Attio already runs — cannot find these pairs by definition: the addresses differ. You need a second signal next to the name.

  1. Name plus the same email local part on a different domain. jane.doe@acme.com and jane.doe@acme.co.uk is almost always one person. High precision; review a sample, then merge.
  2. Name plus the same company. Catches aliases on one domain. Review each group — two people named Chris at a large company is not rare.
  3. Name plus an exact LinkedIn URL or phone number. The strongest signals that survive a change of address. If enrichment has filled in LinkedIn on both records, this is effectively an exact match.
  4. Name alone, with one record created by sync and empty. A sync-created record with no company, no phone and one email thread next to a fully populated record of the same name is a strong candidate — but still a candidate. Review, never auto-merge.

The signal ranking and the false positives to avoid are covered in more depth in finding duplicate people in Attio.

Merging so they do not come back

The survivor is usually the record with the data you entered or imported — owner, lists, deal links, notes. The sync-created record usually holds only the email thread, and when two people are merged in Attio their email history is combined onto the survivor, so nothing is lost by letting the sync record go.

The step people miss is the address. Sync will keep matching on email, so the survivor has to hold both addresses. If the second one did not carry across in the merge, add it by hand. Otherwise the next email from that address creates the duplicate again, and you will be merging the same pair next month.

Attio's native merge handles one pair at a time and cannot be undone. That is fine for ten pairs. For a mailbox that has been syncing for a year, see bulk merging duplicates in Attio.

A routine that keeps it under control

  1. Set record creation to Selective and review the suppression list quarterly.
  2. Switch record creation to None before any migration or bulk import, and back once the data has landed. The HubSpot migration guide covers the load order.
  3. Store LinkedIn URLs. They turn the job-move case into an exact match.
  4. Scan weekly for name-plus-signal pairs, so a duplicate surfaces while the rep still remembers the conversation.

Find the people sync created twice

Connect your Attio workspace, write one match rule, and run a scan. Scans are read-only — you see every group and the reason it matched before anything is merged.

Start a free Attio duplicate scan

Related