The worst dedupe is the one that deletes history. Merge account A into account B, lose the activities on A, and your attribution breaks, your rep loses context, and your audit trail is gone.
The merge-map method never deletes. It records every merge as a row: loser ID, winner ID, match reason, confidence score. Merges happen via API in small tranches with activity-count verification after each batch.
The merge-map also becomes a guardrail. New-record webhooks check it before creating records. If a match exists, merge instead of duplicate. This is how you go from 40% duplicate rate to near zero and keep it there.
