When it comes to migrating to SharePoint Online from an enterprise scale legacy environment, there could be few additional complexities associated with heavy customization or deeply nested site structure. This article aims to delve into it.
Generate the inventory report of the source environment and analyze the data. Go through the report and assess the complexity of the environment. Create a list of sites without customization and mark them to migrate first. Create another list of sites which have customization. Understand the complexity of the customization and find appropriate solutions on the destination. Use Power platform for the destination custom environment (for on-prem only). Try to use the Power Apps & Power Automate to convert your custom solution on the SPO. Use PowerBI Dashboard to demonstrate the source environment analysis with complexity level and solution which you are providing to business owners. Here is a typical Power BI report.
2. Permission Migration
This is the complex part of the SharePoint migration. You might have been able to migrate the content of SharePoint sites successfully, but you might face issues while migrating the user permission of the sites. As an example, some of the sites present in the SharePoint On-Prem may not inherit permission from the parent site, but the groups are present from its parent site. While you migrate to the site permission you will notice the group from parent sites are not copied to the destination as those are kind of orphaned on the source. So, you need to take care of this kind of permission migration issues. During the migration map the SharePoint groups with SPO SharePoint groups explicitly and migrate the root site permissions if those permissions are inherited. Must verify the site permission after migration.
3. Page Migration & Modernization
You need to migrate the classic pages and modernize them while migrating an on-prem SharePoint Sites to SharePoint Online. You might face a lot of issues migrating the heavily customized pages from source to the destination. There is only solution I found to make it successful. Map the site template to blank template on destination while migrating the classic pages using Sharegate Tool. On successful of migration, you will see the custom web parts and page layouts are missing on the destination created under “Pages” library. This is normal as you don’t have any option to deploy any solution on SPO. Now run the modernization script from Microsoft to modernize the Classic pages to Modern pages. This script will modernize the classic pages and create new modern pages under “Site Pages” library with content from migrated Classic pages from “Pages” library in SPO. This script will not be able to create everything same as source as lot of classic web parts are deprecated in Modern pages but still it will reduce a lot of manual work and save your migration time.
4. Custom Navigation & Quick Links Migration
Lot of our customers are using custom navigation built on their on-prem environment and which we are not able to migrate to the destination. You need to propose new solution here – like Mega Menu and/or Hub site association to show the menu by inhering top-link bar.
If the left navigation is also customized showing the links from a SharePoint list using custom solution, then there is no “out of the box” solution to migrate the left navigation. Follow the steps to migrate it – export the SharePoint list to Excel. Create a console application or PowerShell scripts to generate the Left Navigation from the Excel file.
Most of the cases you might have found the links on the pages are not migrated properly on SPO when you are migrating sites to site collection. It may happen if the links are hardcoded on the source as well. You need to write a PowerShell script to update the links on the destination if you find a pattern of the URL else manual editing is the only option. Here is an example script.
5. Power Platform Migration
When you are doing Tenant to Tenant migration, you need to migrate the Power Apps & Power Automate from one Tenant to another Tenant. To do this you need to run an assessment of your Power Platform Environment from source Tenant first. This assessment will include only PowerApps and Power Automate which are using SharePoint Sites under scope of migration. You do not need to worry about the PowerApps and Power Automate which are using CRM etc. which are not in the SharePoint migration. Run PowerShell scripts to get all the PowerApps and Power Automate from the environment. Choose the appropriate Power Apps & Power Automate to migrate and create a list.
With all probability, one would use ShareGate to assist in migration. ShareGate does not have the feature to migrate the Power Apps & Power Automate. You can use the export-import method to migrate the PowerApps & Power Automate but it’s difficult if you have thousands of them. We use our home-grown application to migrate the Power Apps & Power Automate to Tenant to Tenant and that may be a topic of discussion by itself in our subsequent blogs.
6. Custom Solution Migration
If the source environment is heavily customized and the customer wants to use the custom features after migration, then we need to analyze the custom application functionality thoroughly. There is no custom solution concept in SharePoint Online. So, we need to finalize the target application architecture on SharePoint Online after understanding the requirement. We normally introduce the Power Apps as our first choice for custom application migration. However, some of the custom application development requirements cannot be served by Power Apps. In such cases we introduce SPFx or React as front-end and we use Power Automate/Logic Apps, Azure functions etc. for backend development. The aim is to really understand the requirements of such custom solutions and redevelop it in SharePoint Online picking up the right tools judiciously.
7. Workflow Migration
This is again a complex part of migration. There could be a couple of workflow types involved– Workflow 2010, Workflow 2013- or third-party workflows e.g., Nintex Workflows. So first you need to get the workflow reports of all types and analyze them. Remove the workflows which have ‘0’ running instance from the migration list. Then remove all the workflows from the migration list which has the word ‘test’ in the name. This is a simple practical tip but will save a lot of migration efforts, since you will always find dummy or inactive instances of workflows floating around.
Now you need to decide on the migration path. In SharePoint Online Migration, we are migrating all the workflows to Power Automate. So, migrate all types of workflows to Power Automate if you are migrating to ang on-prem environment to SPO. If you are migrating SharePoint from Tenant to Tenant, then also migrate the SharePoint 2013 workflows to Power Automate if those are not done yet. If you are migrating on-prem to on-prem, then it is recommended to migrate SharePoint 2010 Workflow to SharePoint 2013 Workflow.
Communication plays a major role in SharePoint Migration. This is very important to notify Site Owners before making the migration. We normally send email communication to Site Owners only for migration. Communication happens in several phases of migration. We identified four major phases of migration – Pre-Migration, Full Migration, Delta Migration & Go-Live. We include the Full migration date, delta migration date, Cutover & Go-live date on email communication. We also provide the action required by site owners with Source and Target Site address on the email. We do normally use standard HTML email template with formatting which is a good migration practice. We also use home-grown App to send email to large number audience (Site Owners) when we do large migration.
9. User Acceptance Test
User acceptance test is very important after full migration. We run it after Full Migration and before delta migration. It helps to check their data on the target environment and whether the data is correctly migrated. They better understand their data than us as they are the ones who use it most often. They might find differences in item count compared to source and destination as source is continuously updating since we do not make the source site read only after Full Migration. Users can validate the custom apps functionality after migration and be familiar with the new interfacesafter migration to continue with the new site. If there are issues found during UAT they have the ability to log the issue on UAT Tracker App which is our home-grown App. At Netwoven, our UAT management is finetuned over the years to optimize on reporting, remediation, communication and timeline using home grown tools and processes.
10. SharePoint Site for Migration & Tracking
We use a Standard SharePoint Site Template with embedded Apps like Migration Mapping, Email Tracker, Migration Tracker, UAT Tracker etc. with multiple SharePoint lists as a migration control and collaboration point. We restore the site at customer end when we start the migration. We collect the reports from different sources – SMAT, ShareGate, Power Shell and consolidate them. We Upload these excel reports to SharePoint List and finalize the list of sites for Migration. All these Apps are using the same SharePoint list as data source, and we manage the whole migration from Single point. So, this SharePoint Site is very important to monitor and track migration as we are using/updating a single data source which reduces creation of multiple excel files with many versions and avoid conflict of information. We do encourage using this SharePoint Site to Business users as they also can track the migration progress and status of their site with future migration schedule as well.
Every migration is different, big or small. The aim of this article was to highlight various aspects of an enterprise level migration project. All such activities will have to be tailored depending on the complexity and idiosyncrasies of a given project. Please feel free to comment or ask if you have any questions.