With more than 500,000 support tickets to process each year, the One Finance team at Microsoft decided to migrate an on-premises Microsoft Dynamics CRM 2011 customer support solution to Microsoft Dynamics CRM Online 2015. Since making the move, we’ve reduced our support costs by 50 percent and lowered our infrastructure costs. Also, our solution automatically stays up to date with the latest features and enhancements, and the new Service Level Agreement feature has proven to be just the tool we needed to improve our customer service.
Deciding to move to the cloud
One Finance is the largest business process outsourcing organization at Microsoft. It includes cross-team partners from Core Services Engineering (CSE, formerly Microsoft IT), operations, and finance organizations. We oversee the companywide delivery of account processing services—from the time something is purchased at Microsoft to the time it’s paid for and recorded in a journal transaction. We’re also responsible for new supplier setup and time and expense reporting. Servicing 117 countries, our business process partner, Accenture, operates out of global operation centers located in Dublin, Reno, Singapore, Buenos Aires, Chennai, Warsaw, and Dalian. In 2015, transaction volumes included 1.7 million invoices, 285,000 purchase orders, and 1.1 million expense reports.
For our Microsoft users, we provide Tier 1 support and use Dynamics CRM to manage and track customer support tickets. When Dynamics CRM 2015 was released, we decided to make the move to the cloud. This would reduce the cost for infrastructure and CSE support to maintain the CRM solution. A key factor in the decision to move to the cloud was the ability to keep the product continuously up to date with minimal intervention from CSE and no system downtime.
We consulted with the Microsoft Dynamics product group to identify the best course of action for making the change. Together we decided to do it in three parts:
- The support database was very large, holding 2 TB of data. To speed up and simplify the transition to the cloud, we’d archive much of this data and migrate only current data to Dynamics CRM Online.
- Before the migration, we’d migrate the on-premises CRM infrastructure to Dynamics CRM Online 2015, the newest on-premises version of Dynamics CRM. Doing this would make the subsequent transition to the cloud much easier.
- Immediately following the upgrade, we’d migrate the CRM solution to Dynamics CRM Online and add the Service Level Agreement (SLA) functionality available in Dynamics CRM Online.
With a fifth of the company's business relying on One Finance information and processes, it was crucial that the migration be both seamless and error-free. Also, it had to work globally. Upgrading and migrating our solution was going to be a big project. Adding data archiving made it even more complex, not to mention adding new SLA functionality and new configurations. One team would be optimizing the current solution to make it easier to upgrade, fixing code and configurations. Another team would be archiving old data. A third team would be preparing for the new SLA functionality. All of this work would culminate at once when the system went live. Careful planning of timing and processes would be critical.
Migrating the Dynamics CRM solution
Because of the complexity of the migration, we spent three months planning the project and assigning resources. For an additional six months, we performed the remainder of the tasks. The lengthiest projects were cleaning up our support database to make it easier to migrate and modifying and testing our custom code to work with the Dynamics CRM Online architecture. To perform the upgrade and migration, we had originally planned to have the system down for seven days, but we were able to do it over a single weekend. This is mainly because of the strategy we used for archiving unneeded data. We were able to archive most of it in advance. In more detail, the tasks we completed were as follows.
Cleaning up the database
The first challenge was cleaning up our large database and archiving any information that didn’t need to be migrated. The database cleanup work was on our critical path. Our users sent support requests through email, and the system automatically converted them into support tickets. By the time we were ready to migrate, there was 2 TB of data in our database. Daily backup jobs were taking hours to run, and migrating this much data would take even more time.
A major task for the migration was deciding what data to keep live in the system, so we wouldn’t have to migrate all of it. We needed to sort out relevant data from data that could be archived. We decided to preserve the data that was associated with tickets that were live at the beginning of 2016. We archived everything else and made it accessible with a tool for reporting and audit history, which greatly sped up our migration process.
To help with this project, we used CRM web services and SQL Server to extract and archive historical data. We built logic into the data extraction queries—the logic identified all the tickets and associated data that were closed before January 1, 2016. These tickets and data were extracted from the database. Any tickets that were still open after that date were left in the system. Previously closed tickets that were reopened after that date were also left in the system.
We spread the task of extracting data over a couple of weeks, taking real-time snapshots of the data. On the final weekend, it was easy to take a quick delta snapshot and then cut over to the new system. From our users’ perspective, the transition only took one and a half days.
Optimizing our solution
To optimize our solution, we simplified the number of required CRM data fields for each screen and transaction. This helped speed the migration and it also improved ongoing system performance. Out of the box, the Dynamics CRM agent includes some fields that we don’t need or use, so we removed them before we began the upgrade and migration.
We also optimized workflows to ensure that they were efficient. The simpler the workflow, the simpler the system is to support, and the better it performs. We also minimized customizations—like plugins and custom entities—using more out-of-the-box functionality.
Modifying and testing code
Some of our critical processes needed code modifications to keep them running. This is because the infrastructure design is different between on-premises CRM and online CRM. Reporting was one of the biggest areas to modify. On-premises CRM includes reporting features that give you direct access to SQL, so we could build SQL-based reporting tools. For online CRM, there’s no direct SQL access, and we needed to use a data-extraction utility to interface with our SQL-based reporting tools. We created staging tables to use for reporting or data interfaces. For this purpose, we set up a SQL Server instance in Azure and a replication schedule for the reporting data.
Adding new SLA functionality to the CRM solution
After reviewing the new SLA tracking features of Dynamics CRM Online 2015, we decided to begin using them as quickly as possible. This would improve tracking and increase support effectiveness. Adding this functionality further increased the complexity of our project, though. It would go live simultaneously with our migrated Dynamics CRM Online solution.
Upgrading and migrating simultaneously
There was one more crucial factor to plan for. In a normal migration, the on-premises CRM instance is first upgraded to the latest version of Dynamics CRM. After the upgrade is complete, it’s migrated to the cloud. However, because of the complexity of the One Finance move, we needed to upgrade and migrate the system and add the new SLA features simultaneously. Finding a time to do this while supporting day-to-day business-critical processes with users working in multiple time zones around the globe was a significant logistical challenge.
Exceeding expectations for the migration
Thanks to rigorous planning and buy-in at every step of the process, we completed the migration process without any user disruption. And because the archiving was done in advance—although we originally planned for a seven-day outage window—we completed the migration in a single weekend. Early results from the migration have exceeded our expectations:
- Improved processes and resource utilization with the new SLA feature. We’re able to define service levels for different teams to resolve different types of tickets. Because we outsource this work, we use the information from the new SLA functionality to work with our vendor and hold them contractually accountable for service levels. We’ve also experienced an improved turnaround time for tickets with our cloud solution versus the on-premises solution. Processing time has decreased because of increased productivity on ticket managing.
- Less administrative work with CRM cloud management. We don’t have to optimize our database anymore. It’s now part of our online CRM solution. And we’re getting our updates automatically—so our system stays up to date with the latest features with no downtime.
- Fifty-percent cost savings. We’re saving 50 percent of our support costs with the online solution. In addition, by moving to the cloud, we no longer have ongoing server costs, and we can increase capacity without having to add new physical servers. And maintenance costs are predictable or set to decrease with time.
This project has set the stage for future efficiencies and cost savings. We’ve set goals for significant improvements that will be enabled by this CRM migration.
Key takeaways from our migration project
For this project, we took advantage of our experience with similar, although smaller, migrations. Recommended best practices are documented in Microsoft Dynamics CRM (on-premises) to Microsoft Dynamics Online Migration Guide. In addition, we had the following takeaways from this project:
- Taking a major system online is a journey, but it is well worth the effort.
- Use out-of-the-box features as much as possible rather than customizations. This simplifies a migration.
- Before you migrate, simplify the Dynamics CRM agent interface to remove any unneeded fields.
- The simpler the workflow, the simpler the support requirements and the better the system performs.
For more information
© 2019 Microsoft Corporation. All rights reserved. Microsoft and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners. This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.