How to Migrate SharePoint List to Another Site? Efficiently
Because of SharePoint’s immense popularity, organizations used it at an alarming rate. Although SharePoint is rich in collaboration features, its List feature is highly used in organizations. However, there might be situations when organizations need to re-construct themselves, merge with another, and so on. In these situations, they need to migrate SharePoint list to another site to maintain data consistency.
Table of Content
- Reasons for Migrating SharePoint List to Another Site
- Pre-Migration Steps
- Use Professional Tool to Migrate SharePoint List
- PowerShell Commands for List Migration for Tech Experts
- Power Automate: Create a Flow to Move SharePoint List
- Download and Upload List as Template to Another Site
- Export List in Excel and Upload to Destination Site
- Post-Migration Checklist
- Conclusion & FAQ’s
But it is not as simple as it sounds. So, in this article, we will discuss the different approaches to copy SharePoint list to another site.
Before directly moving to the solutions, let’s take a look at one of the frustrated SharePoint user query.
An Overview of SharePoint List
Before going further in the discussion, let’s take a look at what the SharePoint list is. It is a feature in SharePoint that allows users to manage, organize, and store data in a structured format similar to a spreadsheet (excel files). Here each row represents an item along with the column that states the data about the item.
These are highly customizable and collaborative. In addition, it supports filters, views, sorting, and many more customizations as well. Users can integrate them with Microsoft 365 for real-time collaboration. Additionally, users can also use Power Automate (formerly Microsoft Flow) to automate list-related processes including sending alerts when items are added or updated.
Prime Reasons to Migrate SharePoint List to Another Site
Below are the prime reasons for moving SharePoint list to another site.
1. Organizational Restructuring
One of the major reasons to copy the SharePoint list to another site is the merger or restructuring of organizations. In these situations, lists need to move to new sites to meet the latest requirements.
2. Improved Collaboration
SharePoint lists might be required on another site whose team members need to access it frequently. It will save the time of searching for the list on another site.
3. Data Centralization
For collecting and storing the data in one place is also required to move the SharePoint list to another site. In addition, this is used to reduce redundancy from SharePoint sites.
4. Performance Optimization
To fulfill the SharePoint document management best practices or optimize the performance of the list. Sometimes it is required to move the SharePoint list to another site. Using heavy data volume lists might slow down the SharePoint site speed. So, moving them to another site having low congestion is good for their performance optimization.
5. Project Transition
Most of the time, the SharePoint projects are transferred to another department. In which the SharePoint lists are also required to migrate along with the project.
6. Permissions and Security Adjustments
Moving a SharePoint list to a different site can add new permission levels. Which is required in the industries having strict compliance.
7. Site Decommissioning
If you are already aware of how to permanently delete SharePoint site, then you should also remember the importance of the data inside it. To access the crucial list data event after site deletion, you need to migrate it to another site.
Preparation to Move SharePoint List to Another Site
For a smooth transition of the SharePoint list to another SharePoint site, fulfill the below prerequisites.
- Permissions – Make sure you have permissions for both sites including creating one.
- Optimize SharePoint List – Remove empty folders in SharePoint Online including files. It will save time and effort to avoid migrating irrelevant data into the list.
- Test Functionality – Test the functionality of the SharePoint list to ensure each feature of the list is working before migrating it to another site.
- Remove Items Duplicity – Find duplicate files in SharePoint Online and remove them for a flawless process.
- Perform a Test migration – Before the actual migration, test migration with the dummy list to find the errors at the run time.
How to Migrate SharePoint List to Another Site Using MVP’s Suggested Tool?
SharePoint is not used only in small or medium organizations. It is also used in the top MNCs to enhance collaboration. As a result, SharePoint acts as a central location to store crucial data. So, copying the crucial data containing SharePoint lists requires an authentic and secure tool.
Due to this, Microsoft professionals tested several tools and picked out the Most Reliable SharePoint Migration Tool. This tool incorporates several features and quick steps to simplify the process. Additionally, you can also copy document library to another SharePoint site.
Step 1. Download and Execute the tool.
Step 2. Choose Office 365 as Source & Destination platforms.
Step 3. Select the Sites that you want to migrate, and filter them as per necessity.
Step 4. Complete the credentials of both Source & Destination accounts.
Step 5. Add Users and then load Sites into the tool.
Step 6. Finally, hit the Start Migration button to migrate SharePoint list to another site.
Move SharePoint List from One Site to Another Site Using PowerShell Commands
Here is the free method to move items from one SharePoint list to another site. But only follow this method when you have technical expertise in executing the PowerShell commands. Otherwise, you will face a lot of errors.
Install-Module -Name PnP.PowerShell
Connect-PnPOnline -Url https://[entertenantname].sharepoint.com/sites/[source site] -Interactive
Get-PnPSiteTemplate -Out C:\Temp\Lists.xml -ListsToExtract “List Y”, “List Z” -Handlers Lists
Add-PnPDataRowsToSiteTemplate -Path C:\Temp\Lists.xml -List “List Y”
Add-PnPDataRowsToSiteTemplate -Path C:\Temp\Lists.xml -List “List Z”
Connect-PnPOnline -Url https://[entertenantname].sharepoint.com/sites/[destination SharePoint site] -Interactive
Invoke-PnPSiteTemplate -Path “C:\Temp\Lists.xml”
If the SharePoint list contains some attachments, then execute the below PowerShell script.
Function Copy-SPListAttachments()
{
param
(
[Parameter(Mandatory=$true)] [Microsoft.SharePoint.Client.ListItem] $SourceItem,
[Parameter(Mandatory=$true)] [Microsoft.SharePoint.Client.ListItem] $DestinationItem
)
Try {
$AllListAttachments = Get-PnPProperty -ClientObject $SourceItem -Property “AttachmentFiles”
$AllListAttachments | ForEach-Object {
$File = Get-PnPFile -Connection $SourceCont -Url $_.ServerRelativeUrl -FileName $_.FileName -Path $Env:TEMP -AsFile -force
$FileStream = New-Object IO.FileStream(($Env:TEMP+”\”+$_.FileName),[System.IO.FileMode]::Open)
$Attachment_Details = New-Object -TypeName Microsoft.SharePoint.Client.AttachmentCreationInformation
$Attachment_Details.FileName = $_.FileName
$Attachment_Details.ContentStream = $FileStream
$AttachedFile = $DestinationItem.AttachmentFiles.Add($Attachment_Details)
Invoke-PnPQuery -Connection $DestinationConn
Remove-Item -Path $Env:TEMP\$($_.FileName) -Force
}}
Catch {
write-host -f Red “Error Copying Attachments:” $_.Exception.Message
}
}
Function Copy-SPAllListItems()
{
param
(
[Parameter(Mandatory=$true)] [Microsoft.SharePoint.Client.List] $SourceList,
[Parameter(Mandatory=$true)] [Microsoft.SharePoint.Client.List] $DestinationList
)
Try {
Write-Progress -Activity “Reading Source…” -Status “Getting Items from Source List. Please wait…”
$SourceSharePointListItems = Get-PnPListItem -List $SourceList -PageSize 500 -Connection $SourceCont
SourceSharePointListItemsCount= SourceSharePointListItems.count
Write-host “Total Number of List Items Found are:”SourceSharePointListItemsCount
$SourceListFields = Get-PnPField -List $SourceList -Connection $SourceCont | Where { (-Not ($_.ReadOnlyField)) -and (-Not ($_.Hidden)) -and ($_.InternalName -ne “ContentType”) -and ($_.InternalName -ne “Attachments”) }
[int]$Count = 1
ForEach($SourceItem in $SourceSharePointListItems)
{
$ItemsValue = @{}
Foreach($SourceField in $SourceListFields)
{
If($SourceItem[$SourceField.InternalName] -ne $Null)
{
$FieldsType = $SourceField.TypeAsString
If($FieldsType -eq “User” -or $FieldsType -eq “UserMulti”)
{
$PeoplePickerValues = $SourceItem[$SourceField.InternalName] | ForEach-Object { $_.Email}
$ItemsValue.add($SourceField.InternalName,$PeoplePickerValues)
}
ElseIf($FieldsType -eq “Lookup” -or $FieldsType -eq “LookupMulti”) # Lookup Field
{
$LookupIDs = $SourceItem[$SourceField.InternalName] | ForEach-Object { $_.LookupID.ToString()}
$ItemsValue.add($SourceField.InternalName,$LookupIDs)
}
ElseIf($FieldsType -eq “URL”) #Hyperlink
{
$URL = $SourceItem[$SourceField.InternalName].URL
$Description = $SourceItem[$SourceField.InternalName].Description
$ItemsValue.add($SourceField.InternalName,”$URL, $Description”)
}
ElseIf($FieldsType -eq “TaxonomyFieldsType” -or $FieldsType -eq “TaxonomyFieldsTypeMulti”)
{
$TermGUIDs = $SourceItem[$SourceField.InternalName] | ForEach-Object { $_.TermGuid.ToString()}
$ItemsValue.add($SourceField.InternalName,$TermGUIDs)
}
Else
{
$ItemsValue.add($SourceField.InternalName,$SourceItem[$SourceField.InternalName])
}}}
#Copy Created by, Modified by, Created, Modified Metadata values
$ItemsValue.add(“Created”, $SourceItem[“Created”]);
$ItemsValue.add(“Modified”, $SourceItem[“Modified”]);
$ItemsValue.add(“Author”, $SourceItem[“Author”].Email);
$ItemsValue.add(“Editor”, $SourceItem[“Editor”].Email);
Write-Progress -Activity “ List Items starts copying:” -Status “Copying Item ID ‘$($SourceItem.Id)’ from Source List ($($Count) of $($SrcListItemsCount))” -PercentComplete (($Count / $SrcListItemsCount) * 100)
$NewItem = Add-PnPListItem -List $DestinationList -Values $ItemsValue
Copy-SPListAttachments -SourceItem $SourceItem -DestinationItem $NewItem
Write-Host “Copied Item ID from Source to Destination List:$($SourceItem.Id) ($($Count) of $($SrcListItemsCount))”
$Count++
}
}
Catch {
Write-host -f Red “Error:” $_.Exception.Message
}
}
$Source_SiteURL = “https://[tenantnamehere].sharepoint.com/sites/[sitenamehere]”
$Source_ListName = “[enter list name here]”
$Destination_SiteURL = “https://[tenantnamehere].sharepoint.com/sites/[sitenamehere]”
$Destination_ListName = “[enter list name here]”
$SourceCont = Connect-PnPOnline -Url $Source_SiteURL -Interactive -ReturnConnection
$SourceList = Get-PnPList -Identity $Source_ListName -Connection $SourceCont
$DestinationConn = Connect-PnPOnline -Url $Destination_SiteURL -Interactive -ReturnConnection
$DestinationList = Get-PnPList -Identity $Destination_ListName -Connection $DestinationConn
Copy-SPAllListItems -SourceList $SourceList -DestinationList $DestinationList
Migrate SharePoint List to Another Site Using Power Automate
Microsoft Power Automate offers the option to move one SharePoint list item to another site.
1. Setup trigger on the Source SharePoint list. Select the “When an existing item is modified” option.
2. Search for the item in the destination list to get its ID and update it.
3. Apply the condition to make sure whether the item exists or not.
[If the item is present update it, else create it.]
Move Items from One SharePoint List to Another Using Template Method
This method is also free and one can use it if the SharePoint list size is smaller.
- Open the SharePoint account then move to the List settings.
- Click on the Save List as template option from the Permissions and Management section.
- Now Open the Site settings and hit the List templates option.
- Choose the List template that you want to download or export.
- Afterwards, click on the Download a Copy button to save the list.
- Go to the destination site > Site collection.
- Open Site settings then Gallery.
- Move to the List templates and then the Documents section.
- Browse the downloaded file and upload it.
Migrate SharePoint List to Another Site By Exporting and Importing List in Excel File Format
Users can export the list into an Excel file format and then upload it to the destination site.
1. Go to the Source SharePoint Site > My Lists and open the SharePoint list that you want to copy.
2. Click on Export > Export to Excel and save it on your computer.
3. Afterwards, open the destination Site. Click on New > List.
4. Now upload the data from the downloaded Excel file.
5. Finally, Save the changes.
Post-Migration Verification
After the completion of a smooth transition of SharePoint lists, do not forget to validate the list data.
- Review: Perform a quick check on the migrated list and identify the discrepancies.
- Test List Functionality: Test all the features of the list to ensure everything is working as per expectations.
- Update References: Update any references to the old list, such as links and bookmarks.
- Clean Up the Source List: Once the list is copied to the destination SharePoint site, either delete the source list or archive it.
Conclusion
Copying a SharePoint list can be a daunting task, but with the right approach, it can be a smooth process. Now, by understanding the multiple approaches you can easily migrate SharePoint list to another site. Also do not forget, to choose the best migration method for your crucial data.
Frequently Asked Questions
Q1. How do I migrate a large SharePoint list to another site collection?
A – You can choose any of the above-suggested solutions to move items from one SharePoint list to another. But, you can pick PowerShell if you are good at it, otherwise, you should go with the MVP’s suggested tool to migrate crucial and large data lists to another SharePoint site.
Q2. Can I automate the SharePoint list migration process?
A – Yes, you can automate SharePoint list migration using PowerShell scripts or above suggested migration tool.
Q3. How do I migrate SharePoint list to another site along with the permissions?
A – While using the professional tool to copy list from one SharePoint to another, you do not need to worry about the permissions. Remember, this tool can migrate the permissions as well without hassle.
Q4. What are the risks of SharePoint list migration?
A – You might face several potential risks of SharePoint list migration. It includes data loss, broken links, permission issues, and workflow disruptions. Therefore, to minimize these risks, it’s important to copy SharePoint list to another site with careful planning.