They're hard. Thousands of records, years of custom fields, automations nobody documented, and a sales team that needs pipeline on Monday morning. We've run 75+ migrations. We know where the bodies are buried, and we bring the tools, tips, tricks and gotchas that make yours boring, in the best way.
the one that breaks everything is always the one nobody wrote down
Most teams do one every few years. That means nobody in the room has done it recently, and every decision feels high-stakes. Here's what actually makes them hard.
Open deals, stage history, close dates, amounts, line items and owners all have to land exactly right. If reps open the new CRM and their pipeline looks wrong, trust is gone before adoption starts.
Duplicates, orphaned contacts, free-text fields that should be picklists, and 400 custom properties where 90 are actually used.
Workflows, flows, triggers and integrations quietly doing important work that nobody documented. You find out when it stops.
Leadership still needs the numbers on the 1st. Historical trends have to survive the move, not reset to zero.
Different screens, different buttons, different habits. Without enablement, the new CRM becomes a spreadsheet with a login.
Billing, product data, enrichment, sequencing, support, data warehouse. Every connector has to be re-pointed without double-writing.
Freeze too early and you lose selling days. Freeze too late and records drift between systems. The window is smaller than you think.
Every one of these has blown up a migration somewhere. Click any to see what goes wrong and how we handle it.
Records move, but emails, calls, meetings, notes and attachments don't. Reps lose the context of every relationship they own.
Activities and files get their own migration track with associations rebuilt to the right contact, company and deal, then spot-checked against the source.
Every record looks like it was created on cutover day. Cohort reports, sales cycle length and pipeline velocity are wrecked.
Original created dates, close dates and stage timestamps get carried into dedicated legacy fields, and reports are rebuilt to read from them.
Records import unassigned or default to the admin who ran the import. Territories and round robins break instantly.
Users get provisioned first. We build an owner ID map, including former employees, before a single record loads.
"Closed Won", "closed-won" and "Won" were all in use. The import silently drops or rejects whatever doesn't match.
Every dropdown gets a value-level mapping table, normalized before load, with a reject log reviewed on every test run.
Workflows go live before the data load. 30,000 contacts get a welcome email, or every rep gets 4,000 task notifications.
Automations stay off during the load and are switched on in a controlled sequence after reconciliation, with enrollment criteria that exclude migrated records.
Billing, product and warehouse systems key off the old CRM's IDs. After cutover they create duplicates or stop syncing.
We store the legacy ID on every migrated record and use it as the matching key while integrations are re-pointed.
Opt-outs don't come over. Marketing emails someone who unsubscribed two years ago, and now you have a compliance problem.
Unsubscribes, bounces and consent status migrate first and get verified before any marketing email is allowed to send.
Parent and child accounts, multiple contacts per deal, and contact roles collapse into one-to-one links. Account-based reporting stops making sense.
We model the object relationships in the target system first, then load in dependency order: companies, contacts, deals, line items, then associations.
The load gets throttled halfway through the cutover window. Now half your data is in each system and reps are already logging in.
Full-volume test loads tell us exactly how long cutover takes. Historical data loads early, and only the delta moves at cutover.
A lift-and-shift copies every bad habit into a brand-new system. Six months later, the new CRM looks exactly like the old one.
The migration is the one moment you get to clean house. We cut unused fields, dedupe, and redesign stages and lifecycle before anything moves.
75+ migrations turned into a repeatable kit. Every engagement starts with these, not a blank page.
Every object, field and picklist value mapped source to target, with owner, transformation rule and "keep, merge or kill" decision.
Every workflow, flow, trigger, sequence and integration catalogued, with what it does and whether it gets rebuilt, replaced or retired.
Record counts, field fill rates and dollar totals compared source to target, object by object. Zero data loss is proven, not promised.
Hour-by-hour plan for freeze, delta load, integration switch, automation activation and go-live, with named owners and a rollback path.
Matching logic for contacts and companies, merge survivorship rules, and a cleanup pass so you move clean data, not clutter.
The dashboards leadership actually uses, rebuilt and validated against the old system before cutover, so the numbers match on day one.
Run by a JayOh growth pod: a consultant who owns the outcome and developers who build it, on sprint-based execution.
Inventory objects, fields, automations, integrations and reports. Find what's actually used.
Target data model, stages, lifecycle and permissions. Fix the architecture, don't copy it.
Field and value mapping workbook, signed off by RevOps and sales leadership.
Dedupe, normalize, archive dead records. Move only what earns its place.
Full-volume sandbox loads, reconciled and reviewed, until the numbers match.
Freeze, delta load, re-point integrations, switch on automations. Runbook driven.
Rep enablement, issue triage and reporting validation in the weeks after go-live.
Whether or not you work with us, do these.
Never cut over at quarter end. Pick the quietest two weeks of the sales calendar and protect them.
Add a "Legacy ID" field to every object. It's the single most useful field you'll create all year.
Export a full backup before you touch anything, and keep read-only access to the old system for at least 90 days.
Start with reports, work backwards. If you know the 10 reports leadership needs, you know which fields matter.
Kill fields aggressively. If it's under 5% filled and nobody can name a report it feeds, it doesn't move.
Load historical data early. Closed deals and old activities can go weeks ahead. Only open records and recent changes move at cutover.
Give reps a sandbox before go-live. One hour of hands-on practice beats ten pages of documentation.
Name one owner per object. Committees don't sign off on field mappings. People do.
Turn automations on one at a time. Watch enrollment counts after each one before flipping the next.
Reconcile dollars, not just rows. Matching record counts can still hide a pipeline that's off by $2M.
Check everything that's true today. Be honest. Nobody's watching.
Character-building ahead
You're at the start. That's normal. This is exactly where a runbook review saves the most time and the most pipeline.
Get a Runbook ReviewHubSpot Platinum Partner and Salesforce Partner, with migrations, consolidations and post-acquisition merges across the stack.
post-M&A consolidation? we've unified 4 systems into 2 in 90 days.
It depends on data volume, number of integrations and how much redesign you want. We scope it as a fixed project sized to your org after an audit, and the timeline comes from the test loads, not a guess.
No. Every object is reconciled on record counts, field fill rates and dollar totals before go-live, and the old system stays available read-only as a safety net.
Barely. Historical data moves ahead of time, so the freeze window only covers the delta. Most teams lose a day or less of CRM access.
Usually not. A migration is the cheapest moment to fix your data model, stages and lifecycle. We'll tell you what's worth redesigning and what's fine to move as-is.
Yes, and that's a common call. We start with a runbook review, find the gaps, and take over or support whatever's in flight.
Hypercare: rep enablement, issue triage and reporting checks. Many clients keep a JayOh pod on to run and improve the new system after cutover.
Get a migration runbook review before your cutover date is locked. We'll walk through your plan, flag the gotchas, and tell you exactly where it's likely to break.
we're not just another agency. we're your growth engineering team.
We engineer growth systems. JayOh builds the RevOps architecture, GTM execution and data infrastructure that turn messy revenue operations into predictable pipeline for B2B SaaS and PE-backed teams.