CRM Migrations

CRM migrations build character.

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.

Cutover board · v3
Record counts reconciledMATCHED
Owners mapped to new usersDONE
Open deals + stage historyDONE
Emails, calls, notes, filesDONE
Legacy workflow #47 (no owner)FOUND IT
Day-one dashboardsLIVE

the one that breaks everything is always the one nobody wrote down

75+CRM migrations delivered
0Data loss. Every record reconciled.
Day 1Reporting that works at cutover
2016Engineering GTM systems since
Why they build character

A migration is a stress test of every shortcut your company ever took.

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.

#1 fear PIPELINE

Losing pipeline mid-quarter

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.

DATA

Years of mess

Duplicates, orphaned contacts, free-text fields that should be picklists, and 400 custom properties where 90 are actually used.

AUTOMATION

Invisible logic

Workflows, flows, triggers and integrations quietly doing important work that nobody documented. You find out when it stops.

REPORTING

The board deck can't break

Leadership still needs the numbers on the 1st. Historical trends have to survive the move, not reset to zero.

PEOPLE

Reps hate change

Different screens, different buttons, different habits. Without enablement, the new CRM becomes a spreadsheet with a login.

INTEGRATIONS

Everything is connected

Billing, product data, enrichment, sequencing, support, data warehouse. Every connector has to be re-pointed without double-writing.

TIMING

The cutover window

Freeze too early and you lose selling days. Freeze too late and records drift between systems. The window is smaller than you think.

The gotchas

Things we learned the hard way, so you don't have to.

Every one of these has blown up a migration somewhere. Click any to see what goes wrong and how we handle it.

What breaks

Records move, but emails, calls, meetings, notes and attachments don't. Reps lose the context of every relationship they own.

How we handle it

Activities and files get their own migration track with associations rebuilt to the right contact, company and deal, then spot-checked against the source.

What breaks

Every record looks like it was created on cutover day. Cohort reports, sales cycle length and pipeline velocity are wrecked.

How we handle it

Original created dates, close dates and stage timestamps get carried into dedicated legacy fields, and reports are rebuilt to read from them.

What breaks

Records import unassigned or default to the admin who ran the import. Territories and round robins break instantly.

How we handle it

Users get provisioned first. We build an owner ID map, including former employees, before a single record loads.

What breaks

"Closed Won", "closed-won" and "Won" were all in use. The import silently drops or rejects whatever doesn't match.

How we handle it

Every dropdown gets a value-level mapping table, normalized before load, with a reject log reviewed on every test run.

What breaks

Workflows go live before the data load. 30,000 contacts get a welcome email, or every rep gets 4,000 task notifications.

How we handle it

Automations stay off during the load and are switched on in a controlled sequence after reconciliation, with enrollment criteria that exclude migrated records.

What breaks

Billing, product and warehouse systems key off the old CRM's IDs. After cutover they create duplicates or stop syncing.

How we handle it

We store the legacy ID on every migrated record and use it as the matching key while integrations are re-pointed.

What breaks

Opt-outs don't come over. Marketing emails someone who unsubscribed two years ago, and now you have a compliance problem.

How we handle it

Unsubscribes, bounces and consent status migrate first and get verified before any marketing email is allowed to send.

What breaks

Parent and child accounts, multiple contacts per deal, and contact roles collapse into one-to-one links. Account-based reporting stops making sense.

How we handle it

We model the object relationships in the target system first, then load in dependency order: companies, contacts, deals, line items, then associations.

What breaks

The load gets throttled halfway through the cutover window. Now half your data is in each system and reps are already logging in.

How we handle it

Full-volume test loads tell us exactly how long cutover takes. Historical data loads early, and only the delta moves at cutover.

What breaks

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.

How we handle it

The migration is the one moment you get to clean house. We cut unused fields, dedupe, and redesign stages and lifecycle before anything moves.

The toolkit

We don't wing it. We bring the tools.

75+ migrations turned into a repeatable kit. Every engagement starts with these, not a blank page.

Field mapping workbook

Every object, field and picklist value mapped source to target, with owner, transformation rule and "keep, merge or kill" decision.

Automation inventory

Every workflow, flow, trigger, sequence and integration catalogued, with what it does and whether it gets rebuilt, replaced or retired.

Reconciliation scripts

Record counts, field fill rates and dollar totals compared source to target, object by object. Zero data loss is proven, not promised.

Cutover runbook

Hour-by-hour plan for freeze, delta load, integration switch, automation activation and go-live, with named owners and a rollback path.

Dedupe and cleanup rules

Matching logic for contacts and companies, merge survivorship rules, and a cleanup pass so you move clean data, not clutter.

Day-one reporting pack

The dashboards leadership actually uses, rebuilt and validated against the old system before cutover, so the numbers match on day one.

How we run it

Seven steps. No surprises at cutover.

Run by a JayOh growth pod: a consultant who owns the outcome and developers who build it, on sprint-based execution.

STEP 1

Audit

Inventory objects, fields, automations, integrations and reports. Find what's actually used.

STEP 2

Design

Target data model, stages, lifecycle and permissions. Fix the architecture, don't copy it.

STEP 3

Map

Field and value mapping workbook, signed off by RevOps and sales leadership.

STEP 4

Clean

Dedupe, normalize, archive dead records. Move only what earns its place.

STEP 5

Test load

Full-volume sandbox loads, reconciled and reviewed, until the numbers match.

STEP 6

Cutover

Freeze, delta load, re-point integrations, switch on automations. Runbook driven.

STEP 7

Hypercare

Rep enablement, issue triage and reporting validation in the weeks after go-live.

Step 5 is where the work happens: test load v1→v2→v3→reconciled. go.
Tips & tricks

Free advice from 75+ cutovers.

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.

Readiness check

How ready is your migration?

Check everything that's true today. Be honest. Nobody's watching.

0 / 10

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 Review
Migration paths

We've moved data in every direction.

HubSpot Platinum Partner and Salesforce Partner, with migrations, consolidations and post-acquisition merges across the stack.

Salesforce → HubSpot HubSpot → Salesforce Pardot → HubSpot Marketo → HubSpot Pipedrive → HubSpot Zoho → HubSpot Salesforce org + Salesforce org HubSpot portal + HubSpot portal Spreadsheets → a real CRM

post-M&A consolidation? we've unified 4 systems into 2 in 90 days.

FAQ

The questions everyone asks.

How long does a CRM migration take?

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.

Will we lose data?

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.

Do reps have to stop selling during cutover?

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.

Should we just lift and shift?

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.

We're already mid-migration and it's going sideways. Can you help?

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.

What happens after go-live?

Hypercare: rep enablement, issue triage and reporting checks. Many clients keep a JayOh pod on to run and improve the new system after cutover.

Let's make it easy

Your migration will build character. It doesn't have to break anything.

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.