The situation
A subscription software company had reached the point where nobody in the building believed the pipeline number. Not the sales team, not the leadership team, not the board deck that reported it.
The system underneath had accumulated for two years without an audit: 10,000 customer records, 120 workflows, 46 forms. Every one of those workflows had been built for a reason that made sense at the time and never reviewed since. Sales was working from data that had quietly gone stale.
What was in the way
The CRM was not empty. It was worse than empty, because it was reporting activity that was not happening.
- 4,240 open deals, of which 289 had any activity in the previous 90 days
- 3,815 leads, 87% of which had never been contacted by anyone
- A lead-qualifying automation that had fired exactly once since it was built
A number that is wrong and looks plausible costs more than a blank field. Forecasts were built on it. Territory decisions were built on it.
What we did
We connected AI directly to the CRM rather than working from exports, and mapped the entire system in a day. Custom connectors handled reads and bulk writes. Where the API stopped, browser automation carried the rest.
The discipline mattered more than the speed. Every change ran the same sequence:
- Dry run. Produce the exact list of records that would change, and what they would change to.
- Sales sign-off. The team that owns the data confirms the list before anything is written.
- Batch write. Execute in reversible batches.
- Recount. Verify the result against the system, not against the script’s own assumption that it worked.
No bulk write happened without a human reading the list first, and no write counted as done until the recount confirmed it.
What came out of it
- Open deals corrected from 4,240 to 289, with every change reversible
- 4,002 records re-routed, zero failures
- 836 real churns found and recorded, where the CRM had been showing 55
That last number is the one worth sitting with. The company had been carrying 781 churned customers as active relationships.
What this means for a growing business
Data cleanup is usually sold as a one-off project and treated as an administrative chore. It is neither. An untrusted CRM quietly corrupts every decision that touches revenue, and it stays corrupted until someone connects a tool to the source system and checks.
The part that makes it safe to do quickly is the verification loop. Dry run, sign-off, reversible write, recount. Speed without that is how a bad cleanup becomes a worse one.
AI connected to the source system, paired with a verification discipline, turned an untrusted CRM into one the sales team could run from in four weeks.