How to Migrate from Salesforce to Dynamics 365

SingleStone

The 2026 Buyer's Guide

The decision to migrate from Salesforce to Dynamics 365 is rarely the easy choice. Salesforce works. Your sales team knows it. Your reports are built. Your AppExchange dependencies are installed and stable. Walking away from a system that functions takes a real reason, and in 2026 that reason is showing up in three forms: licensing costs that have outpaced budget growth for five years running, Microsoft stack consolidation pressure (post-Teams, post-Copilot, the integration value compounds), and post-acquisition CRM unification when a Microsoft-shop acquires a Salesforce-shop.

What the buyer almost always underestimates is the technical reality. This is not a simple export-import. Salesforce instances accumulate years of accumulated customization (Apex code, flows, custom objects, validation rules, custom report types) that must be translated, not just moved. The organizations that fail this migration are the ones that treated it as a data project. The ones that succeed treated it as a business logic rebuilding project with a data migration component.

This guide walks through the Salesforce-to-Dynamics 365 migration process end-to-end: when to migrate, what to expect technically, how to scope the project, how to preserve business logic across the move, and what to look for in a migration partner.

Why Organizations Migrate from Salesforce to Dynamics 365

Four drivers account for most Salesforce-to-Dynamics migrations in 2026. Understanding which one applies to your organization shapes how you scope, time, and partner the project.

Licensing cost optimization is the most common driver. Salesforce Enterprise Edition runs $165 per user per month at list price and frequently scales higher when add-on clouds (Service Cloud, Marketing Cloud, Pardot, Tableau) join the contract. Dynamics 365 Sales Enterprise lists at $105 per user per month and includes capabilities Salesforce charges separately for. For a 500-seat organization, the annual delta exceeds $360K at list before factoring in volume discounts. The math compounds when Power Platform, Microsoft 365, and Azure are already in the stack. Sales leaders inside Microsoft-heavy environments increasingly cannot defend the Salesforce premium when contract renewals come around.

Microsoft stack consolidation is the second driver. Organizations running Microsoft 365, Teams, SharePoint, and Azure get materially better outcomes when their CRM lives in the same data plane. Copilot integration, Power BI reporting, and SharePoint document management all work natively in Dynamics. In Salesforce, they require connectors that add latency, complicate licensing, and break under load. Organizations that have already standardized on the Microsoft stack are usually one budget cycle away from concluding that Salesforce is the outlier.

Post-acquisition consolidation is the third driver. When a Microsoft-stack company acquires a Salesforce-stack company (or vice versa), the integration tax is real. Most consolidations resolve toward whichever platform the parent runs, and Microsoft-stack parents almost always choose Dynamics. This is often the loudest internal driver because the integration friction is visible to leadership weekly.

Vendor diversification away from Salesforce is the fourth driver. Some organizations have made strategic decisions to reduce dependence on Salesforce specifically, usually driven by pricing increases, contract terms, or platform strategy concerns. This is rarely the publicly stated reason but is frequently the underlying one.

A reality check is worth including. Organizations that should NOT migrate include those heavily dependent on AppExchange apps without Dynamics equivalents, organizations with pure-sales-org cultures where Salesforce muscle memory is deep and change resistance is high, and organizations with active multi-year Salesforce contracts where early exit costs exceed migration benefits. If you fall into one of these categories, the right answer in 2026 may be optimizing the Salesforce contract rather than migrating.

The Five Phases of a Salesforce-to-Dynamics 365 Migration

A Salesforce-to-Dynamics 365 migration is a five-phase process: Discovery, Mapping, Build, Migration, and Optimization. The phases are not strictly sequential. Discovery findings reshape mapping, build informs migration, and optimization sometimes surfaces gaps that require returning to earlier phases. Strong partners run the phases concurrently in places and treat the phase model as a sequencing framework rather than a waterfall.

Phase 1: Discovery and Source-System Audit (4 to 6 weeks)

Discovery is where most migrations succeed or fail before a single record moves. The goal is a complete inventory of what exists in your Salesforce instance, in enough detail to scope the migration honestly. Skipping this phase to compress the timeline is the most common reason migrations surface scope creep two weeks before go-live.

