The Salesforce to Microsoft Dynamics 365 Migration Blueprint (2026 Edition)
Introduction
Migrating from Salesforce to Microsoft Dynamics 365 Sales is a strategic move that aligns your CRM with the broader Microsoft 365 ecosystem. However, a “lift and shift” approach rarely works. To ensure a seamless transition, you must navigate the structural differences between the two platforms.
Migration Tips
Here are some areas to focus on during your migration.
Audit and “Declutter” Before You Move
Think of migration like moving to a new house: you don’t want to pack the junk you haven’t used in years.
- The 24-Month Rule: Identify leads and opportunities with no activity in the last two years. Archive these into a data lake or CSV rather than importing them into the live environment.
- Standardize Formats: Cleanse phone numbers, state abbreviations, and naming conventions at the source.
Master the Data Schema (Entity & Field Mapping)
Salesforce and Dynamics 365 speak different “languages.” Understanding the translation between Objects and Tables is your foundation.
The “Big Three” Comparison
| Salesforce Term | Dynamics 365 Sales Term | Technical Note |
|---|---|---|
| Object | Table | The primary data container; stored as entities within Microsoft Dataverse. |
| Field | Column | The specific data point or attribute within a table. |
| Picklists | Choices | Dynamics uses “Global Choice Sets” for efficient cross-table reuse. |
| Workflow / Flow | Power Automate | The primary engine for all low-code business logic and external integrations. |
Mapping Nuances
- Case Sensitivity: Salesforce Record IDs are case-sensitive; Dynamics 365 IDs are not. Always use a unique External ID field in Dynamics to map the original Salesforce ID for future reconciliation.
- Formula Fields: These do not export as logic. You must recreate the math in Dynamics using Calculated Columns or Rollup Fields.
The Product Catalog & Pricing Engine
This is often the most complex area of a migration. Dynamics 365 uses a structured hierarchy that differs from Salesforce’s Price Books.
- Unit Groups: Before importing products, you must define how you sell (e.g., “Per Hour,” “Per Box,” “Each”).
- Price Lists: In Dynamics, every Price List is tied to a specific Currency. If your Salesforce Price Book contains multiple currencies, you will create multiple Price Lists in Dynamics.
- The Sequence: You must import in this order: Currencies ➡️ Unit Groups ➡️ Products ➡️ Price Lists ➡️ Price List Items.
Rebuilding Business Logic
You cannot directly migrate Salesforce Apex or Flows. They must be re-envisioned:
- Power Automate: Use this for background logic, such as sending notifications or updating child records when a parent record changes.
- Business Rules: Use these for “On-Screen” logic (e.g., “If a deal is over $50k, make the ‘Discount Reason’ field mandatory”). This replaces many Salesforce Validation Rules with a no-code solution.
Storage Optimization: The “Lean CRM” Strategy
Salesforce storage is notoriously expensive. Dynamics 365 offers a more cost-effective path via SharePoint Integration.
- The Move: Instead of importing Salesforce “Attachments” into the Dynamics database, map them to SharePoint.
- The Result: Files appear on the Dynamics Timeline natively, but they are stored in SharePoint, keeping your CRM database fast and reducing storage costs by up to 80%.
The Technical Migration Sequence
Data has dependencies. To avoid “Record Not Found” errors, follow this exact import order:
- Users & Business Units: You cannot assign an owner to a record if the user doesn’t exist.
- Accounts: The primary organizational containers.
- Contacts: Linked to the newly created Accounts.
- Product Catalog: (Units, Products, and Price Lists).
- Opportunities: Linked to Accounts, Contacts, and Products.
- Activities (Timeline): Tasks, emails, and notes are migrated last.
Strategic Launch & Training
- Appoint “Champions”: Identify power users in your sales department to lead the training.
- The Pilot Program: Migrate to one sales region first. Use their feedback to refine the UI before the global “Go-Live.”
- Pro Tip: Disable all active Plugins and Triggers in Dynamics 365 during the initial data load to prevent the system from slowing down or sending accidental “Welcome” emails to thousands of old leads.
Written By:
Vipul Vishwas
Power Platform Solution Architect
Connect on LinkedIn