The hard part of this move is not the export. It is the difference in how the two systems think. Salesforce works in account and contact, plus whatever custom objects you built records; Microsoft Dynamics 365 works in account and contact records. Get that mapping wrong and every report built on it afterwards is wrong too. This page covers the field map, what does not survive, what it costs, and the reconciliation step that decides whether anyone trusts Microsoft Dynamics 365 in month two.
The two systems, side by side
| Salesforce | Microsoft Dynamics 365 | |
|---|---|---|
| Primary record | Account and Contact, plus whatever custom objects you built | Account and Contact |
| Grouping | Account hierarchy and relationship objects | Account hierarchy and connections |
| Activity history | Tasks, Events and EmailMessage | Activities: tasks, appointments, emails and phone calls |
| Documents | Files and ContentDocument links, or an external DMS | Notes, attachments, or SharePoint integration |
| Getting data out | Reports and the Bulk API, one extract per object, reassembled on IDs. | Dataverse export tooling and the Web API. |
| Who administers it | A named Salesforce administrator. | A named Dynamics administrator. |
| Pricing | Platform license plus build; managed admin runs $2,500 to $9,000 a month. | Per-user platform licensing plus build. |
What breaks
- Salesforce works in account and contact, plus whatever custom objects you built records and Microsoft Dynamics 365 works in account and contact records. That is a re-modelling exercise, and it is the first decision, not a mapping detail.
- Grouping changes: Account hierarchy and relationship objects becomes Account hierarchy and connections. Somebody has to define what a group means in the target before load.
- Activity history moves with partial fidelity. Salesforce stores it as tasks, events and emailmessage; Microsoft Dynamics 365 expects activities: tasks, appointments, emails and phone calls.
- Logic held in Apex, Flows and validation rules leaves no trace in any export. Read it out of the org before you decommission it.
- The target needs a Dynamics administrator, and option sets have to be defined before records can land.
- Automations, reports, dashboards and permissions never transfer. Budget them as build work.
- Every connected system has to be repointed and retested: the DMS, billing, e-signature and the shared inbox.
Known hazards on each side
Leaving Salesforce:
- Apex, Flows, validation rules and sharing rules never appear in an export, and they carry business logic.
- Record IDs are the glue between object extracts, so extract order and external IDs decide whether reassembly works.
- Every org has custom fields nobody remembers creating, and a few that reports still depend on.
Arriving in Microsoft Dynamics 365:
- Option sets and lookups need translating rather than copying.
- SharePoint-linked documents are references, not files, so document migration is a separate project.
- Plugins and Power Automate flows hold logic no export represents.
The field map
| Concept | In Salesforce | In Microsoft Dynamics 365 | What to watch |
|---|---|---|---|
| Primary record | Account and Contact, plus whatever custom objects you built | Account and Contact | Different shape. Decide the mapping before any data moves. |
| Grouping | Account hierarchy and relationship objects | Account hierarchy and connections | The target groups records differently, so grouping is created rather than copied. |
| Activity history | Tasks, Events and EmailMessage | Activities: tasks, appointments, emails and phone calls | Expect partial fidelity. Types, timestamps and authorship survive; structure often does not. |
| Documents | Files and ContentDocument links, or an external DMS | Notes, attachments, or SharePoint integration | Usually a separate extract and load from the record data. |
| Owner and assignment | Assigned user or advisor fields | Assigned user or team fields | Map departed staff explicitly. Records assigned to nobody disappear from every view. |
| Custom fields | Firm-specific fields added over time | Created to match, or consciously dropped | The audit here is the work. Undocumented fields that reports depend on are the usual surprise. |
Cost and timeline
| Phase | Typical range |
|---|---|
| Data audit and cleanup | $3,000 to $25,000 |
| Migration execution | $5,000 to $50,000 |
| Target implementation | Three to six months with outside help |
| Ongoing administration | $2,500 to $9,000 a month if unowned internally |
Note the third and fourth rows. Moving to Microsoft Dynamics 365 means acquiring an administration requirement, and that cost recurs long after the migration closes. See before you hire a Salesforce developer for how to split that work between a person and an agent.
The five phases
- Audit Salesforce. Count records per object, find duplicates and orphans, and decide what does not come with you. Get that decision signed off before mapping.
- Map against real records. Use the table above as the starting point, then walk fifty live records field by field.
- Dry run into a Microsoft Dynamics 365 sandbox. Load the full set, not a sample. Sample loads hide the failures that only appear at volume.
- Cut over on a quiet window. Freeze writes in Salesforce, load, repoint every integration, unfreeze. Keep Salesforce read-only for at least a quarter.
- Reconcile. Compare Microsoft Dynamics 365 to Salesforce record by record and field by field, and produce a variance report.
The full version of this plan, with the failure evidence behind it, is in the CRM migration playbook.
The compliance clause
The Advisers Act books-and-records rule (17 CFR 275.204-2) survives the migration. A household that lands without its history is a records gap, not a cosmetic issue. Keep the field map, the variance report and the mapping sign-offs with the records, because the decisions you made in phase two are part of the record too.
Where Caddi fits
Caddi does the mechanical half and then keeps doing it. Show it the task once and it reads Salesforce, applies your field map, loads Microsoft Dynamics 365, and then compares both sides record by record and hands back a variance report you can act on. Because it runs over APIs across your stack, the same agent covers the parts a migration tool ignores: documents filed to the right account and contact with the right metadata, and the post-cutover hygiene that otherwise becomes someone's Monday.
Caddi automation for these systems: Salesforce.
Related migrations
- Clio Grow to Salesforce
- Clio Manage to Salesforce
- Filevine to Salesforce
- Litify to Salesforce
- Redtail CRM to Salesforce
- Salesforce Financial Services Cloud to Salesforce
Migration without the manual pass
Move and reconcile Salesforce into Microsoft Dynamics 365
Caddi reads Salesforce, applies your field map, loads Microsoft Dynamics 365, then compares both sides record by record and reports the variances.
Frequently asked questions
How do you migrate from Salesforce to Microsoft Dynamics 365?
Audit the Salesforce data first, then map fields against fifty real records rather than against the schema, dry run the full set into a Microsoft Dynamics 365 sandbox, cut over on a quiet window with writes frozen, and reconcile record by record afterwards. Reports and the Bulk API, one extract per object, reassembled on IDs. Microsoft Dynamics 365 then needs the records loaded in dependency order, with documents as a separate pass.
What does not transfer from Salesforce to Microsoft Dynamics 365?
Salesforce works in account and contact, plus whatever custom objects you built records and Microsoft Dynamics 365 works in account and contact records. That is a re-modelling exercise, and it is the first decision, not a mapping detail. Grouping changes: Account hierarchy and relationship objects becomes Account hierarchy and connections. Somebody has to define what a group means in the target before load. Activity history moves with partial fidelity. Salesforce stores it as tasks, events and emailmessage; Microsoft Dynamics 365 expects activities: tasks, appointments, emails and phone calls.
How long does a Salesforce to Microsoft Dynamics 365 migration take?
Six to twelve weeks is realistic for a clean mid-size move, and three to six months where Microsoft Dynamics 365 is being implemented at the same time. Firms with years of history in Salesforce should budget several weeks of cleanup before any data moves.
Who administers Microsoft Dynamics 365 afterwards?
A named Dynamics administrator. Name that person before you sign, because an unowned org drifts and the reporting advantage you bought disappears.
What are the compliance implications for advisory firms?
The Advisers Act books-and-records rule (17 CFR 275.204-2) survives the migration. A gap in client history is a finding, so keep the field map, the variance report and the sign-offs where an examiner can find them.