CRM hygiene on autopilot: duplicates, gaps, and stale deals
Every report your leadership reads is only as good as the CRM underneath it. This workflow runs nightly, cleans what it can safely clean, and queues the judgment calls for a person, so the data stops decaying between quarterly cleanup sprints.
RevOps or the CRM administrator, with sales managers approving changes to their reps' records
A nightly scheduled run, plus an immediate check whenever a new contact or company is created
01the problem and who owns it
CRMs rot quietly. The same buyer exists three times because one rep imported a list, another typed the record by hand, and a form created the third. Job titles are free text, so a filter for vice presidents misses half of them. Deals sit in a stage with a close date that passed months ago, inflating the pipeline everyone plans against.
The CRM admin owns data quality on paper, but cleanup competes with every other request in their queue, so it happens once a quarter in a painful sprint. Rules-based dedupe catches exact email matches and misses the fuzzy ones, such as a nickname, a personal email, or a subsidiary written two different ways.
02what the AI does, step by step
- Pull changed and new recordsEach run reads contacts, companies, and open deals created or modified since the last run, plus a rotating slice of older records so the whole database gets revisited over time.
- Find likely duplicatesCandidate pairs come from cheap matching first: email, domain, phone, normalized company name. A model then judges the fuzzy pairs, such as Bob versus Robert at the same company, and returns a confidence and the evidence it used.
- Merge the certain, queue the restExact matches with no conflicting owner or open deal merge automatically, keeping the oldest record and its history. Everything else lands in a review queue showing both records side by side.
- Normalize free-text fieldsJob titles map to a seniority and function picklist, countries and states to standard values, and industry text to your own taxonomy. The original value is kept in a separate field so nothing is lost.
- Fill gaps from trusted sourcesMissing company size, industry, or website come from your enrichment provider. The model does not invent values; if no source supports a field, it stays empty and is counted.
- Flag stale dealsOpen opportunities with a past close date, no logged activity for a set period, or a stage older than your typical cycle get flagged to the owning rep and manager with the specific reason.
- Report what changedA short digest goes to RevOps: merges made, fields filled, items awaiting review, and anything the run could not process.
03systems it connects to
- CRM. Salesforce or HubSpot through their APIs, respecting API limits and field-level permissions.
- Enrichment provider. The source of firmographic data, used only where your contract allows storing it.
- Review interface. A simple queue inside the CRM or a small internal tool where admins approve or reject merges.
- Team messaging. Slack or Teams for stale-deal nudges and the run digest.
04human checkpoints
- Fuzzy merge approval. Any merge below the certainty threshold, or involving two different owners, needs an admin to click approve.
- Owner and stage changes. The workflow never changes deal stage, amount, or owner on its own. It flags; the rep or manager decides.
- Taxonomy changes. RevOps approves the picklists the model maps into, since those values drive territory and reporting.
05what to measure
- Duplicate rate. Estimated duplicates per thousand records, sampled monthly.
- Field completeness. Share of records with the fields your routing and reporting depend on.
- Stale pipeline value. Total amount in deals past their close date, tracked week over week.
- Merge reversals. How often a person undoes an automatic merge. It should be close to zero.
06risks and guardrails
- Destructive merges. A bad merge can lose activity history or attach a deal to the wrong buyer. Take a backup before each run, log every change, and keep a way to unmerge.
- Overwriting human knowledge. Never replace a value a rep typed with an enriched one without a rule saying which source wins.
- Personal data scope. Hygiene runs touch every contact. Keep the model's input to the fields it needs and respect deletion requests so cleanup does not resurrect records you were asked to remove.
07build vs buy
Start with what you own: Salesforce duplicate and matching rules and HubSpot's duplicate management handle exact and near-exact cases. Tools such as Insycle or Dedupely add bulk cleanup and scheduling on top.
Custom work pays off when your duplicates are fuzzy, when normalization needs your own taxonomy, or when stale-deal logic depends on how your sales cycle really works, which no generic product knows.
08related playbooks
Browse every sales playbook or the full library.
want this running in your business?
We can audit your CRM, set the merge and enrichment rules with your admin, and run a nightly cleanup that queues every judgment call for a person.
See how we deliver it: ai workflow automation.
book a call drop your number