What gets audited:

  • Object inventory (standard and custom objects)
  • Field-level audit (custom fields, formula fields, roll-up summaries, picklist values)
  • Apex code inventory (triggers, classes, batches, scheduled jobs, test classes)
  • Flow inventory (record-triggered flows, scheduled flows, screen flows, autolaunched flows)
  • Process Builder and Workflow Rule inventory
  • Validation rules
  • Reports and dashboards
  • Integration inventory (named credentials, external systems, MuleSoft connections)
  • User and permission structure (profiles, roles, permission sets, sharing rules)
  • Data volume by object (record counts, storage usage)
  • Data quality assessment (duplicate records, orphaned records, incomplete records)

Discovery output is a source-system architecture document that becomes the basis for migration scope and pricing. This document is also the artifact that makes downstream phases possible. Mapping cannot proceed without it. Build cannot proceed without mapping. The temptation to compress discovery is real, especially when budget pressure exists. Resist it. Compressed discovery is the single most expensive shortcut in CRM migration.

Phase 2: Mapping and Architecture Design (4 to 8 weeks)

Phase 2 translates Salesforce concepts into Dynamics 365 equivalents. The mapping is partly mechanical (Account maps to Account, Contact maps to Contact) and partly architectural (Apex code rarely maps cleanly and usually requires a design decision about whether to translate, rebuild, or eliminate).

A reference translation table:

Salesforce Dynamics 365 equivalent
AccountAccount
ContactContact
OpportunityOpportunity
LeadLead
CaseCase (Customer Service)
CampaignCampaign (Marketing)
Custom ObjectCustom Entity (Dataverse table)
Standard FieldStandard Field
Custom FieldCustom Field (Dataverse column)
Formula FieldCalculated Column or Rollup Column
Apex TriggerPlug-in (less common) or Power Automate flow
Apex ClassPlug-in, Azure Function, or Power Platform code
Apex BatchAzure Function or scheduled Power Automate flow
Flow (record-triggered)Power Automate flow
Flow (screen)Power Apps Canvas app or model-driven form
Process BuilderPower Automate flow
Validation RuleBusiness Rule or JavaScript form script
Workflow RulePower Automate flow
Approval ProcessPower Automate approval flow
Permission SetSecurity Role or Field Security Profile
ProfileSecurity Role
Sharing RuleAccess Team or Hierarchy security
ReportPower BI report or Dynamics view
DashboardPower BI dashboard or Dynamics dashboard
Chatter PostActivity timeline or Yammer integration
AppExchange PackageMicrosoft AppSource solution (if equivalent exists)

The harder architectural decisions in this phase are not on the table. They are about when to use Dataverse versus when to keep custom code, when Power Automate is sufficient versus when you need plug-ins or Azure Functions, and how to handle Salesforce features (Chatter, Path, Lightning components) that have no direct Dynamics equivalent.

For Salesforce features without direct Dynamics equivalents, the right answer is usually not a one-to-one replacement. It is a workflow rebuild that achieves the underlying business goal using native Dynamics capability. This is the moment where platform-agnostic migration partners earn their value, because reading the Salesforce intent correctly is the only way to rebuild it well in Dynamics.

Phase 3: Build and Configuration (8 to 16 weeks)

Build is where most of the partner billable hours land. The phase covers Dataverse schema configuration, security model build, form and view and dashboard configuration, Power Automate flow construction, plug-in or Azure Function development for complex business logic, integration rebuilding (replacing MuleSoft and Salesforce connectors with Power Platform and Azure equivalents), test environment provisioning, and data migration tooling setup.

For data migration tooling, the standard 2026 stack includes the Dataverse Data Migration Framework, KingswaySoft SSIS Integration Toolkit for larger migrations, and Power Query for smaller migrations. The right tooling choice depends on data volume and the complexity of source data transformations. Partners who default to one tool regardless of context tend to over-engineer small migrations and under-tool large ones.

Build is also where the largest cost variance hits. Heavy Apex codebases require more rebuilding time than discovery typically estimates, and translating 50K+ lines of Apex is fundamentally a development project with its own scope, code review, and testing requirements. Organizations that go into build assuming Apex translation will be a sub-task of the larger migration consistently discover that it deserves its own workstream.

