Dynamics 365 to Salesforce Migration: Cross-Platform Move
Microsoft shops choosing Salesforce hit the same wall: Dataverse export is the bottleneck, Power Automate debt must be rebuilt deliberately, and every month of dual licences burns Rand you will never recover. A flat CSV will not carry GUID relationships or SharePoint attachments with it.
We run the managed Dynamics to Salesforce migration that protects pipeline history and cuts dual-licence waste.

Sound Familiar?
These are the exact issues our clients faced before a Dynamics 365 to Salesforce CRM move:
- Dataverse entity exports stall under API service-protection limits of roughly 6,000 requests per five-minute window, so large CRM estates crawl
- Dynamics uses 128-bit GUIDs while Salesforce uses 18-character IDs, so every account, contact, and opportunity relationship must be re-keyed
- Power Automate flows do not port: each complex automation typically takes three to five developer days to rebuild as Salesforce Flows
- Polymorphic activity parties and SharePoint-linked attachments arrive as orphans unless you plan an explicit crosswalk and file pull
- Dual Dynamics and Salesforce licences burn about R4,300 per user per month while the migration drags, and soft dual-CRM costs often dwarf the seats
Dynamics renewal uplifts of 10 to 18 percent land without a usage review, while Salesforce keeps winning competitive evaluations on AppExchange depth. Stretching a dual-CRM "transition" is the expensive default: licence duplication is only 25 to 40 percent of true dual-run cost once admin, sync, and process tax are counted.
What a Dynamics to Salesforce Migration Actually Does
Audit Dataverse → export with GUID crosswalk → rebuild Power Automate as Flows → cut dual licences.
Dataverse Audit
Entities, option sets, plugins, Power Automate inventory, and Microsoft stack links
Entity Export
GUID crosswalks, polymorphic activities, and SharePoint attachments pulled with the records
Automation Rebuild
Critical Power Automate flows and plugins rewritten as Salesforce Flows or Apex
Cutover Live
Entra users mapped, parallel validated, Dynamics Sales seats retired at renewal
Everything You Need for a Reliable Microsoft to Salesforce Move
Dataverse Entity Export
Accounts, contacts, opportunities, custom entities, and option sets leave Dataverse with a GUID-to-Salesforce-ID crosswalk so relational integrity survives cutover.
Polymorphic Lookup Rebuild
Dynamics activity parties and multi-party regarding links become Salesforce Tasks, Events, and related lists, not orphan rows from a flat CSV.
Power Automate to Flows
We inventory every cloud flow, score complexity, and rebuild the ones that still matter as Salesforce Flows so automation debt does not silently vanish.
Entra Identity Mapping
Azure AD / Entra users, security roles, and team membership map onto Salesforce users, profiles, and permission sets before day-one login.
Plugins to Apex or Flow
Dynamics plugins and business process flows are documented as business rules, then rewritten as Apex or Flow so custom logic is deliberate, not forgotten.
Microsoft Stack Untangle
Outlook tracking, Teams notifications, and SharePoint attachments are re-homed or reconnected so the Microsoft estate keeps working after Dynamics Sales retires.
What We Migrate and Configure
From Eight Months of Dual Licences to Salesforce in 16 Weeks
How a 35-person SA industrial distributor ended Dynamics and Salesforce dual-run waste without losing opportunity history.
Dual CRM Drift
- Dynamics Sales and a Salesforce pilot ran in parallel for eight months "until export was figured out"
- Dual seats near R4,300 per user per month burned past R840,000 annualised across the sales team
- A CSV dry-run orphaned polymorphic activities and left SharePoint attachments behind
- Forty-plus Power Automate flows had no owner map; IT feared cutting Dynamics would break quoting
- Ops spent 10+ hours a week reconciling which system held the truth on open opportunities
Salesforce Sales Cloud Live
- Dataverse entities exported with GUID crosswalks; opportunities and activities stayed linked
- Twenty-eight critical Power Automate flows rebuilt as Salesforce Flows; dead flows retired
- Entra users mapped to Salesforce profiles; Outlook and Teams patterns kept for the team
- SharePoint attachments re-homed onto the right Salesforce records before Dynamics cutover
- Dynamics Sales seats cancelled at renewal; one CRM, one forecast, no dual-licence burn
Before vs After Dynamics to Salesforce Migration
How It Works
From first conversation to live Salesforce cutover in a planned 12 to 24 week programme.
Audit Dynamics and Dataverse
Entities, custom fields, option sets, Power Automate inventory, plugins, and Microsoft stack touchpoints (Outlook, Teams, SharePoint).
Design the Salesforce Model
30-minute call to map objects, identity, and automation rebuild scope, then a fixed quote for migration plus cutover.
Export, Rebuild, Validate
We pull Dataverse via API with GUID crosswalks, rebuild Flows, map Entra users, and run parallel loads until spot checks pass.
Cut Over and Retire Dual Licences
Team trains on Salesforce, Dynamics Sales seats cancel at renewal, and dual-CRM reconciliation stops.
Frequently Asked Questions
When does a Dynamics 365 to Salesforce migration make sense?
When Salesforce wins on AppExchange depth, industry clouds, or sales muscle memory your Microsoft shop cannot match, and you are ready to stop funding two CRMs. Dynamics Sales Enterprise sits near R1,570 per user per month list, Salesforce Enterprise near R2,730, so a dual run of even a few dozen seats burns six figures in Rand quickly. If Power Automate debt, Dataverse export friction, and dual-licence waste outweigh the Microsoft CRM convenience, a managed Dynamics to Salesforce migration is the cleaner path.
Why is Dataverse export the real bottleneck?
Dynamics and Salesforce use incompatible primary keys (128-bit GUIDs versus 18-character IDs), option sets map poorly onto picklists, and activity parties are polymorphic. Dataverse also enforces service-protection API limits of about 6,000 requests per five-minute window per user per web server, so naive bulk pulls throttle. Attachments often live in SharePoint, not in the annotation body that Synapse Link syncs. A managed export with a GUID crosswalk and file plan is what protects pipeline history; a portal CSV dump is not.
What happens to our Power Automate flows?
They do not convert one-to-one. Industry benchmarks put complex automation rebuilds at three to five developer days each, or roughly R25,000 to R83,000 per workflow when you cost the work. Equivalent logic often takes nearly three times as many steps in Power Automate as in Salesforce Flow, so we inventory, retire dead flows, and rebuild only what still drives revenue or compliance as native Salesforce Flows or Apex.
How long does a Dynamics 365 to Salesforce migration take?
Most mid-market Dynamics to Salesforce programmes take 12 to 24 weeks from scoping to cutover. Manual field-mapping projects often stretch three to six months. Simple Sales Cloud moves with light customisation sit toward the shorter end. Heavy Dataverse custom entities, plugin estates, and dozens of Power Automate flows push toward five to six months, phased so sales can work in Salesforce before every nice-to-have ships.
How much does a Dynamics to Salesforce migration cost?
Focused mid-market migrations with core entities, GUID crosswalks, critical Flow rebuilds, and cutover support typically land between R120,000 and R380,000. Data-migration labour alone is often quoted at R165,000 to R580,000 for more complex estates, or about R5 to R12 per record depending on relationship depth. Against dual-licence burn near R4,300 per user per month, many clients recover the project cost inside the first year once Dynamics Sales seats drop at renewal.
Can we keep Outlook, Teams, and SharePoint after leaving Dynamics?
Yes. The Microsoft stack does not have to leave with Dynamics Sales. We map Entra identity into Salesforce, reconnect Outlook and Teams patterns your team already uses, and plan SharePoint attachment migration so files stay on the right records. You keep the productivity suite; you stop paying for a second CRM.
Stop Paying for Dynamics and Salesforce Together
If Dataverse export, Power Automate debt, and dual-licence waste are stalling your Microsoft to Salesforce move, a managed Dynamics 365 to Salesforce migration is how you protect pipeline history and finish the cutover.
Tell us your Dataverse entity count, how many Power Automate flows still matter, and how long you have been funding two CRMs. We will show you the export plan, the rebuild scope, and a realistic cutover timeline.