Migrating from Salesforce to Dynamics 365: what the proposal doesn’t show

Jacek Szafader Jacek Szafader September 29, 2026
Technical debt, forecasting, archiving and a hard deadline — the risks that only emerge once discovery begins.
Ten years of configuration, hundreds of unused fields, automations whose creator left the company long ago – and a hard deadline driven by an expiring licence agreement. This is no ordinary data migration. It’s an archaeological project.

Migrations from Salesforce to Microsoft Dynamics 365 are increasingly driven by cost pressures, the need to work within the Microsoft 365 ecosystem, and a desire to connect CRM with the tools sales teams use every day. Deciding to switch platforms, however, is easier than making the switch.

Below, we explore the real challenges through an anonymised scenario: an international services company with around 100 Salesforce licences, approximately 100 active users, and an environment developed over ten years. The figures and issues are genuine, but they do not identify a specific client.

Anatomy of a typical case

The starting point looks straightforward. That is precisely why these projects are often underestimated.

Dimension
Current state
Why it matters
Age of the implementation
Approx. 10 years
The configuration embeds past processes and decisions.
Licences
Approx. 100 active users
A small user base does not mean low complexity.
Scope
Business Development / Sales
Other teams work outside the CRM or rely on manual processes.
Core data
Accounts, Contacts, Opportunities, Activities
The core is simple; complexity usually lies in the configuration and exceptions.
Fields
Many unused
You need to distinguish genuine requirements from legacy remnants.
Automations
Incomplete knowledge of their number and usage
This is one of the biggest unknowns when estimating costs.
Expertise
No in-house Salesforce expert
Institutional knowledge is missing: “Why was this built?”
Ownership
One person responsible for both business and technical matters
A decision-making bottleneck and a continuity risk.
Integrations
Formally out of scope
APIs, Connected Apps, SSO, email and exports still need to be checked.
Critical dependency
Financial forecasting based on Opportunity data
The CRM is a critical source system for budgeting.
Deadline
Fixed; no extended period of running both systems in parallel
Cutover and contingency planning become part of the core scope.
Pay attention to the final three rows. Dependencies, deadlines and the ability to make decisions are more likely to determine project success than the number of records alone.

The historical challenge: technical debt with no owner

An eight-year-old Salesforce implementation contains layers of decisions made by people who often no longer work at the company. Fields added for a single campaign. Notifications sent to inactive mailboxes. Validation rules protecting a process that changed long ago.

There is also a change on the vendor’s side: Salesforce ended support for Workflow Rules and Process Builder on 31 December 2025. Existing automations may continue to run, but these are legacy tools that the vendor no longer supports, with a recommendation to move to Flow Builder. Source: Salesforce Help

What to do before estimating costs

Warning: Building an inventory of automations and dependencies may take longer than technically transferring the core records. A proposal prepared without this knowledge is a budget scenario, not a full cost estimate.

The technical challenge: data is only one workstream

A common assumption is: “We have four main objects and a few tens of thousands of records, so the migration will be straightforward.” Transferring core records can indeed be more predictable than reconstructing the configuration and logic. That does not make it low-risk.

Record Types have no single equivalent

Salesforce and Dynamics 365 serve similar CRM purposes, but differ in how they implement data models, security, processes and automation. Salesforce Record Types are a good example. They can affect page layouts, available picklist values and process flows, among other things. In Dynamics 365 and Dataverse, there is no single mechanism that should always be used in their place.

Depending on the case, the purpose of a Record Type is reproduced through a combination of forms, security roles, Choice columns, Business Process Flows, business rules, Power Automate, and sometimes a different model of tables and relationships. That is why field-to-field mapping is not enough. You need to map the business purpose behind the configuration.

Lower volumes help, but do not shorten everything

Limiting the migration to active data and the history required by finance reduces extraction, loading, cleansing and reconciliation time, as well as the number of exceptions. It does not, however, shorten the entire implementation proportionally. The target system still needs a data model, forms, security, automation, reporting, testing and launch preparation.

Tools speed up the mechanics, not the decisions

Microsoft tools and partner accelerators are available to support metadata analysis, mapping and data transfer from Salesforce to Dataverse. They can reduce manual work and make successive migration runs more repeatable. Their availability and scope must, however, be confirmed for the specific project.

Principle: No accelerator can decide whether an old automation still makes sense, who should be able to see a record, or how forecasting should work. Tools support migration; they do not replace process analysis and architecture.

The business challenge: CRM as a source for financial forecasting

The most important risk often only emerges during a discussion about reports. In this scenario, Opportunity values — expected revenue spread across years — are exported regularly and used by finance for budgeting. The CRM is not a financial accounting system, but it is a critical source system for forecasting.

Practical implications

Example go/no-go gate: Key financial reports in the target system must produce reconciled results for the same frozen dataset used by the source reports. Acceptable differences should be explicitly documented and approved.

Security and ownership do not map automatically

Salesforce Profiles, Permission Sets and sharing mechanisms do not translate directly into Dataverse security roles, business units, teams, ownership and column-level security. The target access model must be designed and then tested against real user personas: a salesperson, a manager, a finance user, an administrator, and a user with access restricted to a specific scope.

The single-owner trap

