Most CRM migrations are scoped as data projects. Teams inventory their records, map their fields, and schedule an export. The technical work is real but manageable. The part that routinely breaks migrations — and the part almost no implementation guide addresses — is everything that isn't data.
CRM migrations fail because of workflow logic that lives in people's heads, custom properties nobody documented, historical data expectations that turn out to be wrong, integrations that break in ways only visible after go-live, and sequences that simply don't export. Addressing these requires a different kind of work than data mapping: it requires structured discovery, stakeholder interviews, and honest decisions about what to migrate versus what to rebuild.
This guide covers both dimensions. The data mechanics are here, but the framework that makes migrations succeed — spending 40% of your time understanding what the old system actually does — is the part worth reading carefully.
The CRM Migration Failure Stack
These are the five layers where migrations fail, ordered by how consistently they're underestimated. Teams that have done this before front-load their discovery on layers one and five. First-timers usually discover them after go-live.
-
Hidden Workflow Logic
Every mature CRM has automations, field defaults, required-field rules, and stage-transition triggers that no one ever formally documented because they "just worked." A deal moving from Proposal to Negotiation might auto-assign a task, send an internal notification, update a forecast category, and trigger an integration event — all invisible unless you test the transition deliberately. Discovery requires interviewing every power user, not just admins. The power user who closes 40% of the team's deals knows exactly which edge-case behaviors they depend on. The admin who configured the system three years ago often doesn't.
-
Custom Property Debt
Fields accumulate in CRMs faster than they're retired. A field created for a 2022 ABM campaign, a field a single rep uses to track something personal, a field that was supposed to feed a report that was never built — these make up a substantial portion of custom properties in any CRM that's been used for more than two years. In practice, around 40% of custom fields in mature CRM instances have either zero data or are used by fewer than 5% of the team for purposes that exist nowhere in the official process documentation. Migration forces a decision on each one. That decision-forcing is valuable, but it takes time. Budget two hours per dozen custom fields for the review meeting alone.
-
Historical Data Expectations
Teams assume all history will migrate. They want five years of call notes, email logs, and activity records in the new system because they occasionally need to look something up. The technical migration is usually feasible. What's less understood is the usability cost: five years of logged activity on every contact creates a noise problem in the new system that makes current activity harder to find and pipeline context harder to read. The better decision for most teams is a clean start with read-only archived access to the old system for 12 months. The cases where you actually need old activity data are rare enough that retrieval from an archive is a better tradeoff than cluttering every record with years of history.
-
Integration Re-Architecture
Every integration — Gong, ZoomInfo, LinkedIn Sales Navigator, Outreach, DocuSign, your marketing automation platform — must be re-pointed to the new CRM. Each integration has its own migration path. Some have a straightforward reconnect. Others require rebuilding field mappings, recreating webhook configurations, and re-authenticating data flows that haven't been touched since they were first set up. The integrations that break in undiscovered ways are the ones no one thinks to test: the Zapier automation a single rep built 18 months ago, the spreadsheet that pulls CRM data via an undocumented API call, the "it just syncs somehow" connection between CRM and the marketing list. Audit every integration. If someone can't explain how it works, treat it as a migration risk.
-
Sequence and Template Migration
This is the single most consistently underestimated work item in CRM migrations. Email sequences do not export in any meaningful format from HubSpot, Salesforce, or Outreach. Every sequence — the 7-step prospecting sequence, the reactivation sequence, the post-demo follow-up, the champion sequence — must be manually recreated in the new system. If your team runs 15 active sequences with an average of 6 steps each, that's 90 individual email templates to write or migrate, each requiring deliverability review, personalization variable remapping, and timing adjustment for the new system's logic. A team that has been building sequences for three years often has 30–40 active and semi-active sequences. Budget three to five days of dedicated work for sequence migration alone.
The Migration Tax: Estimating Your Real Effort
Project plans that scope CRM migrations by record count are wrong. The actual effort driver is configuration complexity. Use this formula to build a defensible estimate before committing to a timeline.
A 25-person team with 12 active sequences, 80 custom properties, 6 integrations, and 4 power users: 40 + 36 + 40 + 24 + 40 + 8 = 188 hours, times 1.3 = approximately 245 hours. That's roughly six weeks of full-time equivalent work, not the "a few weekends" that migrations are often scoped as internally.
Teams count their active integrations but miss the undocumented ones. Before finalizing your estimate, spend 30 minutes with each power user asking: "Is there anything that connects to the CRM that IT didn't set up?" The answer is almost always yes.
The Three Migration Strategies
There is no universally correct approach. Choose based on your team size, configuration complexity, tolerance for operational disruption, and how long you can realistically run a project in parallel with normal business.
Big Bang
All users cut over on a single date. Old system goes read-only immediately after. Fast completion, concentrated risk. Works best for teams under 20 users with fewer than 8 active sequences and fewer than 4 integrations. Fails badly when undiscovered issues surface on day one of production use.
Parallel Run
Both systems run simultaneously for 30–90 days. New data is entered in both. Lower failure risk, high administrative burden. Reps resent dual data entry within two weeks. The old system becomes the default under pressure. Set a hard cutoff date before you start or the parallel run becomes permanent.
Phased Rollout
Migrate by team or use case. One sales pod goes live first; the rest follow over 4–8 weeks. Each phase surfaces issues before they affect the whole org. Total timeline is longest. Good for teams over 50 users, complex setups, or situations where disrupting any single team for more than a week is unacceptable.
One honest note on parallel runs: they are presented as low-risk but they introduce a different kind of risk — data divergence. When reps are under pressure, they update wherever is most convenient. After 60 days of parallel operation, you will have deals that exist in different states across two systems, contacts with activity logged in only one, and no clear source of truth. The parallel run works only if someone is actively auditing data parity weekly. Budget for that overhead before choosing this strategy.
Migration as a Data Quality Event
Most teams treat migration as a data preservation exercise: move everything, lose nothing. That framing is wrong. The correct frame is: migration is the only moment you have organizational permission to delete bad data at scale.
After go-live, deleting records requires justification. During migration, not migrating a record requires justification. Use that reversal of the default to make decisions you've been deferring for years.
Before migrating any data object, apply these filters:
- Contacts not touched in 24 months: Archive, do not migrate. A contact with no activity in two years is not a lead, it's a data liability. Export a backup and keep it in cold storage. The new system doesn't need it.
- Duplicate records: Deduplicate before export. Running a deduplication pass in the new system after migration is dramatically harder than doing it in the system you understand. Tools like Dedupely (for HubSpot) or DemandTools (for Salesforce) are worth the cost if your duplicate rate is above 5%.
- Deals stuck in stage for 180+ days: Close as lost before migration. They are not active pipeline. Migrating them inflates your pipeline in the new system and creates a misleading baseline for forecasting.
- Custom properties with no data: Do not migrate. A field with null values in 95% of records exists for a reason that no longer applies. Find that reason before deciding — but default to deleting.
- Completed activities older than 12 months: Consider archiving rather than migrating. Call logs, email records, and meeting notes from three years ago rarely influence current decisions. Archive them in the old system and set a 12-month read-only retention period instead of migrating the volume.
Teams that treat migration as a cleanup event consistently report that the new system feels faster and cleaner even on identical hardware. They're right. 60% of the data in a mature CRM is noise. Migration is the moment to remove it.
Realistic Timeline by Setup Complexity
| Team Size | Setup Complexity | Recommended Strategy | Realistic Timeline | Primary Risk |
|---|---|---|---|---|
| 1–15 users | Simple: few sequences, 2–3 integrations, under 30 custom fields | Big Bang | 3–5 weeks | Undocumented rep-built automations |
| 15–40 users | Moderate: 10–20 sequences, 4–6 integrations, 50–100 custom fields | Big Bang or Parallel Run | 6–10 weeks | Sequence recreation underestimated |
| 40–100 users | Complex: 20+ sequences, 6+ integrations, 100+ custom fields | Phased Rollout | 10–18 weeks | Integration re-architecture and data divergence during phases |
| 100+ users | Enterprise: multiple teams, deep integrations, legacy data | Phased Rollout with pilot team | 16–24 weeks | Stakeholder alignment across teams with conflicting timelines |
The Migration Readiness Checklist
Complete all 15 items before beginning technical migration work. Items left incomplete become blockers in the middle of cutover — the worst possible moment to discover them.
Discovery (complete before anything else)
- Interview every power user: document which CRM behaviors they depend on that aren't in official documentation
- Export and review all automations, workflows, and triggers — not just the ones IT knows about
- List every integration and confirm who owns it and how it was configured
- Audit custom properties: mark each one as migrate, archive, or delete
- Inventory all active sequences and email templates — include rep-created ones, not just admin-created ones
Data Preparation
- Run deduplication pass on contacts and companies
- Close or archive deals stuck in stage for 180+ days
- Remove or archive contacts with no activity in 24+ months
- Standardize picklist values that have accumulated variants (e.g., "USA", "U.S.", "United States")
- Complete field mapping document: old field → new field, with data type and transformation notes
New System Readiness
- Recreate all pipeline stages with identical names and matching required fields
- Complete test migration with 500-record sample — verify all field mappings and relationships
- Reconnect and test each integration before production cutover
- Rebuild all sequences and templates — do not defer this to post-migration
- Confirm user roles, permission sets, and org-level settings match intended access model
Do not go live until 100% of sequences are rebuilt and tested. Reps who can't run their sequences from day one revert to email — and that behavior is very hard to reverse once it becomes habit.
The First 30 Days After Cutover
Go-live is not the end of the migration. It's the start of the adoption phase, which is where most of the value is made or lost.
The specific failure mode to watch for: reps who are frustrated with the new system go back to the old system for reference. Once they're in the old system, they start updating it. Within two weeks, you have a data split. Prevent this by making the old system read-only on cutover day, not 30 days later. The discomfort of forcing people forward is less damaging than the chaos of active data in two places.
In the first 30 days, track these metrics daily for the first week, then weekly:
- Login rate by user: Anyone not logging in daily in week one needs a direct conversation, not a reminder email.
- Deal update frequency: If deals aren't moving through stages, reps aren't using the CRM to manage their pipeline. This is a workflow adoption problem, not a training problem.
- Sequence enrollment rate: If sequences aren't being used, the rebuild is incomplete or reps don't know where to find them. Both are fixable in day one if caught early.
- Support ticket volume and categories: The first two weeks will generate support tickets. Categorize them. A cluster of tickets around the same feature means training failed there; fix the training, not just the tickets.
Set a hard decommission date for the old system at 30–45 days post-cutover. Announce it before migration begins. "The old system goes read-only on [date], and offline 30 days after that" is information people need to plan around. Springing it on them after go-live creates resistance that could have been processed earlier.
The teams that succeed at CRM migrations are the ones that spend 40% of their time on discovery — systematically documenting what the old system actually does, including everything that exists only in people's heads — and 20% on data, rather than the reverse. The technical work is real, but it's the smaller problem. Understanding your current system well enough to rebuild its logic intentionally in a new one is where migrations are won or lost.
Planning a migration?
Revian's implementation team has run migrations from Salesforce, HubSpot, and Outreach. We scope migrations honestly, including the workflow discovery work most vendors skip.
Request a Technical Session