Phased Migration from Dynamics CRM 2016 to Dynamics 365 Online

Phased Migration from Dynamics CRM 2016 to Dynamics 365 Online for an Industrial Equipment Distributor

Dynamics 365 Sales account record on a desktop monitor in an industrial equipment warehouse, with a hard hat, barcode scanner and forklift nearby
  • ~14weeks from assessment to final cutover
  • 180 GBof CRM data migrated
  • 3migration dry runs
  • ~4 hrsof downtime at final cutover

Introduction

The sales and customer service teams of a mid-sized industrial equipment distributor worked every day in Microsoft Dynamics CRM 2016 (on-premises), version 8.2. Around 150 users across sales and service, relied on it for quoting, order follow-up and case handling.

When Microsoft support ended on January 13, 2026, the CRM did not suddenly stop working. The teams could still use it, but there were risks associated with it. Any new security vulnerability would remain unpatched, defects in the screens and workflows they depended on would no longer receive fixes, and there was no Microsoft support to fall back on if something failed. The servers underneath the CRM were also reaching the end of their own support: SQL Server 2016, with extended support ending in July 2026, and Windows Server 2016, with extended support ending in January 2027. The concern extended beyond the application itself.

They came to Nalashaa Digital in February 2026, a few weeks after the end-of-support date, and the migration was completed in about 14 weeks, by early June 2026.

Their objectives were clear:

  • Move from Dynamics CRM 2016 on-premises to Dynamics 365 online.
  • Carry forward the data, customizations and user access the teams still relied on.
  • Replace or retire components that could not move to the cloud.
  • Keep disruption to sales and customer service teams as low as possible.
  • Complete the migration in a planned, controlled sequence.

The Challenge

End of support was the immediate trigger. From there, the real challenge was figuring out how to move a live, heavily used CRM to Dynamics 365 online without carrying forward outdated components or disrupting day-to-day sales and service operations.

Dynamics CRM 8.2 Was Below the Supported Migration Baseline

Though migration seemed like the obvious solution, it was not going to be a straight move from the old CRM to Dynamics 365 online.

The client was still on Dynamics CRM 2016 version 8.2. Microsoft’s on-premises-to-online migration path supports version 9.0 or later, which meant the existing environment first had to be brought forward before the cloud move could even begin.

And that was only one part of the challenge. The data, customizations and user setup were closely connected, so the migration had to follow the right sequence. Each stage had to be completed and validated before users could move into the new environment without affecting how they worked.

Unsupported On-Premises Components Required Remediation

Even after the migration path was clear, not everything in the old environment could move with it.

The on-premises CRM still depended on components and customizations that either had no direct equivalent in Dynamics 365 online or were no longer supported. The Email Router had already been deprecated, Reporting Extensions could not be upgraded in place, and older scripts also needed attention before they could work reliably in the new environment.

The integrations created around the on-premises setup also had to be reviewed and reworked so they could connect properly once the CRM moved online.

Production CRM Availability Had to Be Maintained During Migration

The migration also had to happen around teams that were using the CRM every day. Sales reps were working open opportunities and follow-ups, and customer service agents were handling live cases. Challenges included:

  • A rep with a quote waiting on a customer’s reply, or an agent partway through a case, needed the CRM to be available and accurate at that moment, which left very little room for downtime
  • Follow-up reminders, case queues and customer history had to stay trustworthy through the change, because a missed follow-up or an unanswered case reaches the customer straight away
  • Moving everyone at once was not an option before the new environment had been tested properly with real data, reports and day-to-day activity

Our Solutions

Phase 1

Dynamics CRM 8.2 Migration Readiness Assessment

The first challenge was that the client was still on Dynamics CRM 2016 version 8.2, while Microsoft’s supported on-premises-to-online migration path starts from version 9.0 or later. At the same time, the team needed a clear view of everything in the CRM before deciding what could move.

So we started with a full migration-readiness assessment.

