Deduplication
Find duplicate records and merge them, with the surviving value chosen field by field.
The same company, three times. Three reps entered the same account in three quarters, and every report since has counted it three times. Nobody merges them because nobody can say which record is the real one.
Deduplication answers that in three parts, and each part is a decision you make once rather than a judgement somebody makes per record.
Which records are the same record. Matching rules say what counts as a duplicate on this object, in your own fields. A run applies them to the scope you give it and groups what it finds. Nothing is merged at this stage. The run owns its groups, so two runs over overlapping records produce independent findings rather than fighting over the same ones.
Which one survives. Master record rules pick the record the others fold into, by the property you care about: the oldest, the one with the most filled in, the one from the source you trust.
What the survivor ends up holding. Survivorship rules are decided field by field, so the survivor can keep its own name and take the better phone number from a record that is about to disappear. This is the part that is normally lost, and it is the reason a merge done by hand is worse than no merge at all.
How a pass runs
The detail
Undo
Which is why unmerge is a first-class operation here rather than a support ticket.
Restoring the record is the easy half. The hard half is that a merge reparented the children: the opportunities, contacts and cases that used to hang off the record that disappeared are now hanging off the survivor. Put the record back and leave them there, and you have a record that exists and owns nothing, which is worse than not reversing at all.
Unmerge restores the record and then patches every child back onto it, one lookup at a time. It reports exactly what it restored and what it could not, rather than claiming a clean reversal it did not achieve.
How this compares with Salesforce's own duplicate management →
For agents
Reading duplicates is free and needs no permission to write. Merging is a separate grant, held apart from every other mutation.
list_duplicate_groups the groups a run found readget_duplicate_group one group, record by record readcreate_deduplication_run a run over a scope you name writeapprove_duplicate_group merge one group writereverse_duplicate_group unmerge one group writeWhere to start
The readiness scan runs detection against your own CRM and reports what it finds, before anything is merged.