Platform migration · 6 weeks · fixed price
A migration that never finished, reconciled.
Marketo to HubSpot, Pardot to Marketo, Eloqua to anything, or a CRM swap underneath them. We reconcile what actually crossed, what silently did not, and the records refused on purpose — each with a reason attached.
What you get
Deliverables, named before we start.
A record-level reconcile
Source counts against destination counts, object by object, with the delta explained rather than estimated. You get the query behind every number.
The refusal list
Records that did not cross and should not have — malformed, duplicated, consent-expired — each with the rule that refused it, so the gap is a decision instead of a mystery.
Field and value mapping, corrected
Picklists that lost their options, dates that shifted timezone, booleans that became strings. Fixed in place, with a before-state captured for each change.
Re-migration of the gap
What should have crossed, moved across under gates — 0 then 1 then 10 then the remainder — with your written go at each step.
Reporting continuity
The historical attribution that broke at the cutover, rebuilt so year-over-year comparisons survive the move.
A runbook for the next one
The import standard, the mapping table and the checks, written down so your team runs the next migration without us.
How it runs
Week by week.
Counts and contracts
Every object counted on both sides. We agree what "complete" means in numbers before touching a record.
The delta, explained
Each missing record traced to a cause: refused by a rule, lost to a mapping, or never attempted. No bucket called "other".
Mapping repair
Fields, picklists and values corrected in a sandbox or a scoped test group, with the before-state captured.
Gated re-migration
The gap moves across in stages with tripwires: executions must equal enrolments, or the run halts.
Reporting rebuild
Attribution and lifecycle history stitched across the cutover so the numbers reconcile to what finance closed.
Hand-off
Runbook, recorded walkthrough, and the standing checks your team runs monthly.
Fit
When this is right — and when it isn't.
A fit when
- A migration was declared done and the numbers have not matched since
- You inherited a platform someone else moved you onto
- Reporting history broke at the cutover and nobody rebuilt it
- You are mid-migration and want the seams found before you finish
Not a fit when
- You want a net-new platform selected and stood up from scratch
- The problem is campaign performance rather than data integrity
- You need it done this week — the reconcile takes six
Questions
Answered before you ask.
Do you need production access?
Week one is read-only. Write access is requested only for the mapping repair and re-migration, scoped to the objects in play, and revoked in writing on delivery.
What if the source system is already switched off?
We work from the last export. If no export exists, the reconcile is limited to what the destination can prove — we tell you that before you buy, not after.
Is this the same as the Rescue Sprint?
The Sprint fixes one named deadlock. This is the migration-shaped version of it, with the reconcile methodology built in.
How do you price above 500k records?
Quoted on the call after a record count. The price is fixed once scoped and does not move afterwards.
Related
Other engagements.
Start with a scoping call. Thirty minutes.
If this isn't the engagement you need, you'll hear that — in writing, with the reason and the one that is.