If the same person is responsible for business requirements, technical matters, data cleansing, UAT and adoption, they become a single point of failure. Before launch, identify a sponsor, process owners and at least one person to support technical and operational decisions. The lack of an in-house administrator should be reflected in the post-launch service model.

Practical implications

1. Data quality, duplicates and exceptions

Removing empty fields is not enough. For Accounts and Contacts, you need to establish deduplication and survivorship rules: which record takes precedence, which values are retained, what happens to orphaned relationships, and how inactive records are handled. These decisions belong to the business, even if the partner carries them out technically.

2. Activities, emails and files

Activities are not a single, simple object, and files are not just attachments. Tasks, meetings, emails, activity participants, notes, Salesforce Files, Content Versions, Attachments and Documents should each have their own scope, mapping, retention rules and acceptance criteria. Otherwise, the project may “add up in terms of record counts” without reconstructing the history of the customer relationship.

3. Integrations hidden outside the formal scope

A statement that there are “no integrations” should trigger verification, not close the discussion. At a minimum, check Connected Apps, API accounts, middleware, SSO, email synchronisation, AppExchange add-ons, recurring report exports, and the macros and scripts used by finance. A dependency may exist even if no one calls it an integration.

The deadline challenge: why “lift and shift” can be an illusion

When the Salesforce agreement is expiring and running two platforms in parallel is too expensive, “lift and shift” is a natural idea: move the current setup without improvements. With an older implementation, however, this approach has a limitation — you cannot faithfully recreate a configuration whose purpose the organisation can no longer explain.

A phased approach under a tight deadline

Workstream
Scope
Success condition
Phase 1 — the minimum needed for launch
Accounts, Contacts, Opportunities and essential Activities; a simple sales process; active data and the history required by finance; key reports; security; training and hypercare.
Scope frozen early; measurable go/no-go criteria.
Phase 2 — after stabilisation
Remaining history, additional process types, selected automations, additional reports and expansion into account management.
A roadmap and decisions to “recreate / simplify / retire”.
Archive — in parallel
A complete, verified export of the data, files, metadata and history available in the source environment.
The archive must be readable and searchable, not merely saved.

Cutover is a project deliverable in its own right

With a fixed migration date, the cutover plan cannot be a single task in the schedule. It should include, at a minimum:

Warning: If the proposal does not cover cutover, reconciliation and responsibility for the go/no-go decision, the risk has not disappeared. It has simply been transferred to the client.

The archive: exporting is only the beginning

A full Salesforce export should be completed and verified before the environment is shut down. Operational access may end once the subscription expires, and the ability to recover data later depends on the agreement terms and applicable procedures. That is why you should not build your plan around the assumption that “we can always go back to Salesforce if needed”.

What a complete archive should include

Important: A collection of CSV files and an attachments folder in a Data Lake is a technical copy. It only becomes a business archive when the organisation can find a record, reconstruct its relationships and open the associated document.

The adoption challenge: changing habits, not icons

Users who have worked in the same CRM for years have established habits. Changing platforms means changing how they work: where they save a note, how they qualify an Opportunity, which data is mandatory, and where they look for customer history. Working within the Microsoft ecosystem can lower the barrier to adoption because users remain close to Outlook and Teams. However, specific Copilot features or integration capabilities should not be promised without checking the configuration. Feature availability depends on the selected Dynamics 365 and Microsoft 365 plans, administrator configuration, Dataverse capacity, and any Power BI, Power Automate and Copilot licences.

The minimum adoption plan

10 questions to ask before choosing a migration partner

1. How will the partner inventory automations, Record Types, validations, reports, permissions and dependencies, and how will responsibilities be shared with business owners?

2. Which elements will be recreated, simplified, replaced with standard functionality or retired — and who will approve those decisions?

3. How will the security model, ownership and data access be mapped between Salesforce and Dataverse?

4. Which data quality, deduplication and survivorship rules will be applied to Accounts, Contacts and other data?

5. How will the partner handle Activities, emails, notes and files, and how will they verify that all relationships are intact?

6. What are the measurable acceptance and go/no-go criteria — including reconciliation of records, relationships, files and financial forecasting totals?

7. What is the detailed cutover plan: mock cutover, freeze, final delta, downtime window, owners for each step, and a rollback or contingency scenario?

8. What exactly does the archive include: data, files, metadata, history/audit records, a manifest, completeness checks and a way to access the information later?

9. Which reports must work on launch day, and how will their logic, filters, permissions and presentation be recreated in Dynamics 365 or Power BI?

10. What licences and capacity are required for each user persona, and which Dynamics 365, Outlook, Teams, Power BI, Power Automate and Copilot features are included, cost extra or have limitations?

The key takeaway

Migrating from Salesforce to Dynamics 365 is not difficult because records are hard to copy. It is difficult because, over the years, the CRM configuration has become an informal record of the company’s processes, exceptions, responsibilities and reporting practices.

The safest projects do not try to move everything without questioning it. They first establish what must work on launch day, how consistency of results will be verified, and where the remaining history will be stored safely. Only then do they choose the tools and migration sequence.

One sentence to remember: With a hard deadline, reduce the functional scope, but do not reduce the controls: security, testing, reconciliation, cutover and archiving.