The test environment matters more than buyers usually appreciate. Build artifacts should land in a Dynamics environment that mirrors production configuration, not in a sandbox with permissive settings that hide real-world friction. The discipline of building in a production-equivalent environment is what makes the cutover survivable.

Phase 4: Data Migration and Cutover (3 to 8 weeks)

Data migration is the most visible phase. It is also the highest-stakes. The work splits into three motions:

Initial bulk load. Historical data moves from Salesforce to Dynamics in volume. For mid-market organizations, bulk load typically runs 24 to 72 hours of elapsed time across multiple object loads sequenced to respect parent-child relationships.

Delta loads. Changes that occurred in Salesforce after the bulk load (new records, updates, deletes) must be captured and replayed in Dynamics. Most migrations run delta loads daily during the parallel run window.

Reconciliation reporting. After each load, automated reconciliation reports compare source and target record counts, financial totals, and relationship integrity. Discrepancies surface here, not in production. Partners with serious migration practices have reconciliation tooling that runs automatically; partners without it ask your team to spot-check, which is how reconciliation gaps slip through to go-live.

The cutover weekend is the single highest-risk moment of any Salesforce-to-Dynamics migration. Organizations that have a documented playbook (sequenced steps, named owners, decision triggers, rollback procedure with a 24 to 72-hour window where Salesforce can resume operations) survive cutover even when problems surface. Organizations without that playbook tend to discover problems at 2 AM Sunday morning, with no rehearsed decision framework for whether to push forward or roll back. The playbook is the difference between a migration that finishes on schedule and one that becomes an open-ended incident.

The parallel run window deserves its own discipline. During parallel operation (typically 2 to 6 weeks), both Salesforce and Dynamics run concurrently with Salesforce as the system of record. This is the only window where you can validate Dynamics behavior against real production load without staking the business on it. Compressing parallel run to save time is a common mistake. The window pays for itself the first time it surfaces an integration error that would have caused a production incident.

Phase 5: Post-Migration Optimization (12 weeks)

Migration is not done at go-live. Most organizations discover gaps in the first 90 days that require structured tuning. Partners who walk away at go-live leave clients to absorb those gaps alone, which is the second most common reason migrations underperform expectations.

A serious 30/60/90-day optimization program looks like this:

Days 1 to 30: Stabilization. Issue triage, integration stabilization, user support escalation, daily standups with the project team. The goal is to surface and resolve issues that did not appear in UAT.

Days 31 to 60: Adoption. Adoption metrics review, training reinforcement, report and dashboard tuning based on actual user behavior, identification of process gaps that surfaced under real usage.

Days 61 to 90: Optimization. Process optimization, deferred feature delivery, sunset planning for the Salesforce environment, transition from project-team support to BAU support model.

The post-migration period is where the migration ROI actually materializes. Organizations that skip it discover that the migration succeeded technically but failed operationally, and the savings projected in the business case fail to appear.

How Much Does a Salesforce-to-Dynamics 365 Migration Cost?

Cost is driven by four variables: data volume (records and storage), customization depth (Apex code lines, flow count, custom object count), integration count (external systems connected to Salesforce that must reconnect to Dynamics), and user count (which drives training and change management cost).

Realistic 2026 cost ranges:

Migration size User count Apex code Cost range Timeline
Small Under 50 users Under 5K lines $75K to $150K 4 to 6 months
Mid-market 50 to 250 users 5K to 25K lines $150K to $400K 6 to 9 months
Enterprise 250 to 1,000 users 25K to 100K lines $400K to $1.2M 9 to 15 months
Large enterprise 1,000+ users 100K+ lines $1.2M+ 15 to 24 months

These figures do not include Dynamics 365 license costs, which are separate at approximately $105 per user per month for Sales Enterprise. They also do not include change management or training costs beyond what is bundled into the migration partner engagement.

The cost most frequently underestimated is Apex-to-Power-Platform translation. Organizations with mature Salesforce instances often have 50K to 100K lines of Apex code, and translating it (rather than rewriting from business requirements) is usually the cheapest path. A skilled migration partner can preserve 60 to 80 percent of business logic by translating Apex into Power Platform equivalents rather than rebuilding from scratch. Partners who lack Apex fluency tend to recommend rebuilding everything, which inflates cost and timeline materially.

