Product updates
Everything we ship that you would notice — new features, changed limits, and corrections to claims we had got wrong. For what is coming next, see the roadmap.
Grouped record values now really are removed once you have decided
- FixedOur privacy policy says the field values of grouped records are removed when the group is merged or skipped. They were not: a merged group kept its copy for thirty days, and a skipped one kept it indefinitely. They are now emptied on the nightly pass after the group leaves your review queue, which is what the policy has always described. What a merge itself is accountable for — which records were merged, by whom and when — is unchanged, and undo still restores from the 24-hour snapshot.
- FixedTwo scans failed on 21 September with a database error about a file that could not be extended — our own storage, nothing to do with the workspace being scanned. A scan now checks for room before it starts, so it either runs or says plainly that it did not start and that nothing in your Attio workspace was touched, instead of stopping partway with a message about files.
A restore that refuses cleanly, instead of stopping halfway
- FixedRolling back a merge whose merged record had itself been merged again, or deleted in Attio, removed nothing and then failed partway through with Attio’s own wording about a duplicate domain — and failed the same way on every retry. That case is now recognised before anything is written: the restore is refused, and says the record the merge produced is gone and that a re-scan is what shows you where its data went. A restore that stopped partway through for any other reason still resumes where it left off.
Kept company links, a quieter reconnect, and an assistant that stops repeating itself
- FixedMerging companies and people in the same run could drop a person’s company. Attio’s merge replaces both original records with a new one, so a company link captured before that merge pointed at a record that no longer existed — Attio rejected it and the merge finished, reporting done, with the link quietly gone. Those links are now re-pointed at the record that replaced them, and a link Attio has already moved itself is left alone rather than written again.
- FixedReloading, or going back to, the page Attio returns you to after connecting showed “invalid state” even though the connection had worked. A redelivered return is now recognised as the repeat it is and takes you to your dashboard.
- FixedWhen the assistant could not answer, it said it had passed your question on and then said so again in the next sentence — and if filing it had actually failed, it claimed the handoff and denied it in the same reply. It now says either one thing or the other.
When Attio stops answering, the product says so
- FixedThe Overview banner now turns to “Attio connection expired” with a Reconnect link the moment Attio refuses our access. It used to keep saying “Connected to Attio” in green while every scan and merge failed, which left the one fix that works — reconnecting — as the one thing nothing on the page suggested.
- FixedThe Scan page says the connection has expired instead of showing an empty object dropdown and a Run scan button that does nothing.
- FixedThe Rules page keeps showing your saved rules while the connection is down, instead of replacing the whole page with a reconnect prompt. Rules live here, not in Attio, and a saved rule you cannot see looks exactly like a rule that did not save. Editing one still needs the connection, because the attribute list comes from Attio.
- FixedA connection attempt that fails now says why on the Overview page — expired attempt, cancelled in Attio, or a failure on our side — rather than returning you to the same Connect button with no explanation.
- ImprovedThe assistant can see your saved match rules, so “did my rule save?” and “why did my scan find nothing?” get an answer about your actual rule — its keys, ANY or ALL, and when you saved it — instead of being handed to a person. It sees attribute names, never the values in them.
The assistant hands off properly, and looks like a conversation
- NewWhen the assistant passes your question to a person, you now get a reply by email rather than silence. Before, handing a question over filed it for us to read; answering you was a separate step that nothing in the product actually required.
- ImprovedThe chat panel was rebuilt to read as a conversation instead of a form: replies sit in bubbles, three example questions show what it can be asked, the input grows as you type and Enter sends, and it scrolls itself as answers arrive.
- ImprovedIt hands questions to “our support team” rather than to a named person, which is who actually picks them up.
An assistant in the app
- NewEvery signed-in page except Admin now has an assistant that can see your merges, scans and errors, so “why did my merge fail?” gets an answer about your actual merge.
- NewIt never changes anything — it can point you at a button, but you click it — and it hands anything about pricing, lost data, or security to a person rather than guessing.
The Merge Log now links to the record a native merge actually produced
- FixedA native merge replaces the records you started with, so the Kept id the Merge Log showed pointed at a record that no longer existed and couldn't be opened. The Kept id is now the record Attio's merge actually produced, and it links straight to that record in Attio whenever the URL was captured at merge time — every live native merge from here on. Older merges, and the rare merge where the capture itself failed, still show the id without a link rather than one that would 404. A legacy-strategy merge keeps its original survivor record in place, so its Kept id was already correct and is unchanged.
The merge preview's field picker now updates the moment you pick
- FixedPicking a different record's value in the merge preview's per-field picker used to leave the Before/After table showing the old outcome, with Confirm blocked until you re-ran the preview. Picking a value now updates the After column immediately, including the append case for fields that allow multiple entries, where the survivor keeps what it had and gains the picked record's values.
- FixedConfirm merge is no longer blocked by a field-winner change — the preview is now accurate by construction the moment you pick, so there is nothing to re-run. Confirm is still blocked when a relationship-rule choice (list memberships, tasks, notes, incoming references) changes after the preview loaded, since that genuinely changes what the merge would do.
Sources and product evidence in the main guide
- ImprovedThe main Attio deduplication guide now includes current product screenshots and a primary-source list linking Attio's own merge and API documentation to the claims they support.
A merge no longer leaves the kept record in a shared list twice
- FixedWhen both records in a merge sat in the same list, Attio's own merge kept both list entries, parented to the merged record — so the merged record appeared in that list twice. Deduptio now checks the merged record's list memberships right after a native merge and removes the extra entry, keeping the one that belonged to the record you chose to keep (or the older entry, when the kept record's own entry can't be identified). The removal is snapshotted first, restorable for 24 hours the same as a manual removal on the Duplicates page. This runs as part of the merge itself, cannot fail the merge, and is recorded in the merge's log; if a list is outside Deduptio's Attio access, the duplicate is left in place and the merge log says so.
- FixedThe legacy merge engine (MERGE_STRATEGY=legacy) no longer re-creates a list entry for a list the kept record already belongs to — it checks first and skips, rather than creating a duplicate and cleaning it up afterwards.
- NewThe merge preview now says up front when the merge would otherwise leave the record in a list twice, so you see it before you confirm rather than after.
Choose which record's value wins, field by field
- NewAny field in the merge preview where the group's records genuinely disagree now shows a picker listing every record's value, labelled by which record it came from. Pick one to make it win for that field alone, overriding the object's field rule for just that field — including forcing the survivor's own value to stay even where the rule would otherwise overwrite it.
- ImprovedPicking a field winner (like editing a relationship rule) invalidates the preview on screen: Confirm merge stays blocked, with a hint, until you re-run Review merge so the preview matches your picks again.
The merge preview shows a company's name and a real address, not raw values
- FixedA field that points at another record — a Company field, say — used to show the referenced record's id in the merge preview. It now shows that record's name, resolved and cached per preview so referencing the same record from several fields costs one lookup, not several. If the lookup fails, the preview falls back to the id rather than failing to load.
- FixedA Primary location field used to render as the literal text "(value set)" in the merge preview. It now shows the address itself — street, city, region, postcode and country, whichever parts are populated.
Manage billing in the app, a merge preview, and a Duplicates queue with no page limit
- NewThe Billing page now has a Manage billing button once a workspace has been billed — a Pro subscription or the managed cleanup. It opens Stripe's own billing portal to cancel, downgrade, switch between monthly and annual, change your payment method, or download invoices. A workspace that has never been billed doesn't see the button.
- NewReview merge now shows a before/after table of the survivor's fields — what it holds now, and what it will hold once the merge lands — with changed fields listed first and unchanged fields collapsed behind a toggle.
- NewThe preview also counts what's attached to the records being removed — list memberships, tasks, notes, incoming references and meetings — and states what happens to each. Attio's own merge moves everything except meetings itself, so there's nothing to choose per category; meetings are never moved or deleted, they just lose their link and stay in Attio, searchable by date and participant.
- ImprovedThe Duplicates queue used to render at most 100 groups with no way to reach the rest. It now pages through every pending group 50 at a time, and Merge all takes every group matching the current filter — however many pages that spans — as a background job on our servers that keeps running if you close the tab.
A scan that finds nothing now tells you why
- ImprovedA finished scan reports how many records got a match key, alongside how many were scanned. When it finds no duplicates it now says which of the three reasons applies — no record populated your key attributes, records have some key values but your ALL rule needs all of them, or the rule ran properly and nothing matched — and links to the rule so you can widen it.
- NewThe Rules page warns about rules that save cleanly but cannot match. Matching on email address alone is the common one: Attio already stops two records sharing an email address, so duplicates nearly always differ on email, and an email-only rule comes back empty every time. Combining three or more attributes with ALL gets the same warning. Neither blocks saving.
- FixedMatching now uses every value an attribute holds, not just the first. A person with a work address and a personal one is matched on either, so a duplicate filed under a secondary email address is found instead of missed.
Merges stop failing for reasons that are not your data
- FixedA scan interrupted part-way through grouping used to add a second copy of every duplicate group each time it resumed. Merging the queue then consumed each pair on its first copy and failed on all the rest with “survivor record no longer exists”. A resumed scan now restates the groups it already wrote instead of duplicating them, and retires any copies an earlier interrupted run left behind.
- FixedA group naming a record Attio no longer has is now retired from the Duplicates queue instead of being offered again, so one stale group can no longer fill a bulk run with the same failure.
- FixedField decisions are no longer lost as a group when Attio rejects one of them. Each attribute is re-tried on its own, the rest land, and the Merge Log names the attribute that failed and Attio’s reason.
- FixedA field value the merged record already holds is no longer re-sent — Attio rejected it as a duplicate value and took every other field decision down with it.
- ImprovedA merge that landed but hit a problem on a follow-up write now reads “merged, with a warning” instead of “failed”. The records really are merged, so the group leaves the queue and Restore works as usual; hover the badge for what didn’t land.
- FixedA merge whose outcome Attio left ambiguous — a dropped connection rather than a clean error — is now checked before it is retried, so a merge Attio already committed is never re-attempted.
Twenty-three new guides, comparisons and alternatives pages
- NewA guides index at /guides, with one page per duplicate question: merging records, bulk merging, duplicate people, companies, deals and list entries, fuzzy matching company names, undoing a merge, and handling duplicates through the Attio API.
- NewA migration cluster covering the duplicates that arrive with your data: HubSpot, Pipedrive and Salesforce to Attio, plus what a CSV import creates when no unique attribute is mapped.
- NewFour more comparisons — against Attio's own native merge, a CSV export and a spreadsheet, Zapier or Make, and Clay — and a new /alternatives section for Insycle, Dedupely, Cloudingo and DemandTools, none of which support Attio.
- ImprovedPlans & limits now carries the pricing in structured data, and the marketing pages, the sitemap and llms.txt are generated from one list so a published page cannot go missing from either.
Rollback now accounts for meetings
- NewAttio opened up a meetings API, so a rollback can now account for meetings instead of staying silent about them. Meetings are not deleted by a merge — they stay in Attio and lose their link — and no Attio endpoint can re-link one, so a rollback reports how many are affected rather than pretending to restore them. A meeting that really was deleted is re-created from the snapshot.
- ImprovedRestored records keep their original value dates. A field that last changed in March shows March, not the day you rolled back.
- ImprovedRolling back no longer replays your Attio automations for every field it puts back. Creating the record still fires a workflow; the attribute writes behind it no longer do.
- FixedA rollback checks each meeting by id before touching it, so it can never leave you with two copies of the same calendar event.
A real help centre, and a way to sign out
- NewThe help centre now covers every feature, with five new articles: survivor & field rules, cross-object matching, automation & schedules, when a merge fails, and your account.
- NewThere is now a Sign out button in the top bar. It ends the session on our side, not just in your browser — previously the only way out was to wait for the session to expire.
- ImprovedThe docs sidebar is grouped into Get started, Matching, Cleaning up and Account, so articles are findable without reading the whole list.
- FixedThe plans page and llms.txt listed scheduled scans as a Free feature. They are Pro — the docs now say so, and so does the pricing page.
- FixedThe record cap is described accurately for each plan: on Free a scan stops before grouping, on Pro it reads the first 100,000 records and groups what it read.
- FixedRollback now documents that a required status or select attribute with no stored value comes back set to the attribute's first option — a restored deal can return at a different stage.
- FixedMatch rules now explain which attribute types can be keys and why owners, numbers, currency and dates are not offered, plus the one-fuzzy-key limit when combining with ALL.
- NewThis page. Product updates are published here from now on.