Skip to main content

Worked exampleSales operations

Prove a CRM migration before you cut over

The import says complete. Sales asks why an opportunity has no account. This worked example defines the evidence for a migration decision, from the first export through the final change window.

Worked example. This is a proposed solution for a fictional operating scenario, not a client engagement. No measured results are claimed.

Two ivory filing towers facing across a gap with brass connecting pins, several aligned cards on one side and a single unmatched yellow card on a separate small plinth. Conceptual editorial illustration.
Conceptual editorial illustration. The workflow below describes a proposed solution.
The problem
Record counts can match while owner mappings, relationships and business totals are wrong.
The approach
Use a source-to-target crosswalk, explicit rejection ledger and control totals for a staged migration.
Intended outcome
The intended outcome is an explainable go/no-go decision and a recoverable cutover. No completed client migration is implied.

Example system roles Source CRM · restricted staging store · target CRM · reconciliation report

Define what is moving

The sales team in this example is moving accounts, contacts and open opportunities between CRMs. Its earlier import treated the CSV as the specification. Unused fields, inactive owners and deleted accounts became decisions made during loading, when they were hardest to review.

Create a migration inventory first. Mark each object and field as migrate, transform, archive or exclude. Record the business owner who approved the choice. Excluding a record deliberately and failing to import it are different outcomes.

Keep an immutable source identifier on the target or in a crosswalk. A company name can change; the migration relationship should survive that change.

One account can produce several contacts, not several copies

Load parent records before dependents. For each source account ID, retain its target account ID and load status. A contact whose parent hasn't loaded stays in a rejection ledger with the reason and repair owner. Don't create a placeholder company silently.

Owner mappings need the same treatment. Map a departed employee to an approved successor or an explicit holding owner. Unknown picklist values should be reviewed; defaulting every unknown opportunity to an open stage can distort pipeline reporting.

Normalize types deliberately. Preserve currency alongside amounts, distinguish date-only fields from timestamps and document how blanks differ from zero. A transformation rule belongs in the mapping sheet so the business can review it.

Proposed workflow

Every source record gets a disposition

  1. Snapshot source

    Freeze scope, identifiers and control totals.

    Source data owner
  2. Map and stage

    Transform fields and resolve parents and owners.

    Migration engineer
  3. Load and reconcile

    Account for loaded, rejected and deferred records.

    Data + operations
  4. Approve cutover

    Reconcile the final delta and test business tasks.

    Business sponsor
Exception & recovery

Unknown parents, owners or values enter a rejection ledger. A failed reconciliation blocks cutover until repaired or explicitly excluded.

Proposed migration control flow. Rejected records stay visible and traceable to the source export. Download the diagram (SVG)

Reconcile at more than one level

Record counts are the first control, not the only control. Reconcile eligible source records to loaded, rejected and deliberately deferred records. Then compare relationships, required-field coverage and business totals using the same inclusion rules on both sides.

For open opportunities, compare amounts by currency and stage. Do not add unlike currencies into a convenient total. Review a sample of transformed records, including special characters, long notes and inactive owners. Verify what users can see, not just what an administrator imported.

If a deduplication policy merges two source records into one target, keep both source IDs in the crosswalk and explain the count difference. A lower target count is acceptable only when the disposition is known.

The last change window is a separate migration

Agree how writes behave during cutover. Either pause writes in the source for an agreed window or capture and reconcile a bounded delta. Record the export watermark and the final accepted change. An unbounded last-minute export makes the baseline impossible to reproduce.

Keep the source readable and define who can authorize rollback. Reverting is straightforward only while new target writes can be accounted for. Once users edit both systems, restoration requires a reconciliation plan, not a switch.

The go/no-go review should include sales operations, the data owner and someone who will use the target for ordinary work. Test creating a lead, assigning an owner and producing the key pipeline report.

Keep the source export, mapping version and reconciliation output together under restricted access. The migration owner sets a retention date after acceptance; keeping a staging copy forever should not be the accidental default.

A useful stopping rule

Don't cut over with unexplained rejected rows or missing parent relationships in the agreed scope. An approved exclusion can remain outside the migration, but it needs a durable reason and an owner. The target system should open with a known backlog rather than a hidden loss.

Keep this part

Migration go/no-go worksheet

A migration is ready when every difference has an explanation the data owner accepts.

Example rules and teaching inputs. Adapt them to your process.
ControlHow to checkGo/no-go evidence
Record dispositionEligible source = loaded + rejected + deferredEvery difference has a reason
Parent relationshipsJoin contacts and deals through source/target crosswalkNo unexplained missing parents
Owner coverageCompare source owner to approved target mapHolding owner is deliberate
Pipeline totalsCompare amount by stage and currencyDifferences reconcile to approved transformations
Final deltaCompare changes after the export watermarkNo unaccounted changes
Business acceptanceRun representative user tasksNamed owner records acceptance

Use the example to agree the rules, then fill in the blank sheet with your own records and owners. Downloads are free; no email required.

Evidence & limits

How to evaluate the proposal

Use a frozen export and a dated target snapshot. Report the migration scope, merge rules, rejected records and reconciliation differences. Import duration alone is not evidence of migration quality.

  • The mapping must be adapted to the source and target CRM editions and object models.
  • Rollback after target writes requires an explicit change-reconciliation procedure.

Sources & implementation context

The design decisions and worksheets are original worked-example material. Vendor documentation supports specific platform behavior, not a claim that this implementation has been delivered.

How this page was prepared

AI assisted the research, drafting and conceptual artwork, helping compare source material and turn the workflow into a reusable worksheet. The scenario is fictional and the design is a proposal. The stated sources and limitations define the evidence available. No independent expert review or client result is implied.

About the team commissioning this collection

Continue with the useful detail

Where this connects.

Your next step

Can you account for every record before cutover?

Share the object list and a redacted mapping sheet. We can define the rehearsal, reconciliation and cutover gates.