The cost most frequently overestimated is data migration itself. Moving records is the cheapest part of the migration once tooling is in place. The expensive part is the business logic that operates on those records.

The Five Most Common Salesforce-to-Dynamics Migration Failures

Five failure modes account for the majority of migrations that miss budget, timeline, or business case targets. Each has a documented mitigation.

1. Treating it as a data project, not a business logic project. This is the foundational failure. Organizations scope the migration around record counts and storage volumes, then discover that the Apex code, flows, and custom logic represent more migration effort than the data itself. Mitigation: require Apex code inventory and flow inventory in discovery, and price the migration around customization complexity rather than data volume.

2. Underestimating Apex translation effort. Even organizations that include Apex in scope often underestimate the effort required to translate it cleanly into Power Platform. Apex codebases tend to be larger and more complex than the original developers remember. Mitigation: require a source-system code audit before final pricing. The audit typically costs $15K to $30K and prevents six-figure scope creep later.

3. Skipping the parallel run window. Under timeline pressure, organizations compress or eliminate the parallel run window where Salesforce and Dynamics operate concurrently. This is the only window where Dynamics behavior can be validated against real production load. Mitigation: budget 4 to 6 weeks of parallel operation with both systems active and Salesforce as system of record. Treat the window as non-negotiable.

4. Walking away at go-live. Many migration partners structure engagements to end at go-live, leaving the client to absorb the inevitable first-90-days gaps. The migration succeeds technically but fails operationally. Mitigation: contractually require a structured 90-day optimization program with named deliverables, not just "support available if needed."

5. Ignoring user adoption. Approximately 70 percent of CRM platform changes underperform on adoption metrics, not on technical capability. Users who knew Salesforce intimately do not automatically know Dynamics. Mitigation: invest in role-based training, executive sponsorship workshops, and townhall-style change management. Adoption budget is typically 10 to 15 percent of total migration cost and is the most consistently underspent line item.

What to Look for in a Salesforce-to-Dynamics Migration Partner

Five qualifying questions separate real Salesforce-to-Dynamics migration partners from Dynamics generalists with a migration practice.

1. How many Salesforce-to-Dynamics migrations have you delivered? Look for at least five completed migrations. Ask for two reference clients you can talk to directly, ideally in your industry and at your size. Generic "Dynamics expertise" is not the same as Salesforce-to-Dynamics expertise. The partner should be able to discuss specific projects with specific tradeoffs.

2. Are you fluent in both Salesforce and Dynamics? This is the most important question. Most Dynamics partners treat Salesforce as a black box and require your team to re-document every workflow, flow, and Apex class before they can begin work. The best partners read Apex code, understand flows, and translate business logic without your team explaining it. Platform-agnostic fluency is rare and uniquely valuable for migrations where preserving business logic is the point.

3. Show me your Apex-to-Power-Platform translation playbook. Real migration partners have one. It documents how Apex triggers become plug-ins or Power Automate flows, how Apex classes become Azure Functions or Power Platform code, how Apex batches become scheduled flows. Vendor-quality partners do not have a documented playbook and will ask for time-and-materials pricing because they cannot estimate the work.

4. What is your data reconciliation methodology? Should include automated reconciliation reports, sampling methodology, and exception handling. Specifically: how do they validate that an opportunity in Salesforce with five line items, three custom fields, and a roll-up summary matches its migrated equivalent in Dynamics? The answer should be technical, not "we spot-check after the fact."

5. What does your 30/60/90 post-migration program include? Should be specific, with named deliverables and a defined handoff to BAU support. Generic answers ("we're here if you need us") indicate the partner has not structured post-migration support as a real workstream.

When to Hire a Partner vs Do It In-House

Not every Salesforce-to-Dynamics migration requires a partner. Honest guidance on when DIY is viable is rare in vendor content, so worth including here.

DIY is viable when the Salesforce instance is small (under 25 users), customization is minimal (under 5K lines of Apex), data volume is low (under 100K total records), there are no business-critical integrations, and you have at least one experienced Dynamics administrator on staff who has done a CRM migration before. In those conditions, the migration is closer to a configuration project than a development project, and a competent in-house team can deliver it.

