Why Attio email sync creates duplicate people, and how to fix it
Last checked September 24, 2026 · Deduptio is our product. Every claim about another tool comes from its public site or documentation and is linked in place — tell us if something is out of date.
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
| Pattern | Example | How common |
|---|---|---|
| Personal and work address | jane.doe@gmail.com signs up on a form, then jane@acme.com emails your sales team | Very common in any product-led funnel |
| Aliases on the same domain | jane@acme.com and j.doe@acme.com | Common at companies that changed their address format |
| Regional or brand domains | jane@acme.com and jane@acme.co.uk | Common with international or multi-brand accounts |
| Job moves | jane@oldco.com and, a year later, jane@newco.com | The largest source in a workspace older than a year |
| Sync running during an import | The same person arrives from a CSV and from the mailbox within the same hour | The 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.
- All contacts creates a person for everyone who emails you or appears on your calendar. This produces the most duplicates and the most junk — newsletters, cold outreach, automated senders.
- Selective contact creation (the default) only creates people you have emailed or met with. Someone who writes in from a personal address and never gets a reply does not become a record. This is the right setting for almost every workspace.
- None stops automatic person creation. Use it temporarily, during a migration or large import, not as a permanent fix — you lose the records that make sync worth having.
- Company creation can be switched off on the same tab. Existing links stay; Attio just stops creating new companies from domains. Public email providers such as
gmail.comnever become companies. - Suppression list(Pro and Enterprise): add addresses or whole domains that should never create a record. Put your own domain, your vendors' notification domains and every role inbox you keep seeing here.
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.
- Name plus the same email local part on a different domain.
jane.doe@acme.comandjane.doe@acme.co.ukis almost always one person. High precision; review a sample, then merge. - Name plus the same company. Catches aliases on one domain. Review each group — two people named Chris at a large company is not rare.
- 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.
- 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
- Set record creation to Selective and review the suppression list quarterly.
- 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.
- Store LinkedIn URLs. They turn the job-move case into an exact match.
- 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 scanRelated
- How to prevent duplicates in Attio — email sync next to the five other write paths.
- Finding duplicate people in Attio · Finding duplicate companies
- How to merge records in Attio · The full guide