We started with the workflows the business depended on every day
On the sales side, that meant accounts, contacts, products, price lists, quotes, opportunities and follow-ups. On the service side, it meant cases, queues, returns and order-status inquiries. We then mapped the customizations, plug-ins, workflows, scripts and web resources behind them. In total, we reviewed 38 customizations, 12 plug-ins and custom workflow activities, and 21 web resources.

Next, we looked at what connected the CRM to the rest of the business
That included the quote-to-order hand-off, email flows, management reports, customer history and the user accounts that sales and service teams relied on.

We then checked what could block the cloud move
Direct database changes, undocumented APIs, unsupported scripts, website-directory files and plug-ins that would not run in sandbox isolation were all flagged for remediation. We also planned for the version gap from CRM 8.2 to the supported 9.0+ migration path before the first rehearsal.

Outcome: Finally, everything was grouped into three buckets: ready to move, needs rework, or needs to be retired. Of the 71 items, 46 were ready to move, 19 needed rework and 6 needed to be retired. From that, we created a prioritized remediation backlog based on what could delay the migration or interrupt quoting and case handling.

Phase 2

Version Upgrade Legacy Component Remediation for Dynamics 365 Online

Once the environment was mapped, two things stood in the way of the cloud move. The environment had to be brought up to a supported version, and the components tied to the old on-premises setup had to be dealt with.

The Email Router, Reporting Extensions, older scripts and integrations could not simply be carried into Dynamics 365 online as they were. Sales and service teams used them every day, so each one had to be reworked before the migration.

  • Upgraded the environment from version 8.2 to the supported 9.x baseline, the minimum for Microsoft’s on-premises-to-online migration path, and confirmed quoting, case handling and customer history worked as before.
  • Retired the Email Router and moved email to server-side synchronization so customer emails could continue reaching the right sales and service records.
  • Removed Reporting Extensions and reworked the open-quote, pipeline and case-backlog reports for Dynamics 365 online.
  • Updated deprecated scripts, including those used on quote and case forms, to use the supported Client API.
  • Updated plug-ins and custom workflow activities used for quote pricing, discount rules and case routing so they met sandbox isolation requirements.
  • Reworked the quote-to-order integration so accepted quotes could continue flowing into the order-management system after the move.
  • Reworked order-status integrations used by service agents so they could connect through supported web services instead of the on-premises servers.
  • Packaged the remediated customizations as solutions so they could be redeployed into the online environment after the data moved.

Outcome: By the end of this phase, the environment was on the supported 9.x version and none of the legacy components identified in the assessment remained in the migration path. Email, reports, scripts, plug-ins and integrations had been reworked around supported Dynamics 365 online patterns, so the quote-to-order and case-handling workflows were ready to move without carrying unsupported components along.

Phase 3

Migration Rehearsal and User Mapping

Once the CRM was ready to move, the next risk was the migration itself. So instead of estimating how the final cutover might behave, we rehearsed it first.

  • Confirmed the required Dynamics 365 online licenses and Copilot licenses were in place before migration began.
  • Mapped every on-premises user to the correct Microsoft Entra ID, including sales reps, service agents, managers and administrators.
  • Checked for duplicate or missing user mappings so people would arrive in the new environment with the right access.
  • Ran 3 migration dry runs through Microsoft’s tooling, each including database backup upload to Azure storage, staging validation, version handling where required and migration into the online environment.
  • Validated the results after each rehearsal against records the teams depended on, including open quotes and open cases.
  • Timed and documented every rehearsal in a migration run-book. The first run took about 11 hours 30 minutes, the second about 9 hours 15 minutes and the third about 7 hours 20 minutes.
  • Used staging validation to identify blockers early, before the production environment was affected.
  • Used the recorded timings to set the final cutover window at 8 hours, the third run’s duration plus a buffer, instead of relying on an estimate.

Outcome: Three dry runs were completed. The first took about 11 hours 30 minutes and surfaced the blockers that staging validation exists to catch. Once those were fixed, the second took about 9 hours 15 minutes and the third about 7 hours 20 minutes, each checked against open quotes and open cases in the source. Every user was mapped to the right account with no duplicate or missing mappings, the required licenses were in place, and the cutover window was set at 8 hours from the recorded timings.

