White Paper – Migrate Microsoft Dynamics CRM 2016 On-Premises to CRM 365 Online v9

This consists of steps/considerations for upgrading dynamics CRM 2016 On-Premises v8.1/8.2 to Dynamics CRM 365 Online v9

I would like to thank Ravi Kashyap for helping me validate the process and Andrew Butenko for his nice blog.

A typical migration process should consist of below steps:

  • First things first – Decide the Dynamics CRM 365 Online Customer Engagement Plan
  • Validate your client side & server side code 
  • Backup your existing Data & Customization (Optional)
  • Deploy Customizations to Dynamics CRM Online Instance
  • Active Directory Synchronization
  • Migrate your data
  • Fix JavaScript & Plugins
  • Validate Sitemap
  • Reporting Options in Dynamics CRM Online 365
  • Test,Test & Test Again
  • Copy Instance

1. Decide the Dynamics CRM 365 Online Customer Engagement Plan

Microsoft offers variety of subscriptions based on the functionality required by the business. Now it can be very confusing in terms of costing. There is a tool available which can be used to estimate your costing of Dynamics CRM online implementation: http://www.infostrat.com/dynamics-365-cost-calculator

However, the Microsoft Pricing page the details are also pretty neat to understand : https://dynamics.microsoft.com/en-in/pricing/

Microsoft Fast Track Program for Online implementation

This is a special assistance provided by Microsoft for the business who are planning for dynamics CRM Online Implementation and purchasing 250+ license where in Microsoft will take care of the migration of Customization + Data for your CRM. Which literally takes all your headache away!
read more about it here : https://www.microsoft.com/en-us/fasttrack/dynamics-365


2.Validate your client side & server side code

though your code or script in 8.1 should work in Dynamics CRM Online 9.0, it is recommended that these should be updated to use the latest API. For example Page is deprecated in v9, however deprecation doesn’t mean it will stop working right away, it just means that Microsoft has a plan to vanish it in coming updates/releases.

Now there is a very nice tool available which helps to validate your JavaScript by running in your dynamics crm. This XrmToolBox (details here)plugin will scan your environment and Validates your JavaScript Webresources if they are compatible with Dynamics CRM 365 V9. It will tell which method needs to be replaced with what method. More details can be found here : https://www.powerobjects.com/2018/09/17/upgrade-deprecated-client-apis-dynamics-365-v9/


Note down all the issues , even you can start fixing these in the background. Another point to note is Odata should not at all be used to for any CRUD operation in your system and must be replace by Web API.

Now if we talk about server side code/plugins there is not much difference – the only thing  to be done is to use the latest SDK assemblies version 9, all the latest CRM SDK assemblies are available on the nuget store and should be replace otherwise plugins will not be able to run and communicate with your dynamics CRM. Apart from it the solution must be update to use .net framework 4.5.2 minimum.


3.Backup your existing data & customization

This step is optional and can be skipped.

This step requires a simple backup of your database of Dynamics CRM Organizaton & keeping them in some place.

Step 1: Open SQL Server and Expand Databases. Right Click on required Organization(*****_MSCRM)  to take Backup and Go to Tasks -> Back Up…
Step 2: Would like to provide the new Destination Backup Path.
Step 3: Select path and provide File Name and click on OK.
Step 4: Click on OK to start backup.

4.Deploy Customizations to Dynamics CRM Online Instance

This is probably the most important step, if you are able to perform this without any hiccups; you have done most of the upgrade work.

Its time you export all customizations from your On-Premise environment. Now do not export default solution/customization from your On-Premise environment, rather create a custom solution and add all your customization in the solution. As Microsoft Dynamics CRM Online doesn’t support default customization import.

Once solution has been exported, open your dynamics CRM Online instance and import the solution.

Generally solution to v9.0 from v8.1 can be imported without any issues. But if any errors come, the real time troubleshooting should be done as it’s unpredictable. So, BE READY FOR MULTIPLE TRY/FAULT ATTEMPTS.  If things doesn’t go well , I would suggest to break down the components and then deploy :

      ●  WebResources & OptionSets
      Custom Entities + Dependencies on Standard Entities (like custom view of standard entity used in the subgrid of custom entity form)
        Standard Entities
        Security Roles
        Dashboards & Reports
        Processes & Plugins & Custom Workflow Assemblies
        SiteMap & Application Ribbon

