Duplicate list entries in Attio
Last checked September 1, 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.
One record, two entries in the same list. It is not a duplicate record and merging will not fix it — in fact merging is usually what caused it. Remove the extra entry, deciding deliberately whether to keep the oldest (the history) or the newest (the current stage).
Records and entries are different things
In Attio a list entry is its own object: it points at a record and carries its own attributes — stage, owner, dates, whatever the list is for. That is what makes lists powerful, and it is also why a record can appear in one list twice with two different stages, each entry telling a different story about the same company.
So there are two distinct bugs, with two distinct fixes:
- Duplicate records — two records for one entity. Fix by merging.
- Duplicate list entries — one record, two entries in a list. Fix by removing an entry. Merging does nothing, because there is only one record.
Where they come from
- Merging duplicates. The commonest cause, and an ironic one. If both duplicate records sat in the same list, both entries follow the surviving record, so a successful cleanup leaves the survivor in that list twice. Clearing a duplicate backlog without a list pass afterwards trades one problem for another.
- Imports into a list.Attio matches records on a unique attribute, but when you are updating several entries that share a parent record, matching by unique attribute is not enough — Attio's own guidance is to map entry IDs. Skip that and the import adds entries rather than updating them.
- Automations that add on every trigger. A Zap or scenario that adds a record to a list each time an event fires, without checking membership first. Both Zapier and Make expose a create-or-update action for list entries by parent record — use it.
- People. Two teammates adding the same account to the same list within a week of each other.
What it actually breaks
Counts, mostly, and counts are the whole point of a list. A pipeline that says 40 when it is 34. A campaign audience that overstates reach. A board where the same card sits in two columns because the two entries disagree about stage. Anything that acts per entry — notifications, sequences, reporting rollups — can also act twice.
The subtle version is worse than the obvious one: two entries at different stages, both technically current, and no way to tell from a summary view which is right.
Keep the oldest or the newest?
If entries carry no attributes of their own, it does not matter. If they do, decide deliberately:
- Keep the oldest when the list tracks a process with history — the original entry has the real created date and the trail of stage changes. This is the safe default.
- Keep the newest when the second entry was created deliberately to restart something, and its stage is the accurate one.
Either way, copy anything worth keeping off the entry you are about to remove first — removing an entry removes its per-entry values with it.
Doing it in Deduptio
Deduptio treats this as a first-class problem rather than an afterthought, because its own merges create it:
- Automatic cleanup after a merge.Every live merge checks the surviving record's lists and removes the duplicate entries that merge just created, keeping the oldest. Each removed entry is snapshotted with its in-list values and restorable for 24 hours. If cleanup fails, the merge is unaffected and the entry is listed for manual removal.
- Manual removal in bulk. Lists holding a record more than once show a Remove duplicates button, with a keep-oldest or keep-newest choice and the same 24-hour restore.
- Merging straight from a list. When a scan has found duplicate records and two or more of them sit in the same list, the row offers to merge those groups and clean up the leftover entries in one action — the list comes out with one entry per real record.
The details, including the removal log, are in the lists documentation.
Preventing the next ones
- Use create-or-update-by-parent-record wherever an automation adds to a list.
- Map entry IDs when a CSV import updates existing list entries.
- Run the list cleanup as part of finishing a duplicate cleanup, not as a separate project.
- Spot-check list counts after any bulk merge — a count that dropped less than expected is the tell.
Clean the records, then the lists
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
- Bulk merging duplicates in Attio — the operation that creates most duplicate list entries.
- Duplicates from a CSV import · Zapier and Make dedupe
- Lists documentation · The full guide