Phase 4

Pilot Rollout and Production Cutover

Moving everyone at once would have meant testing the new environment for the first time at the same moment the whole business started depending on it. So we began with a smaller group from both sales and service.

  • Moved a pilot group of sales reps and service agents first onto a migrated copy of the CRM, so they could work with real data and reports before anything went live. They kept doing their live work in the existing CRM, so anything they created or changed in the copy was test activity only.
  • Logged every issue found during the pilot and resolved it before the final cutover.
  • Discarded the pilot copy once testing was done, so none of the test activity could reach the live system.
  • Redeployed the remediated customizations into the migrated environment.
  • Ran the final cutover once, in the window the rehearsals had set, outside business hours so quoting and case handling were not interrupted. It migrated a fresh copy of production data, so the teams’ live records came across exactly as they stood.
  • Brought the remaining users onto Dynamics 365 online team by team after cutover, instead of asking everyone to change at once.
  • Enabled Copilot for Sales and Customer Service for the first teams to move onto Dynamics 365 online, so sellers could prepare from summarized customer and opportunity history and agents could work cases with more context.
  • Prepared training and guidance for each group, based on the workflows they actually used.

Outcome: Pilot issues were logged and closed before the final cutover. The pilot copy was discarded and a fresh copy of production data was migrated at cutover, so no test activity reached the live system. The pilot group had 15 users, about 10% of the user base. The cutover ran once, in an 8-hour window with about 4 hours of downtime, and the remaining teams moved over in stages. The full migration, from assessment to final cutover, took about 14 weeks.

Quantifiable Outcomes

MIGRATION OUTCOMES

About 180 GB
of CRM data migrated, validated against the source after every dry run, including open quotes, open cases and customer history.
3 dry runs
cutting the migration time from about 11 hours 30 minutes to about 7 hours 20 minutes, a reduction of more than a third.
14 pilot defects
found and closed before the final cutover.
Final cutover
completed inside the rehearsed 8-hour window, with about 4 hours of downtime.
22 support tickets
in the first 30 days after go-live across about 150 users, none of them business-critical.
0 unsupported components
carried into the online environment, after retiring the Email Router and Reporting Extensions and rebuilding 3 reports and 2 integrations.

Operational Impact

  • 40%

    lower call handling time, helping customer service agents work through cases faster.

  • 20%

    improvement in first-call resolution, giving agents quicker access to the context they need to resolve issues.

  • 15%

    fewer case misroutes, improving how incoming cases are classified and assigned.

  • 30-60 min

    saved per seller each week, reducing the time spent preparing for customer conversations by keeping customer history, emails and open opportunities in one place.

  • Up to $......

    in savings from retiring legacy customer service solutions, reducing the cost of maintaining older CRM infrastructure and dependencies.

Strategic Value Delivered

By the end of the migration, the client had moved away from an unsupported Dynamics CRM 2016 environment without treating the project as a one-time technical switch.

  1. The unsupported stack had been left behind
  2. Legacy components were removed instead of carried forward
  3. Reports and integrations were rebuilt for Dynamics 365 online
  4. User access had been mapped before cutover
  5. The new environment had already been tested by real users before the wider business depended on it
“End of support definitely pushed us to act, but the bigger concern was keeping things running for the teams using the CRM every day. The rehearsals and pilot helped us move with a lot more confidence, and now we’re on a supported platform we can actually build on.”
— IT Head, Industrial Equipment Distributor

Looking Ahead

The migration gave the client a supported platform to build on, and its sales and service teams already work in it every day, with Copilot helping sellers prepare and agents resolve cases.

  • Extend Copilot to more teams
  • Add unified routing
  • Bring product and pricing information from SharePoint closer to quoting
  • Retire the remaining on-premises servers, closing out the old CRM footprint

Still on Dynamics CRM 2016 or another on-premises version?

Microsoft’s recommended deadline to migrate to Dynamics 365 online was 1 October 2026, and support for v9.0 on-premises with Exchange Online ends on 1 April 2027 as EWS is removed.

Book a free migration assessment call