Apart from it Connection Roles, Templates, Field Security Profiles e.t.c can be separated too to avoid “missing dependency error”.

5.Active Directory Synchronization

Transition to dynamics crm online can be really weird and new for the users but doing AD synchronization can definitely comfort them to some extent. If you have a large organization that uses Active Directory to manage your users and groups, setting up Active Directory synchronization will allow you to manage all of your CRM Online users in a central location, avoiding the need to manage multiple user accounts and passwords. In the Office 365 portal, each user record automatically includes user details such as phone number, which is populated from the corresponding user entry in Active Directory. After you assign a CRM license to a user in the Office 365 portal, the user (and all associated details) will appear within the CRM application. If the user’s name or other information is updated in Active Directory, any changes will automatically propagate to CRM.


Here are few links to enable this:



6.Migrate your data

Migration of the data is another important aspect of an upgrade after customization.
There multiple options available such as custom .net code( console application) , Scribe, SSIS along with Dynamics CRM Adapters provided. Based on the volume of data, option can be selected.

Kingsway has a “Starter Package” that can be used a foundation to the migration of data from CRM to CRM.


you can combine Scribe with SSIS for other options such as migrating users. Where in you can get users using SQL query and then create them in dynamics crm online using API. ( we will talk about synchronization of Active Directory with dynamics crm online to be able to let users  use existing logins and email addresses).


7.Fix JavaScript & Plugins

Now that you have your customizations and Data in your dynamics CRM instance, Its time to go back to step 2 – Validate client and server side code.
We have discussed briefly there approach of fixing JavaScript and plugin code as what needs to be done.


8.Validate Sitemap

Now that you have moved your customizations, you might see weird changes on your dynamics CRM online sitemap.

Few ways to fix your sitemap and design your way again.

Using the build in SiteMap designer in dynamics CRM 365 online : https://www.inogic.com/blog/2018/01/inline-editing-for-sitemap-components-in-dynamics-365-v9-0/

Using SiteMap Editor tool from XRMToolbox: https://www.xrmtoolbox.com/plugins/MsCrmTools.SiteMapEditor/

Manually making changes to sitemap customization xml.


9.Reporting Options in Dynamics CRM Online 365

this is also one of the important aspect of dynamics CRM migration. Since you are moving Online/Cloud, your SQL based SSRS reports will not work. As Dynamics CRM 365 Online doesn’t support SQL based reports.

Hence you might want to consider changing each and every report, however changing them is not option here and also not a straight forward process due to various limitations. You might want to explore other reporting options:

● SSRS fetch XML based report – you can very well create fetch XML based reports. It’s very similar to how you create SQL reports and are fully compatible with dynamics CRM 365 Online.

Power BI – lets you create rich, interactive reports and real-time visualizations in Dynamics 365 for Customer Engagement with Power BI dashboards and tiles that you add to your personal dashboards.

See more:

Excel Templates – Excel provides powerful ways to analyze and present your Dynamics 365 for Customer Engagement data. With Excel templates, you can easily create and share your customized analysis with others in your organization.

See more: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/admin/analyze-your-data-with-excel-templates



10.Test, Test & Test Again..

You probably had rough days going through the migration process but its not the end until unless you are not fully confident, to gain confidence, you would need a team of testers who can test each and every functionality thoroughly.

While you are on migration – let people create test scripts for each functionality, get them approved by an expert and make sure they touch each and every component of your dynamics CRM.

Create a powerful regression suite – that takes you through end to end huge functionalities i.e. a quote and buy process, lead to invoice process etc.

Don’t hesitate in taking a testing expert with automation experience who can speed up things.
Remember the more you test, the more you gain confidence.


11.Copy Instance

once you have verified and everything looks fine – you would probably want one more instance such as a Dev or UAT environment. You can do that within your subscription.
You have two options while copying this instance Dynamics CRM Online:

● Full copy – A full copy includes all application data, users, and customizations from the source instance.
Minimal Copy – A Minimal copy only includes users, customizations, and schema from the source instance.

Read More : https://docs.microsoft.com/en-us/dynamics365/customer-engagement/admin/copy-instance


I hope this helps! 

                                  ****ALL THE VERY BEST****


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.