Moving SharePoint content between tenants — for a merger, acquisition, or restructuring — has more options than it used to, ranging from a manual drag-and-drop to a native Microsoft-managed pipeline. What you keep (permissions, version history, workflows) varies a lot between them, which is the real deciding factor, not just price.
In this post: Native Microsoft 365 migration · Manual download and upload · Microsoft Migration Manager · PowerShell with PnP · Power Automate · Graph API / REST API · Third-party tools · Comparison table · When would you actually use this? · Related reading
Native Microsoft 365 migration
Best for: orgs that want a Microsoft-managed move without a third-party tool in the mix.
Microsoft now ships native cross-tenant migration for both SharePoint sites and OneDrive accounts, run through SharePoint Online PowerShell (Start-SPOCrossTenantSiteContentMove for sites, a separate flow for OneDrive) after establishing trust between the two tenants via Entra B2B. It requires a per-user Cross-Tenant User Data Migration Add-On license and real prerequisite setup, and it’s a one-and-done move (no incremental/delta passes), but the content moves entirely within Microsoft’s cloud without leaving it. See Cross-Tenant SharePoint Migration: What You Need to Know for the full licensing and setup walkthrough. Worth checking before reaching for a third-party tool by default — this option didn’t exist a couple of years ago and covers a meaningful chunk of what used to require one.
Manual download and upload
Best for: a handful of files, nothing more. No tooling required, but everything that isn’t the raw file content — Created By/Modified By metadata, permissions, version history, workflows — is lost in the process. Doesn’t scale past “small and simple.”
Microsoft Migration Manager
Best for: large document-library-only migrations, free and Microsoft-supported. The real limitation: it’s document libraries only — lists, metadata, permissions, and workflows aren’t part of what it moves.
PowerShell with PnP
Best for: migrating lists and libraries with metadata, scripted and automatable:
# Connect to source tenant and export
Connect-PnPOnline -Url "https://source.sharepoint.com/sites/MySite" -Interactive
Get-PnPListItem -List "Documents" | Export-Csv "Documents.csv"
# Connect to destination tenant and import
Connect-PnPOnline -Url "https://destination.sharepoint.com/sites/MySite" -Interactive
Import-Csv "Documents.csv" | ForEach-Object { Add-PnPListItem -List "Documents" -Values $_ }
Retains metadata and lookup fields, fully automatable — but permissions and version history aren’t preserved through this path, and it requires actual PowerShell scripting comfort.
Power Automate
Best for: incremental migrations — moving documents or list items on an ongoing basis rather than a single cutover. Same gap as the PnP approach: no permissions or version history, and it’s noticeably slower than the other options at real scale.
Graph API / REST API
Best for: developers with a custom migration requirement none of the above cover. Graph’s file copy operation is the core building block:
POST /sites/{sourceSiteId}/drives/{sourceDriveId}/items/{sourceItemId}/copy
Fully customizable, but it requires real development effort to build into something production-worthy, and Graph’s rate limits become a real constraint at large migration volumes.
Third-party tools
Best for: full-fidelity migration (metadata, permissions, version history, workflows, security settings all preserved) without building it yourself. The tradeoff is straightforward: a paid license, in exchange for not having to solve the metadata/permissions preservation problem from scratch.
- ShareGate — widely used, strong UI, no scripting required.
- AvePoint Fly — comprehensive migration with detailed reporting.
- Quest Metalogix — enterprise-scale migrations.
- CloudM Migrate — particularly strong for Teams and OneDrive migrations specifically.
Native Microsoft 365 cross-tenant migration didn’t exist a couple of years ago and now covers a meaningful chunk of what used to require a third-party tool by default.
Comparison table
| Method | Documents | Lists | Permissions | Metadata | Versions | Cost |
|---|---|---|---|---|---|---|
| Native M365 migration | Yes | Yes | Yes | Yes | Yes | Add-on license |
| Manual copy-paste | Yes | No | No | No | No | Free |
| Migration Manager | Yes | No | No | No | No | Free |
| PowerShell (PnP) | Yes | Yes | No | Yes | No | Free |
| Power Automate | Yes | Yes | No | Yes | No | Free |
| Graph API / REST API | Yes | Yes | No | Yes | No | Free (dev time) |
| Third-party (ShareGate, etc.) | Yes | Yes | Yes | Yes | Yes | Paid |
When would you actually use this?
- A full site or OneDrive account needs to move with everything intact — check the native Microsoft 365 option first, then a third-party tool if licensing or the one-and-done limitation rules it out.
- Only document content matters, no lists or permissions — Migration Manager is the free, Microsoft-supported answer.
- You need this integrated into a larger automated process (part of a bigger provisioning or onboarding flow) — that’s when PnP PowerShell or the Graph API earns the extra development effort.
Related reading
- Cross-Tenant SharePoint Migration: What You Need to Know — the deep dive on the native Microsoft 365 option covered briefly above, including licensing and real limitations.
- SharePoint Copy Files: Everything You Need to Know — for moving files within a tenant rather than across one.
Choosing the right approach comes down to what you actually need preserved, not just what’s free. Questions about your specific migration scenario? Drop them in the comments.
App Catalog Authentication Automation Backup Compliance Content Type CSS Flows Google Javascript Limitations List Metadata MFA Microsoft Node NodeJs O365 OneDrive Permissions PnP PnPJS Policy PowerApps Power Automate PowerAutomate PowerPlatform PowerShell React ReactJs Rest API Rest Endpoint Security Send an HTTP Request to SharePoint SharePoint SharePoint List SharePoint Modern SharePoint Online SPFX SPO Sync Tags Teams Termstore Versioning


