File Room Status: Open — Intake Ongoing Case Count: 006
CRM Graveyard Est. 2025 Field reports from the CRM trenches
File No. 0001 DOA

The Weekend Cutover That Erased the Pipeline

A mid-market industrial distributor. 90 sales reps. One migration weekend to move from a legacy on-prem CRM to a major cloud CRM, with no parallel run and no rollback plan.

Org size
~600 employees, 90 sellers
Time in production before collapse
52 hours
Root system
Legacy on-prem CRM
Survivors
Sales ops, 3 regional sales teams

The setup

The VP of Sales had been promised a "seamless" cutover by the implementation partner: export Friday evening, import over the weekend, everyone logs into the new system Monday morning. The project had a hard deadline because it was tied to the start of a new fiscal quarter and a board presentation about "digital transformation." Nobody wanted to be the one who said the timeline was unrealistic.

There was no parallel-run period. No UAT sign-off from actual sales reps — just IT and one sales ops analyst clicking through a demo environment for two hours. The field-mapping document was a spreadsheet with 340 rows, half of them marked "TBD" three days before go-live.

The collapse

The migration script ran fine, technically. It moved every record. The problem was a mapping error on the opportunity stage field: the legacy system used a numeric stage code (1 through 7), and the new CRM used a picklist with different labels and a different number of stages. Nobody had built a translation table for the gap stages — so anything sitting in the old system's stage 4 or 5 got silently dropped into a default "Unassigned" bucket that wasn't visible on any of the standard sales views.

On Monday morning, reps opened the new CRM and their pipeline was, from their perspective, gone. Deals they'd been working for months simply weren't showing up in any forecast, any dashboard, any list view filtered the normal way. It wasn't actually deleted — it was sitting in a bucket nobody had built a view for — but from the sales floor, "not visible" and "deleted" are the same event.

By 10am the VP of Sales was on a call asking why the entire company's forecast had zeroed out. By noon, sales ops had confirmed the data existed but couldn't confirm it was complete, because there was no snapshot of the legacy system to diff against — the legacy instance had already been marked read-only and slated for decommission per the cutover plan.

The autopsy

Root causes on record

  • No parallel run. The old and new systems never operated side by side long enough to catch discrepancies before they became load-bearing.
  • Field mapping treated as a data task, not a business task. Stage, status, and picklist mappings need sign-off from the people who read the reports, not just the people who write the ETL.
  • UAT performed by the wrong people. IT and ops validated that records moved. No working rep validated that their own pipeline was intact before go-live was declared final.
  • No frozen, queryable snapshot of the legacy system. Once the old instance went read-only without an accessible export, there was no way to reconcile fast.
  • Timeline anchored to a board date, not a readiness gate. The go/no-go decision had no real criteria attached to it — it was going live regardless.

Recommendation pending

Editor's note: this slot will point to a migration/data-validation tool — something that would have caught the stage-mapping gap above before go-live, not after.

What the post-mortem actually changed

The company ran a second, proper migration project four months later. This time: a two-week parallel run, a field-mapping workshop with reps from each region in the room, and a go/no-go checklist with actual exit criteria — not just a date on a slide. The second cutover was boring. Boring is the goal.