A 30–90 minute prioritisation score
You don't need to merge every duplicate to stop automations breaking — you need to find the ones that touch workflows, revenue, SLAs or handoffs first. Spend 30–90 minutes exporting duplicate pairs from your CRM (HubSpot, Salesforce, Pardot or Marketo all have exportable matching reports) and pull a handful of supporting fields into a sheet.
For each pair collect: how many automations/workflows they are enrolled in (or triggers they touch), lifecycle stage, last activity date, estimated revenue or open SLA/ticket count, source system(s) where the two records came from, and the match confidence score your CRM gives. In a spreadsheet assign quick weights (example: automation touches 30, lifecycle stage 20, revenue/SLA 20, recent activity 15, match confidence 10, source systems 5) and calculate a simple risk score.
Sort by score and focus on the top decile. This is repeatable in a single session and works the same whether your duplicates come from webforms (Marketo/Pardot), CSV imports (HubSpot) or two-way syncs with accounting or support tools (Salesforce integrations).
What to do with the top decile — quick, safe fixes
- Staging merges first. If you have a sandbox or staging org, run a small set of merges there and check key automation behaviour. If no sandbox, export the two records fully as CSV/JSON so you can restore or review before merging.
- Canary merges. Pick 5–10 highest-risk pairs and merge them during low-traffic hours, then monitor the automations they touch for 24–48 hours (workflows, email sends, SLA queues). If something misfires, you have a small, contained blast radius.
- Pause or gate automations. Temporarily add a short gating flag (a provenance or "merge-checked" property) so automations ignore merged records until reviewed. In HubSpot and Pardot you can add a property and in Salesforce use a checkbox field; then run a small workflow to flip the flag after manual review.
- Preserve provenance and audit. Add a short merge-reason note and a provenance field that records source systems and who approved the merge. Keep a full export backup and a one-page rollback plan in case reporting or billing breaks.
Simple prevention steps so you only fix this once
Start small and stop new duplicates at the source: pick one unique key for upserts (email plus company domain, external_id from your billing system, or a generated external key) and use that for imports and API creates. For webforms add client-side or server-side dedupe checks (hidden token, cookie, or lookup query) so duplicate creates never make it into the CRM.
Add integration 'kill switches' and short validation breakpoints: stop creates from unknown sources, require an owner on new records before certain automations run, and add an automated quarantine list for newly-created duplicates so a human can review them daily. Schedule a weekly smoke test (a short report of highest-risk duplicates) so the score becomes a routine check rather than a one-off.
If you want a hand running the prioritisation score, staging a canary merge and adding simple kill switches, Optira can help run a short, practical workshop with your ops team.