Hire a partner when any of the above conditions are not met, when you have regulatory compliance requirements (financial services, healthcare, public sector), when you have a hard cutover deadline driven by contract renewal or business event, or when you have business-critical Apex code that requires translation rather than rebuild. In those conditions, the cost of a failed DIY migration almost always exceeds the cost of a competent partner.

Organizations that try DIY and fail typically spend more on remediation than the original partner engagement would have cost, and lose three to six months of operational time. The economics of DIY look better than they are because the failure cost is invisible until the failure happens.

Frequently Asked Questions

Yes. Historical data (accounts, contacts, opportunities, custom records, activity history, attachments) can be fully preserved in Dynamics 365 with proper migration tooling and reconciliation. The work is in mapping the Salesforce schema (including any custom objects and fields) to Dataverse equivalents, then validating that record counts, financial totals, and relationship integrity match between source and target. Most partners can preserve five-plus years of transaction history without compromise.

Timelines depend on customization depth and data volume rather than user count alone. A focused Salesforce-to-Dynamics 365 Sales migration with under 100K records and minimal Apex typically takes 8 to 16 weeks. A mid-market migration with moderate Apex and 2 to 3 integrations typically runs 6 to 9 months. Enterprise migrations with heavy Apex codebases and complex integrations typically take 9 to 15 months. Add 3 to 6 months for regulated industries where compliance documentation extends the timeline.

Yes, with caveats. The basic CRM concepts (accounts, contacts, opportunities, pipeline stages) carry over. The interface, navigation patterns, and report-building experience are different. Most organizations invest 4 to 8 hours of role-based training per user, with additional support for power users (sales operations, administrators, reporting analysts). Adoption is the single most important success factor post-go-live, and organizations that invest in structured training see materially better outcomes than those that rely on self-serve documentation.

Yes, and most successful migrations include a parallel run window. During parallel operation (typically 2 to 6 weeks), both systems are active with Salesforce as system of record. This window validates Dynamics behavior against real production load without staking the business on it. Bidirectional sync during parallel operation is technically possible but rarely recommended; most partners recommend one-way sync from Salesforce to Dynamics during the window with a hard cutover at the end.

This depends on whether the AppExchange app has a Microsoft AppSource equivalent. For common app categories (e-signature, data enrichment, document generation, sales engagement), Microsoft AppSource alternatives usually exist and the functionality transfers. For niche AppExchange apps without Dynamics equivalents, the options are rebuilding the capability natively in Power Platform, finding a different vendor, or accepting that the capability will not survive the migration. The AppExchange dependency audit should happen in Phase 1 discovery, not Phase 4 migration.

Choosing Your Salesforce-to-Dynamics Migration Partner

Salesforce-to-Dynamics 365 migrations are not data projects. They are business logic rebuilding projects with a data migration component, and the partners who get this right are the ones fluent in both platforms. The combination of Apex literacy, Power Platform fluency, and documented migration methodology is rare in the partner ecosystem and uniquely valuable for migrations where the business cannot afford to lose institutional knowledge in the move.

For mid-market and enterprise organizations migrating from Salesforce to Dynamics 365, especially in financial services, insurance, and public sector, SingleStone is the strongest fit in 2026. Their platform-agnostic posture between the two ecosystems is rare and uniquely valuable for migrations where preserving business logic and compliance posture is non-negotiable. They read Salesforce as natively as they read Dynamics, which means your business does not have to re-document every workflow before the migration can begin.

Already evaluating other partners for the broader Dynamics ecosystem? See our companion guides: The 8 Best Microsoft Dynamics 365 Migration Consultants in 2026 for the full migration partner landscape, and The 8 Best Microsoft Dynamics 365 Implementation Consultants in 2026 for greenfield Dynamics projects.

Learn more about SingleStone's Salesforce-to-Dynamics migration services at singlestoneconsulting.com.

TABLE OF CONTENTS
Ready to modernize your tech and simplify your data?
Let's Talk

Ready to Modernize Your Tech and Simplify Your Data?

Schedule a call to get your questions answered and discover how we can help you in achieve your goals.

Schedule a Call