Microsoft 365 tenant-to-tenant migration: the complete guide
What a tenant-to-tenant move involves, which workloads Microsoft's native tools cover, the order to do the work in, the licences you need and how the domain cutover weekend runs. Each workload links to its own detailed runbook.
How does a Microsoft 365 tenant-to-tenant migration work?
This moves people, their data and usually your email domain from one Microsoft 365 tenant (your organisation's own Microsoft 365 setup) to another: a Microsoft 365 tenant-to-tenant move, for example after a merger or a split. Microsoft's built-in moves carry mailboxes, OneDrive and SharePoint sites inside its cloud.
- Recommended route: Microsoft's built-in tenant-to-tenant moves, plus rebuilds
- Order: People first, then data, then the domain.
- 6 phases: Scope and licences, Build identities, Prepare and pilot, Move users in waves, Cutover weekend and Support and close.
- You're done when: Every user in the mapping sheet exists in the new tenant, with mailbox batches Completed and OneDrive and site moves at Success (or the tool reports no unexplained failures).
Teams, groups, plans, forms, apps, reports and devices are rebuilt in the new tenant or copied with a third-party tool. Two add-on licences matter. Cross Tenant User Data Migration is bought once per moving user for the built-in mailbox and OneDrive moves, and Microsoft sells it through resellers and online as well as to large organisations. Cross-Tenant Shared Data Migration is needed only for Microsoft's built-in site move, and Microsoft sells it only under an Enterprise Agreement: a volume licensing contract Microsoft signs directly with large organisations. Most small and medium businesses buy Microsoft 365 through a reseller or online instead, so they plan a third-party tool for sites. The timeline is driven by licence ordering, a seven-day wait after the file trust is set up, mailbox copies that start two weeks before each cutover, and one weekend with a short email outage.
Mailboxes, OneDrive and (with an Enterprise Agreement) SharePoint sites move inside Microsoft's cloud with no extra console, and you rebuild the smaller shared items, such as teams and plans, in parallel.
Other options and when to use them
- Third-party migration suite such as ShareGate Migrate, AvePoint Fly, BitTitan MigrationWiz or Quest On Demand Migration: You need copies made weeks ahead with top-up passes, Teams channel history, or you have no Enterprise Agreement for the SharePoint site licence.
- Mixed: built-in moves first, a tool for the gaps: Most workloads suit the built-in moves, but a few have blockers, such as SharePoint sites without an Enterprise Agreement, or channel history.
People first, then data, then the domain. Every built-in move copies content to an account that must already exist in the new tenant, and the email domain can only leave the old tenant once nothing there still uses it.
- Inventory, method per workload and licence ordersTells you which workloads Microsoft moves, which need a tool or a rebuild, and which licences to order. Ordering can take weeks, and moves fail without the licence.
- User accounts and groups in the new tenant, recorded in one mapping sheetMailbox, OneDrive and site moves all pair each old account with a new one, so the new accounts must exist before any data moves.
- Migration set-up: mailbox migration app, file trust and identity mapsMicrosoft documents a seven-day wait after the file trust is created, so start it while you build the rest.
- Shared workloads rebuilt: teams, groups, plans, forms, Power Platform, Power BI and device policiesThey do not depend on the mail cutover, and must be ready before the users who need them arrive.
- Pilot users moved end to endShows how long each workload takes, what users notice and what breaks, before real waves.
- User waves: mailboxes copied two weeks ahead, OneDrive and sites moved in each cutover windowMailbox batches keep themselves up to date until they complete. The built-in OneDrive and site moves are one-time, so they go as late as possible in each wave.
- Domain cutover weekendA domain can be in only one tenant, so it moves after the last mailbox batch completes and nothing in the old tenant uses it.
- Devices, hypercare and closing the old tenantDevices enrol into the new tenant once their user has moved. The file trust must be removed before the old tenant's licences expire.
Built-in and third-party tools treat these differently. Tick each one off once you have decided.
Download this checklist (Excel)How each tool handles it
Built-in methodBuilt-in mailbox and OneDrive moves need Cross Tenant User Data Migration: a one-time licence per moving user, assigned to the old or the new account, not both. Microsoft lists it for Enterprise Agreement, CSP (bought through a Microsoft reseller), web direct and small business customers. The built-in SharePoint site move needs a different licence, Cross-Tenant Shared Data Migration, sold only under an Enterprise Agreement in blocks of 100 GB. Moves fail without the right licence, and Microsoft gives no exceptions.Tip: Third-party tools use their own vendor licence instead, so get their terms from the vendor. If you buy Microsoft 365 through a reseller or online, you have no Enterprise Agreement: plan a tool for SharePoint sites.
Microsoft Learn: Tenant-to-tenant migration with orchestrator overviewHow each tool handles it
Built-in methodMicrosoft sizes Cross-Tenant Shared Data Migration from each site's storage used, plus 20 percent grace for growth. Storage used includes old file versions and the first-stage site recycle bin; the second-stage recycle bin does not count. This is what you are charged for. It is not a list of what moves: whether recycle bin items move is not stated in Microsoft's documentation.Tip: Archive stale sites, trim versions and clear recycle bin items nobody needs, then measure again before you order. The SharePoint runbook has the details.
Microsoft Support: Restore deleted items from the site collection recycle binHow each tool handles it
Built-in methodEach built-in move has its own map. The mailbox move lands on a mail user stamped with the old mailbox identifiers. OneDrive and site moves use an identity map: a CSV uploaded in the new tenant that pairs each old account with its new one. Each upload replaces the last, and people and groups not in the map lose access to shared files.ShareGate MigrateHow you map users and groups changes how permissions land. Destination users must already exist.AvePoint FlyAvePoint says Fly preserves permissions, with mapping of users and groups.Quest On Demand MigrationFor OneDrive, authors and editors map by primary email address only. External people keep access only if they already exist as guests.Tip: Keep one mapping sheet that feeds every map and every tool, so they never disagree.
Microsoft Learn: Step 5, identity mapping (OneDrive)How each tool handles it
Built-in methodBuilt-in mailbox and OneDrive moves block anything on any type of hold. After a mailbox moves, the old copy is deleted and cannot be searched in the old tenant.Tip: Agree each hold with legal, export anything the old organisation must keep to PST (an Outlook data file) before its batch completes, and reapply holds in the new tenant the same day.
Microsoft Learn: Cross-tenant mailbox migrationHow each tool handles it
Built-in methodBuilt-in mailbox move: a batch keeps copying changes in the background until it completes at the time you set, so you can start two weeks early. Built-in OneDrive and site moves: one-time, with no top-up pass, so they run in the cutover window.ShareGate Migrate"Copy if newer (incremental)" adds missing items and replaces older ones in sites and OneDrive. It does not delete items removed from the source.Quest On Demand MigrationRe-running a mailbox migration copies only new or missing items, using a hidden marker on items already copied.AvePoint FlyAvePoint says Fly keeps both tenants online and migrates incrementally.Tip: With the built-in moves, schedule each OneDrive and site in the same window as its users switch tenants.
Microsoft Learn: Cross-tenant OneDrive migration overviewHow each tool handles it
Built-in methodBuilt-in OneDrive and site moves: there is no setting to choose how many versions move. Versions count toward the 1 million item limit per OneDrive or site, and toward the storage used figure the site licence is sized on.ShareGate Migrate"Limit to X latest versions" copies the number you set, keeping at least one major version.Quest On Demand MigrationFor OneDrive, migrates version history, except that only the latest version of frequently updated files, such as PST and database files, moves.AvePoint FlyAvePoint says Fly preserves versions. Whether you can limit how many: not stated in AvePoint's documentation: test it in your pilot.Tip: For the built-in moves, trim old versions in the source first. Trimmed versions cannot be recovered, so get owner sign-off.
Microsoft Learn: Cross-tenant OneDrive migration overviewHow each tool handles it
Built-in methodBuilt-in OneDrive and site moves: old links redirect to the new location for people who have access there. Redirects last until you remove them or the old tenant is closed.ShareGate MigrateDoes not preserve sharing links. Users recreate them at the destination.Quest On Demand MigrationFor OneDrive, turns sharing links into direct permissions in the new tenant. External people must already exist there as guests.Tip: With a copy tool, tell users before their wave that old links will stop working.
Microsoft Learn: Cross-tenant OneDrive migration overviewHow each tool handles it
Built-in methodMicrosoft's migration orchestrator moves each user's Teams chats and meetings with their mailbox and OneDrive. Teams, channels, channel conversations and tabs are shared data it does not move. Channel files move with the team's SharePoint site.ShareGate MigrateCopies a team with its channels, files, Planner plans and connected group. Shared channels are skipped.BitTitan MigrationWizCopies public and private channels, 60 conversations per team by default (up to 1,000), and Planner. Shared channels and private chats are not migrated.AvePoint FlyAvePoint says Fly moves Teams, including Teams chat, across Microsoft 365 tenants.Tip: Tell users before their wave which conversations they will and will not see in the new tenant.
Microsoft Learn: Tenant-to-tenant migration with orchestrator overviewHow each tool handles it
Built-in methodNo built-in move. Mailbox moves do not support Microsoft 365 groups, and cross-tenant sync does not create them. Plans export to Excel but cannot be imported back. Forms are duplicated or recreated.BitTitan MigrationWizCopies plans, buckets and tasks with assignees, dates, checklists and comments. Created-by and created dates are not migrated.ShareGate MigrateCopies Planner plans with the team when you migrate it.Apps4.ProMigrates forms with their responses, shown as posted by the service account. There is no top-up pass.Tip: Export every kept plan to Excel and every form's responses before the owner's old account goes.
Microsoft Learn: Cross-tenant migration (FastTrack)How each tool handles it
Built-in methodMicrosoft's tenant-to-tenant environment move supports production and sandbox environments only. Default, developer, trial and Teams environments cannot move, and connections are always recreated in the new tenant.Tip: List flows in the default environment early. They are the easiest to miss and cannot move with it.
Microsoft Learn: Power Platform tenant-to-tenant migrationsHow each tool handles it
Built-in methodA domain can be verified in only one tenant. Between removing it from the old tenant and verifying it in the new one, Microsoft 365 accepts mail for it nowhere. Microsoft says removal takes five minutes to about a day, depending on how many objects use the domain.Quest On Demand MigrationDomain Move swaps addresses from old to matched new objects and relays inbound mail while they move. You still change MX records.Tip: Script and rehearse the clean-up of every address on the domain. The domain runbook has the order.
Microsoft Learn: Remove a domainHow each tool handles it
Built-in methodNo built-in move changes anything on PCs or phones. Users build a new Outlook profile, re-add their account on phones and sign in to the OneDrive sync app again. Each one downloads mail and files again.Tip: Spread mailbox completions across several times, and give users a one-page day-one guide.
Microsoft Learn: Cross-tenant mailbox migrationHow each tool handles it
Built-in methodDevices do not move with the data. Windows devices are joined and enrolled again into the new tenant, and Autopilot registrations move to the new tenant. BitLocker recovery keys (the codes that unlock encrypted drives) are held by the old tenant.Tip: Export BitLocker recovery keys while the old device records still exist, and put each device in the same wave as its user.
How each tool handles it
Built-in methodBuilt-in OneDrive and site moves: the trust removal command stops working on the old tenant once its licences expire. A completed built-in move can only be undone by a second move back.Tip: Remove the trust, redirects and the migration app before you cancel any licence in the old tenant.
Microsoft Learn: Step 7, post-migration steps (OneDrive)
- 1
Scope and licences
Before you set a dateWatch out: Built-in moves fail without their add-on licence. Mailbox and OneDrive moves need Cross Tenant User Data Migration, one per user, which resellers sell. Microsoft's built-in site move needs Cross-Tenant Shared Data Migration, sold only under an Enterprise Agreement.
Ways around it
- No Enterprise Agreement (true of most small and medium businesses): plan a third-party tool for SharePoint sites from the start.
Tools that can do it
- ShareGate MigrateCopies sites, libraries and OneDrive files with permissions and metadata, with incremental passes between waves.
- AvePoint FlyMoves SharePoint, Exchange, OneDrive, Teams and Groups across tenants, keeping permissions and versions.
Show the detail →Watch out: Built-in site move only: Microsoft sizes the site licence on each site's storage used, which includes old file versions and the first-stage recycle bin. Stale content raises the licence you must buy.
Ways around it
- Archive stale sites, trim version history on the largest libraries and clear unneeded recycle bin items before you measure. Trimmed versions cannot be recovered.
- 2
Build identities
Show the detailed steps (2) →Watch out: Cross-tenant sync: removing a synced user from the sync scope soft-deletes them in the new tenant and breaks access to what has moved.
Ways around it
- Convert synced users to internal members as part of their wave, and stop sync only when all waves are done.
- 3
Prepare and pilot
At least a week before the first file moveWatch out: Built-in OneDrive and site moves: Microsoft documents a seven-day wait after the trust is created before moves can run.
Ways around it
- Create the trust in the preparation phase, not the week of the pilot.
Show the detailed steps (2) →Watch out: Built-in mailbox move: mailboxes on any hold are blocked, and Microsoft 365 groups are not supported.
Ways around it
- Release or plan around holds, and rebuild groups in the new tenant (see the Groups runbook).
- 4
Move users in waves
Mailboxes two weeks before each cutoverWatch out: Built-in OneDrive and site moves are one-time, with no top-up pass, and only 4,000 can be queued at once across both.
Ways around it
- Schedule file moves close to cutover, and queue the next set only as the current one finishes.
Watch out: Microsoft's built-in tools do not move Teams channel conversations, Planner or Forms.
Ways around it
- Decide per team: start fresh, use a tool, or keep the old tenant open for searching.
Tools that can do it
- ShareGate MigrateCopies a team with channels, files, Planner plans and its group. Shared channels are skipped.
- BitTitan MigrationWizRecreates channel posts as threads, plus private channels and Planner. Shared channels and private chats are not migrated.
- AvePoint FlyMoves Teams, including Teams chat, with SharePoint, OneDrive and Groups.
- Apps4.ProMigrates Microsoft Forms with responses. Responses show as posted by the service account.
Show the detailed steps (5) →Watch out: Microsoft's Power Platform environment move supports only production and sandbox environments. Default, developer, trial and Teams environments cannot move.
Ways around it
- Move important flows into a solution in a supported environment early, or plan to rebuild them.
- 5
Cutover weekend
After the final batches show SyncedWatch out: The domain can be in only one tenant at a time, so mail to it has nowhere to land between removal and verification. Microsoft says removal takes five minutes to about a day.
Ways around it
- Script and rehearse the clean-up, pick the quietest period and tell the business the window in writing.
Tools that can do it
- Quest On Demand MigrationDomain Move swaps the domain from old to matched new objects and relays inbound mail while addresses move.
Watch out: Built-in mailbox move: once a batch completes, the old mailbox is deleted and cannot be searched in the old tenant.
Ways around it
- Ask legal what must be kept and export it to PST before the batch completes.
Turn this phase into dated tasks with the cutover planner
Check your DNS records before and after the change
Show the detailed steps (7) → - 6
Support and close
Hypercare weeks after each waveWatch out: With any method, Send on Behalf, signatures and Teams meeting links need fixing by hand, and every user rebuilds their Outlook profile.
Ways around it
- List these losses in the user communication pack, and restamp delegates from your export.
Show the detailed steps (5) →Watch out: Built-in moves: the trust removal command stops working once the old tenant's licences expire, and a completed move can only be undone by moving it back.
Ways around it
- Remove the trust before cancelling any old licence, and make the no-go call before completing a wave.
- Every user in the mapping sheet exists in the new tenant, with mailbox batches Completed and OneDrive and site moves at Success (or the tool reports no unexplained failures).
- The domain is verified in the new tenant, and mail flows with the original addresses and passes SPF, DKIM and DMARC.
- Users sign in, reach mail, files and Teams, and their devices show Compliant in the new tenant.
- Every shared workload is rebuilt and signed off by its owner, and no new mail reaches the old tenant.
Tools named in this plan are independent third-party products, not endorsed by the platform vendor and not paid placements. Check the tool's own documentation and run a pilot first.
What does each step involve?
Open a part when you reach it in the plan. Each step says where to go, what to do and what you should see.
About this migrationWhat it covers, limits at a glance
A tenant-to-tenant migration moves people, their data and usually an email domain from one Microsoft 365 tenant to another. Microsoft now provides native, cloud-side moves for the biggest workloads: Exchange Online mailboxes, OneDrive accounts and SharePoint sites, plus Teams chats and meetings through its migration orchestrator. Everything else is rebuilt in the target or moved with a third-party tool.
Nothing moves until identities exist in the target, and the custom domain cannot be in both tenants at once. Those two facts drive the order of work below. This page is the map; each workload has its own runbook with the exact commands.
1What you need before step one
| Need | Details | Where to get it |
|---|---|---|
| Admins in both tenants | Global Administrator in the source to consent to the mailbox migration app; Exchange Administrator for batches and endpoints; SharePoint Administrator for the OneDrive and SharePoint trust commands. | Microsoft 365 admin center (https://admin.microsoft.com) > Roles > Role assignments, in each tenant |
| Entra ID admins | Security Administrator in each tenant for cross-tenant access settings; Hybrid Identity Administrator to configure cross-tenant synchronisation. | Set up cross-tenant access settings |
| Migration licences | Cross Tenant User Data Migration per user for mailboxes and OneDrive. Cross-Tenant Shared Data Migration for SharePoint sites (Enterprise Agreement customers only). Microsoft says moves fail without them. | Your Microsoft partner or account team; check current pricing |
| Identity and target licences | Microsoft Entra ID P1 per synced user for cross-tenant synchronisation (Entra ID Governance or Entra Suite for groups). Target workload licences, with Exchange Online assigned only after the move. | Assign licences |
| Microsoft Graph PowerShell | For identity exports, BitLocker key backup and domain clean-up; the Beta module to precreate groups for SharePoint moves. | Install Microsoft Graph PowerShell |
| Exchange Online PowerShell | For hold checks, batches, address changes and restamping permissions. | Install the module and connect |
| SharePoint Online Management Shell | For the cross-tenant trust and move commands in both tenants. | Install SharePoint Online Management Shell |
| Power Platform and Power BI admins | An admin who can see every environment in the Power Platform admin center, and a Fabric or Power BI administrator for the workspace inventory. | https://admin.powerplatform.microsoft.com and https://app.powerbi.com > Settings > Admin portal |
| DNS and domain | Sign-in to your DNS host for MX, Autodiscover, SPF, DKIM and DMARC. Domain Name Administrator in both tenants, using an admin account that is not on the domain. | Remove a domain, add a domain |
| Files to prepare | User and group exports from both tenants in an identity mapping sheet, a list of mailboxes on hold, Send on Behalf permissions and BitLocker recovery keys saved before devices move. | Your Identity and licence mapping sheet |
2Workload coverage: native, third-party or rebuild
Scope every workload against this matrix before you commit to a date. "Native" means a Microsoft feature moves the content between tenants; "rebuild" means you recreate the item in the target and copy or export the data.
| Workload | Method | What to expect | Runbook |
|---|---|---|---|
| Entra ID users and groups | Rebuild (with sync for coexistence) | Cross-tenant synchronisation creates B2B users and security groups; migrating users become internal accounts | Entra ID |
| Exchange mailboxes (user, shared, archive) | Native | Cross-tenant mailbox migration: mail, calendar, contacts, tasks, notes, Recoverable Items | Mailboxes |
| OneDrive | Native | One-time move with a redirect left at the source | OneDrive |
| SharePoint sites | Native (Enterprise Agreement) or third-party | Site content moves; Teams structure, workflows and Power Platform items do not | SharePoint |
| Teams chats and meetings | Native (orchestrator) or third-party | Microsoft's orchestrator migrates chats and meetings with the user | Teams |
| Teams teams and channels | Rebuild or third-party | Files move with the SharePoint site; the team, channels, tabs and apps are recreated | Teams |
| Microsoft 365 Groups and Planner | Rebuild or third-party | Groups are not supported by mailbox moves; Planner needs a tool or export | Groups and Planner |
| Microsoft Forms | Rebuild | Duplicate or recreate forms; export responses first | Forms |
| Power Apps, Power Automate, Dataverse | Native for Dataverse environments, otherwise rebuild | Environments can move tenant-to-tenant; apps and flows need solutions and new connections | Power Platform |
| Power BI | Rebuild | Republish content, rebuild workspaces, gateways, refresh and sharing | Power BI |
| Devices (Intune, Autopilot, Windows) | Rebuild | Devices are re-registered and re-enrolled into the target | Devices |
| Email domain | Native (manual) | Removed from the source and verified in the target during the cutover window | Domain move |
3The recommended order of work and project phases5 steps
| Phase | What happens | Outputs |
|---|---|---|
| 1. Discover | Inventory both tenants: users, licences, mailboxes, sites, teams, apps, flows, devices, holds, domains and dependencies | Inventory, risk register |
| 2. Plan | Choose the method per workload, licensing, coexistence approach, waves, communications and rollback criteria | Master plan, wave plan, approvals |
| 3. Identity and security | Create target identities, groups, Conditional Access, compliance and labels; set up cross-tenant access | Mapping sheet, target baseline |
| 4. Prepare and pilot | Set up migration apps, trust and identity maps; move pilot users end to end | Pilot sign-off |
| 5. Waves | Pre-stage mailboxes, schedule OneDrive and site moves, rebuild Teams, Power Platform and Power BI | Wave reports |
| 6. Cutover | Complete final moves, move the domain, update DNS, enrol devices | Go / no-go decision |
| 7. Hypercare and close | Support users, license and restamp, decommission migration plumbing and the source | Closure report |
- 1
Build identities first
Where: Your Identity and licence mapping sheet, checked against the target tenant's Microsoft Entra admin center (entra.microsoft.com) > Entra ID > Users > All usersMailbox, OneDrive and SharePoint moves all map source users to target users that must already exist, and the target objects must be shaped correctly (for example, MailUsers with the source ExchangeGuid). Finish the identity design before you configure any data move.
Give every migrating user and group one row in the mapping sheet: source UPN, target UPN, source object ID and target object ID. Create the target accounts with cross-tenant synchronisation or bulk create them from a CSV. Do not create the mailbox endpoint, the SharePoint trust or the identity map until every row has a target object.
You should see: Every row in the mapping sheet has a target object ID, and each target user appears in Entra ID > Users > All users in the target tenant. - 2
Pre-stage mail early, move files late
Where: Your Migration wave plan (one tab per wave)Mailbox batches can synchronise for weeks and complete at cutover; Microsoft recommends submitting them two weeks ahead. OneDrive and SharePoint moves are one-time with no delta pass, so schedule them into each wave's cutover window.
For each wave, enter three dates: the mailbox batch submission date, the batch completion time (the
-CompleteAftervalue) and the OneDrive and site move start time (the-PreferredMoveBeginDatevalue, in UTC).You should see: Each wave shows a batch submission date at least two weeks before its cutover, and file move times inside the cutover window. - 3
Keep a user's workloads together
Where: Your Migration wave plan, user list for each waveMove a person's mailbox, OneDrive and chats in the same window, and keep delegates with the mailboxes they manage. Microsoft's orchestrator is designed to run a user's workloads together in dependency order.
List each user once, in one wave. Next to shared mailboxes, list every person with Full Access or Send on Behalf and put them in the same wave.
You should see: No user appears in two waves, and every delegate sits in the same wave as the mailboxes they manage. - 4
Rebuild shared workloads in parallel
Where: Your Master migration project plan, one task line per shared workloadTeams structure, Groups, Planner, Forms, Power Platform and Power BI do not depend on the mail cutover. Rebuild them in the target during the waves so they are ready when users arrive.
Add a task for each, with an owner and a finish date before the first user wave that needs it. Use the runbooks linked in the coverage table above for the exact steps.
You should see: Every shared workload has a named owner and a finish date earlier than the wave whose users depend on it. - 5
Move the domain last
Where: Your Cutover runsheetThe custom domain moves once every object that uses it is migrated or ready, because it can only be verified in one tenant at a time.
Schedule the domain removal after the final mailbox batch completes, and the target verification straight after it. The full sequence is in the cutover section below.
You should see: The runsheet lists final batch completion, then domain removal, then verification in the target, then DNS changes, in that order.
4Licensing overview
| Licence | What it covers | How it is sold and assigned |
|---|---|---|
| Cross Tenant User Data Migration | Mailbox and OneDrive moves; Microsoft's orchestrator documentation says it covers all content the orchestrator migrates | One-time, per user, on the source or the target user. Microsoft lists it for EA, CSP, web direct, small business and EDU customers |
| Cross-Tenant Shared Data Migration | SharePoint site moves | Per 100 GB moved, with a 20 percent storage grace; Enterprise Agreement customers only |
| Microsoft Entra ID P1 | Cross-tenant synchronisation of users | Per synced user, in the source tenant |
| Microsoft Entra ID Governance or Entra Suite | Cross-tenant synchronisation of groups | Per synced user, in the source tenant |
| Target workload licences | Exchange Online, SharePoint, Teams, Intune and so on in the target | Assign Exchange Online only after the mailbox GUID is stamped, or after the move |
5Identity: Entra ID users and groups2 steps
Create every migrating user in the target, decide whether people need to collaborate across tenants before they move, and rebuild groups, Conditional Access and MFA. Cross-tenant synchronisation helps with coexistence, but Microsoft says it is not a migration tool: synced users still sign in at the source until you convert them to internal users.
- 1
Map every identity
Where: PowerShell 7 on your admin PC with Microsoft Graph PowerShell, run once in each tenant, then your Identity and licence mapping sheetOne sheet with source UPN, target UPN and object IDs for every user and group. The mailbox endpoint, OneDrive identity map and SharePoint identity map all come from it.
If you do not have the module, install Microsoft Graph PowerShell first. Run the commands below in the source tenant, then again in the target, sign in with an admin of that tenant when the browser opens, and paste both exports into the mapping sheet side by side.
Connect-MgGraph -Scopes "User.Read.All","Group.Read.All" Get-MgUser -All -Property Id,DisplayName,UserPrincipalName,Mail | Select-Object Id,DisplayName,UserPrincipalName,Mail | Export-Csv C:\T2T\users.csv -NoTypeInformation Get-MgGroup -All | Select-Object Id,DisplayName,Mail,GroupTypes | Export-Csv C:\T2T\groups.csv -NoTypeInformation Disconnect-MgGraphYou should see: Two CSV files per tenant (users.csv and groups.csv), and a mapping sheet with one row per user and group showing both UPNs and both object IDs. - 2
Choose sync-then-convert or create directly
Where: Source tenant: Microsoft Entra admin center (entra.microsoft.com) > Entra ID > External Identities > Cross-tenant access settings. Or, to create directly, target tenant: Microsoft 365 admin center (admin.microsoft.com) > Users > Active usersSync external members for coexistence and convert them at migration, or create internal users directly. Either way, plan MFA registration in the target and rebuild Conditional Access with target IDs.
For sync, both tenants must first set up cross-tenant access settings; the sync configuration itself is in the Entra ID runbook. To create users directly, select Add multiple users on the Active users page, as described in bulk create users from a CSV. Record the choice in the mapping sheet.
You should see: Either the target organisation shows in the source tenant's Organizational settings list (and the source organisation in the target's), or the new users appear in the target's Active users list.
6Exchange Online mailboxes2 steps
Cross-tenant mailbox migration runs migration batches from the target using a multi-tenant app with the Mailbox.Migration permission, organisation relationships in both tenants and a scope group in the source. Each mailbox needs a target MailUser carrying its ExchangeGuid, ArchiveGuid and x500 addresses.
- 1
Watch the blockers
Where: PowerShell on your admin PC, connected to the source tenant with Connect-ExchangeOnlineMailboxes on any hold are blocked, Microsoft 365 Groups are not supported, and Send on Behalf, signatures and Teams meeting links do not carry over. Assigning an Exchange licence too early creates an empty mailbox.
If you have not used Exchange Online PowerShell before, install the module and connect first. Run the commands below to list mailboxes on hold and count Microsoft 365 Groups, and copy both lists into your risk register.
Get-EXOMailbox -ResultSize Unlimited -Properties LitigationHoldEnabled,InPlaceHolds | Where-Object { $_.LitigationHoldEnabled -or $_.InPlaceHolds } | Select-Object DisplayName,PrimarySmtpAddress,LitigationHoldEnabled,InPlaceHolds (Get-UnifiedGroup -ResultSize Unlimited).CountYou should see: A list of held mailboxes (or nothing, if none are on hold) and the number of Microsoft 365 Groups to rebuild. - 2
Plan the day-one experience
Where: Your User communication pack and Hypercare rosterUsers rebuild Outlook profiles and re-add mobile accounts, so budget hypercare time and bandwidth for OST downloads.
Put the steps from reset an Outlook profile into the day-one guide, test them with pilot users, and roster extra support for the morning after each wave completes.
You should see: A day-one guide tested by pilot users, and a roster naming who supports each wave.
7OneDrive2 steps
Cross-tenant OneDrive migration moves each account inside Microsoft's cloud using SharePoint Online PowerShell: trust in both tenants, an identity map uploaded in the target, a compatibility check, then Start-SPOCrossTenantUserContentMove from the source. Up to 4,000 moves can be queued, shared with SharePoint site moves.
- 1
Do not let target OneDrives provision
Where: Target tenant: SharePoint admin center > More features > User profiles (Open) > People > Manage User PermissionsA move fails if the user already has a OneDrive in the target, so restrict OneDrive creation there until the move completes.
By default Everyone except external users has the Create Personal Site permission. Remove that group, add only a group of people who should get a OneDrive now (for example IT staff), then select OK. Microsoft notes this does not delete OneDrives that already exist.
You should see: The permissions list no longer grants Create Personal Site to Everyone except external users. - 2
Schedule close to cutover
Where: Your Migration wave planThe move is one-time with no delta pass, and a redirect is left at the old URL until you remove it.
Enter each user's OneDrive move start time (UTC) inside their wave's cutover window, and add a clean-up task to remove redirects after the project closes.
You should see: Every migrating user has a OneDrive move time in the same window as their mailbox completion.
9Microsoft Teams, chats and meetings2 steps
Teams content lives in several places. Chats and meetings can move with Microsoft's migration orchestrator alongside each user's mailbox and OneDrive, and meeting migration depends on a successful mailbox migration. Teams, channels, tabs and apps are shared data that the orchestrator does not move; channel files move with the team's SharePoint site.
- 1
Agree what history users need
Where: Your Application inventory and dependency map (one row per team), signed off by each team ownerDecide per team whether to rebuild and start fresh, use a third-party tool for channel conversations, or keep the source searchable for records.
Copy the list of teams from the source Microsoft Teams admin center (admin.teams.microsoft.com) > Teams > Manage teams into the inventory, add a column for the decision, and ask each owner to confirm it.
You should see: Every team in the source has one recorded decision and a named owner who agreed to it. - 2
Recreate teams before users arrive
Where: Target tenant: Microsoft Teams admin center (admin.teams.microsoft.com) > Teams > Manage teamsRebuild teams, channels, owners and apps in the target, and have organisers recreate recurring meetings if you are not migrating them.
Select Add, enter the team name and description, choose private or public, then select the new team in the list to open its profile page and add channels and owners. Tell organisers in the wave communications which meetings they need to recreate.
You should see: Each rebuilt team appears in the Manage teams list with its owners and channels before its members' wave.
10Microsoft 365 Groups, Planner and Forms2 steps
Cross-tenant mailbox migration does not support Microsoft 365 Groups, and cross-tenant synchronisation does not create them. Groups, their plans and the forms people built are rebuilt in the target.
- 1
Recreate groups and plans
Where: Source: each plan in Planner, ... menu in the plan header. Target: Microsoft 365 admin center (admin.microsoft.com) > Teams & groups > Active teams & groupsRecreate each group with the same owners and members. Export important Planner plans to Excel as a record, then rebuild them or use a migration tool. See Groups and Planner migration.
In each source plan choose Export plan to Excel from the ... menu in the plan header and save the file with the project records. In the target admin center, add each group from the Active teams & groups page, then add its owners and members from your mapping sheet.
You should see: An Excel export for every important plan, and each recreated group listed on the target Active teams & groups page with the right owners. - 2
Export responses, then copy forms
Where: Microsoft Forms (forms.office.com), signed in as the form owner in the source tenant > the form > ResponsesExport each important form's responses to Excel before the owner's source account goes, then duplicate or recreate the form in the target and update links, QR codes and flows. See Microsoft Forms migration.
Open the form, select View responses, then use the menu next to Open results in Excel to download a copy, and store it with the project records.
You should see: An Excel workbook of responses saved for every important form, and a working copy of each form in the target.
11Power Apps, Power Automate and Dataverse2 steps
Microsoft supports tenant-to-tenant migration of production and sandbox Power Platform environments; default, developer, trial and Teams environments are not supported. Apps and flows outside a migrated environment move as solutions or packages, and connections are always recreated in the target.
- 1
Inventory owners and connections
Where: Source tenant: Power Platform admin center (admin.powerplatform.microsoft.com) > Manage > Environments, then your Application inventory and dependency mapList every app, flow, connector and environment with its owner. Personal flows outside solutions are the easiest to miss.
Record each environment's name and type from the Environments page. For each environment, list its apps and flows with their owners; the Power Platform runbook covers the inventory in detail.
You should see: An inventory row for every environment, app and flow with a named owner and the connectors it uses. - 2
Test with a sandbox copy first
Where: Source tenant: Power Platform admin center > Manage > Environments > select the production environment > CopyMicrosoft recommends migrating a copy of production as a sandbox and testing it before you migrate production.
The copy overwrites an existing sandbox environment in the same tenant and region, so create or choose that sandbox first. Select Copy on the top menu bar, choose the copy level (Everything or Customizations and schemas only), select the sandbox as the target, select Copy and then Confirm. Microsoft warns that everything in the target sandbox is deleted and replaced.
You should see: The sandbox shows as a copy of production in the Environments list, in administration mode, ready to use as your test migration.
12Power BI2 steps
Power BI content is rebuilt in the target: workspaces, capacity or licence assignments, reports and semantic models, gateways, scheduled refresh, row-level security, apps and sharing.
- 1
Inventory workspaces and gateways
Where: Source tenant: Power BI service (app.powerbi.com) > Settings (gear icon) > Admin portal > Workspaces, and Settings > Manage connections and gatewaysRecord each workspace, its members, data sources, gateways and refresh schedules, and where reports are embedded in Teams or SharePoint.
Sign in as a Fabric or Power BI administrator. Copy the workspace list from the admin portal into your inventory, then record each gateway and connection from the gateways page. The Power BI runbook lists everything to capture.
You should see: An inventory row for every workspace with its members, data sources, gateway and refresh schedule. - 2
Republish and reconnect
Where: Power BI Desktop on your admin PC (Home > Publish), signed in to the target tenant, then the target Power BI serviceRepublish content into target workspaces, reconfigure gateways and credentials, then reshare and update embedded links.
Open each .pbix file, select Publish on the Home ribbon and choose the target workspace. In the target service, set data source credentials and refresh schedules in each semantic model's settings, then reshare and replace embedded links in Teams and SharePoint.
You should see: Each report opens in its target workspace and its scheduled refresh completes without credential errors.
13Devices: Intune, Autopilot and Windows2 steps
Devices do not move between tenants with the data. Windows devices are joined and enrolled again into the target, Autopilot registrations move from the source to the target service, and mobile users add their new work account in Outlook, Teams and the Company Portal.
- 1
Build the target device baseline first
Where: Target tenant: Microsoft Intune admin center (intune.microsoft.com), and Microsoft Entra admin center (entra.microsoft.com) > Entra ID > Conditional AccessCompliance, configuration, app and Autopilot profiles must be ready in the target before the first device enrols, along with Conditional Access that expects those devices.
Recreate each policy and profile from your source inventory in the target Intune admin center, and assign them to target groups. The device runbook lists each item and the order to build it in.
You should see: A test device enrolled in the target receives every profile and app and reports as compliant. - 2
Plan profiles, keys and timing
Where: PowerShell 7 on your admin PC with Microsoft Graph PowerShell, signed in to the source tenant, then your Migration wave planBack up BitLocker recovery keys, decide how user profiles and local data are handled, and schedule device work around each wave's cutover.
Export the source keys with the command below while the device records still exist, and save the file somewhere secure. Add each device to the same wave as its user.
Connect-MgGraph -Scopes "BitlockerKey.Read.All" Get-MgInformationProtectionBitlockerRecoveryKey -All | ForEach-Object { $k = Get-MgInformationProtectionBitlockerRecoveryKey -BitlockerRecoveryKeyId $_.Id -Property key [pscustomobject]@{ DeviceId = $_.DeviceId; KeyId = $_.Id; Key = $k.Key } } | Export-Csv C:\secure\bitlocker-keys.csv -NoTypeInformationYou should see: A CSV with one row per recovery key (DeviceId, KeyId, Key), and every device assigned to its user's wave.
14The cutover weekend: moving the domain7 steps
A domain can be verified in only one tenant at a time. Between removing it from the source and verifying it in the target, mail to that domain has nowhere to land, so keep the window short and rehearse it. Microsoft says removal can take five minutes when few objects use the domain, and up to a day when many do.
- 1
Prepare before the weekend
Where: Your DNS host control panel > your domain > DNS records, then target Exchange Online PowerShell (Connect-ExchangeOnline)Lower TTLs on MX, Autodiscover and SPF records ahead of time, freeze changes, and confirm the last mailbox batches are synced with completion scheduled for the window.
Edit each record's TTL as described in lower DNS TTL before a migration, at least one old TTL period before the window. Then check the batches in the target.
Get-MigrationBatch | Format-Table Identity,Status,TotalCount,SyncedCount,FailedCount,CompleteAfterYou should see: A DNS lookup shows the short TTL on each record, and every batch for the window shows Synced with CompleteAfter set inside the window. - 2
Complete the final moves
Where: Target tenant: Exchange admin center (admin.exchange.microsoft.com) > Migration, and SharePoint Online Management Shell connected to the source tenantComplete mailbox batches and confirm the OneDrive and site moves scheduled for the window have succeeded.
For each batch without a scheduled completion, select it and choose Complete migration batch, or run
Complete-MigrationBatch(see create and complete a migration batch). Then check file moves with the second command from a SharePoint Online Management Shell session connected to the source.Complete-MigrationBatch -Identity "Wave1" Get-SPOCrossTenantUserContentMoveState -PartnerCrossTenantHostURL https://fabrikam-my.sharepoint.com/You should see: Each batch shows Completed, and every OneDrive and site move for the window shows Success. - 3
Remove the domain from every source object
Where: PowerShell on your admin PC, connected to the source tenant with Connect-ExchangeOnline and Connect-MgGraph, then source Microsoft 365 admin center > Settings > DomainsChange UPNs, primary SMTP and proxy addresses on users, groups, contacts and resources to the source
onmicrosoft.comdomain, then remove the domain from the source tenant. Use PowerShell for large tenants: the domain cannot be removed while anything still uses it.Sign in with an admin account that is not on the domain. Use the commands below to find what still uses it, change each object as described in remove a domain from Microsoft 365, then select the domain on the Domains page and choose Remove domain.
Connect-ExchangeOnline Get-Recipient -ResultSize Unlimited | Where-Object { $_.EmailAddresses -match "@contoso.com" } | Select-Object Name,RecipientTypeDetails,PrimarySmtpAddress Connect-MgGraph -Scopes "User.Read.All" Get-MgUser -All -Filter "endswith(userPrincipalName,'@contoso.com')" -ConsistencyLevel eventual -CountVariable c | Select-Object UserPrincipalNameYou should see: Both commands return nothing, and the domain disappears from the source Domains list (Microsoft says this can take five minutes, or up to a day when many objects used it). - 4
Verify the domain in the target and apply it
Where: Target tenant: Microsoft 365 admin center (admin.microsoft.com) > Settings > Domains > Add domain, then PowerShell connected to the targetAdd and verify the domain in the target, then set it as the UPN and primary SMTP address for migrated users and groups.
Follow add a domain to Microsoft 365 and choose I'll add the DNS records myself so you control the MX change. Then update each migrated user, for example:
Connect-MgGraph -Scopes "User.ReadWrite.All" Update-MgUser -UserId ana@fabrikam.onmicrosoft.com -UserPrincipalName ana@contoso.com Connect-ExchangeOnline Set-Mailbox -Identity ana@contoso.com -EmailAddresses @{add="SMTP:ana@contoso.com"}You should see: The domain shows as verified on the target Domains page, and Get-Mailbox ana@contoso.com shows contoso.com as the PrimarySmtpAddress. - 5
Point mail DNS at the target
Where: Your DNS host control panel > your domain > DNS records, using the values on target Microsoft 365 admin center > Settings > Domains > your domain > DNS recordsPoint MX, Autodiscover and SPF at the target.
Copy each value exactly as the target admin center shows it. Use change MX records for the MX change and set up an SPF record so you keep a single SPF record.
Resolve-DnsName contoso.com -Type MX Resolve-DnsName autodiscover.contoso.com -Type CNAME Resolve-DnsName contoso.com -Type TXTYou should see: The lookups return the MX, Autodiscover and SPF values the target admin center lists for the domain. - 6
Turn on DKIM and check DMARC
Where: Target tenant: Microsoft Defender portal (security.microsoft.com) > Email & collaboration > Policies & rules > Threat policies > Email authentication settings > DKIM, then your DNS hostEnable DKIM in the target and publish its selectors, and check DMARC.
Publish the two CNAME records the DKIM page shows for the domain, then turn on signing, as described in set up DKIM. Check the existing
_dmarcrecord with set up DMARC.Resolve-DnsName selector1._domainkey.contoso.com -Type CNAME Resolve-DnsName _dmarc.contoso.com -Type TXTYou should see: The DKIM page shows signing enabled for the domain, and the DMARC TXT record is still published. - 7
Test, then decide
Where: Target tenant: Exchange admin center (admin.exchange.microsoft.com) > Mail flow > Message trace, plus a pilot user's Outlook and an external mailboxSend internal and external test mail, run message traces, sign in as pilot users and make the go / no-go call against agreed criteria.
Select Start a trace for each test message. Record the results on the Go / no-go checklist.
You should see: Every test message shows Delivered in the trace, pilot users can send and receive with their contoso.com address, and the go / no-go checklist is signed.
15After go-live: hypercare and decommission5 steps
- 1
Run hypercare
Where: Your Hypercare roster and Hypercare issue logStaff a support desk for Outlook profiles, OneDrive sync, MFA registration and missing permissions, and log every issue.
Give the desk the Outlook profile reset steps and the day-one guide, and log each call with the user, the symptom and the fix.
You should see: Every support call is in the issue log with a status, and the number of new issues falls each day. - 2
Finish licensing and permissions
Where: Target tenant: Microsoft 365 admin center (admin.microsoft.com) > Billing > Licenses, then Exchange Online PowerShell connected to the targetLicense migrated mailboxes inside the 30-day grace period, restamp Send on Behalf and other delegate permissions, and reapply holds and labels.
Assign licences as described in assign licences in Microsoft 365. Restamp Send on Behalf from the export you took before the move, for example:
Set-Mailbox sharedfinance@contoso.com -GrantSendOnBehalfTo @{add = "ana@contoso.com"} Set-Mailbox ana@contoso.com -LitigationHoldEnabled $trueYou should see: Each migrated user shows the Exchange Online licence in Active users, and Get-Mailbox shows the expected GrantSendOnBehalfTo and hold settings. - 3
Remove the migration plumbing
Where: Target Exchange Online PowerShell, source and target SharePoint Online Management Shell, and target Microsoft Entra admin center > Entra ID > App registrationsRemove migration batches and endpoints, organisation relationships, the migration app and secret, SharePoint trust (before source licences expire) and redirect sites once nobody relies on them.
Run the clean-up commands in each runbook: mailbox clean-up and OneDrive and SharePoint trust removal. Then select the migration app under App registrations and select Delete.
Get-MigrationBatch | Remove-MigrationBatch -Confirm:$false Remove-MigrationEndpoint -Identity "T2T-Contoso" Get-OrganizationRelationship | Format-Table Name,DomainNames,MailboxMoveEnabledYou should see: Get-MigrationBatch and Get-MigrationEndpoint return nothing, no organisation relationship has MailboxMoveEnabled True, and the migration app is gone from App registrations. - 4
Keep the source as long as you must, then close it
Where: Your Decommission checklist, and the source tenant's Microsoft Purview portal (purview.microsoft.com) > eDiscovery for any exportsAgree how long the source stays for records and fallback. Remember the source mailbox is deleted after a cross-tenant move, so export anything the source organisation must retain before the move, not after.
If a mailbox must be retained, export it to PST before its batch completes. Record the agreed retention period and the closure date in the checklist.
You should see: A signed-off retention period, retained exports stored with the project records, and a closure date for the source tenant. - 5
Review
Where: Your Post-implementation review and Handover to operations documentsRun a post-implementation review and hand runbooks and known issues to operations.
Attach the hypercare issue log and the final runbooks, and list any open issues with an owner.
You should see: Operations accept the handover in writing, and every open issue has an owner.
What can go wrong, and how do you avoid it?
The detail behind the plan: options compared, and what experienced engineers check first. Tap any item.
Compare all the ways to do this3 options
Microsoft native moves plus rebuild
High effortBest for: Most mergers and divestitures, where mail, OneDrive and sites hold most of the data
- Mailboxes, OneDrive and SharePoint sites move inside the Microsoft cloud
- Teams chats and meetings move with the user through the migration orchestrator
- No third-party licence or extra console
- Cross Tenant User Data Migration per user, and Cross-Tenant Shared Data Migration for sites (Enterprise Agreement only)
- Teams structure, Groups, Planner, Forms, Power Platform, Power BI and devices are rebuilt
- One-time moves with no delta passes
Third-party migration suite
High effortBest for: Large or complex moves that need pre-staging, delta syncs or channel history
- Copies content ahead of time, then runs deltas before cutover
- Covers some workloads Microsoft does not move, depending on the vendor
- Source data stays intact until you decommission it
- Vendor licence; check current pricing
- Copies through Microsoft APIs, so large estates are slower
- Coverage differs per vendor, so check each workload against the matrix below
Mixed: native first, tool for the gaps
High effortBest for: Organisations that are native-eligible for most workloads but have blockers or gaps
- Native moves for most users and data, a tool only where it adds value
- Fits organisations that cannot buy the Cross-Tenant Shared Data Migration licence for sites
- Two systems and two mapping files to keep in step
- More testing, because both paths must land the same result
Start by scoring every workload in the coverage matrix as native, third-party or rebuild. If you are on an Enterprise Agreement and accept one-time moves, the native route covers the bulk of the data. Otherwise plan a tool for SharePoint from day one, and use one wherever you need delta syncs or Teams channel history. Whatever you choose, identity comes first and the domain moves last, as described in move a domain between tenants.
Confirm you can buy the migration licences before you set a dateCost lever
Mailbox and OneDrive moves need a Cross Tenant User Data Migration licence per user, and SharePoint site moves need Cross-Tenant Shared Data Migration, which Microsoft sells only to Enterprise Agreement customers. Microsoft says migrations fail without the licence and it gives no exceptions.
Ask your Microsoft partner or account team, in writing, which licences you can buy and how long ordering takes. If you cannot buy the SharePoint licence, budget for a third-party tool for sites from the start.
Third-party tools copy SharePoint sites and OneDrive content through their own licensing, so they are the usual route for sites when Cross-Tenant Shared Data Migration cannot be bought. They copy content rather than move the site, so plan a final incremental pass at cutover.
- ShareGate MigrateMigrates site collections, sites, lists, libraries and OneDrive files with permissions and metadata between tenants, with incremental passes between waves.
- AvePoint FlyMoves SharePoint, Exchange, OneDrive, Teams and Groups across Microsoft 365 tenants, keeping permissions and versions.
Clean up sites before you size the SharePoint orderCost lever
Microsoft sizes Cross-Tenant Shared Data Migration, the licence for its built-in site move, from each site's storage used. That figure includes old file versions and the first-stage recycle bin (the second stage does not count), so stale sites, old versions and deleted items left in place are data you pay for.
Archive or delete inactive sites, trim version history on the largest libraries and empty recycle bins in the source before you measure StorageUsageCurrent and place the order.
Start SharePoint trust at least a week before the first file moveSaves time
Microsoft documents a seven-day waiting period after the OneDrive and SharePoint trust is created, during which verification returns DormantByPartner.
Run the trust commands in both tenants during the preparation phase, not the week of the pilot, and verify that both return GoodToProceed before you schedule anything.
Share the 4,000-move queue between OneDrive and sitesSaves time
Up to 4,000 OneDrive and SharePoint moves can be queued at a time, and the limit is shared between the two workloads.
Plan OneDrive and site waves together in one schedule and queue the next set only as the current one nears completion.
Agree the email outage window for the domain moveUser impact
The domain can be verified in only one tenant at a time, and Microsoft says removal can take five minutes or up to a day depending on how many objects use it. Mail to that domain has nowhere to land in between.
Script the removal of every reference in advance, rehearse it, schedule it for the quietest period, and keep the window as short as you can. Tell the business the window in writing.
Microsoft's path leaves you to clear every reference to the domain by hand. A domain move tool removes the domain from each source object and adds it to the matching target object for you, which shortens the window. You still update MX records yourself.
- Quest On Demand MigrationDomain Move removes the domain from source objects, adds it to matched target objects and uses a relay service to keep inbound mail flowing while proxy addresses move. It prompts you when MX records need changing.
Never unscope migrating users from cross-tenant syncReduces risk
Removing a synced user from the sync scope soft-deletes them in the target, which breaks access to everything already moved for them.
Convert synced users to internal members as part of their wave, then stop or remove the sync configuration when all waves are done, rather than unscoping users one by one.
Set expectations on what users loseUser impact
Teams channel conversations, Planner, Forms, Send on Behalf, signatures and Teams meeting links do not move with the native tools, and every user rebuilds Outlook and re-adds mobile accounts.
List the losses per workload in the user communication pack before the pilot, and decide per team whether a third-party tool is worth it for channel history.
Teams migration tools recreate channels and their conversation history in the target team and copy Planner plans with them, which the native tools do not. Send on Behalf, signatures and meeting links still need fixing by hand.
- ShareGate MigrateCopies a team with its channels, files, Planner plans and connected group to another tenant. The 50 most recent conversations land in Posts; older ones go to an HTML Message history tab. Shared channels are skipped.
- BitTitan MigrationWizTeams-to-Teams migration recreates channel posts and replies as threads (60 per team by default, up to 1,000), plus private channels and Planner. Shared channels and private chats are not migrated.
- AvePoint FlyMoves Teams, including Teams chat, along with SharePoint, OneDrive and Groups across Microsoft 365 tenants.
- Apps4.ProMigrates Microsoft Forms with their responses and attachments to the target tenant. Responses show as posted by the service account, and there is no incremental pass.
Export records before source mailboxes are deletedCompliance
After a cross-tenant move the source mailbox is deleted and cannot be searched in the source tenant, and the source tenant may be closed soon after.
Ask legal what the source organisation must keep. Export those mailboxes, or copy content to another source mailbox, before their batch completes, and agree how long the source tenant stays open.
Check which Power Platform environments can moveReduces risk
Microsoft supports tenant-to-tenant moves of production and sandbox environments only; default, developer, trial and Teams environments are not supported, and personal flows in the default environment are the easiest to miss.
List flows and apps in the default environment early and move the important ones into a solution in a supported environment, or plan to rebuild them.
Remove SharePoint trust before source licences lapseReduces risk
Microsoft warns that once source tenant licences expire, the trust removal command no longer works on the source.
Put trust removal, redirect clean-up and the migration app deletion on the decommission checklist ahead of any licence cancellation in the source.
How do you check it worked, or roll back?
Full validation checklist9 checks
Run these before you declare the migration complete. Record the results in the data validation report.
| Check | How to check | What good looks like |
|---|---|---|
| Every identity in the mapping sheet exists in the target | Connected to the target with Connect-MgGraph, run | Every row in the mapping sheet has a matching target user or group, and no migrating user is still external if your design converts them. |
| All mailbox batches completed and mailboxes are licensed | In target Exchange Online PowerShell run | Every batch shows Completed with FailedCount 0 (or agreed exceptions), and every migrated mailbox is licensed within the 30-day grace period. |
| OneDrive and site moves show Success | In source SharePoint Online Management Shell run | Every OneDrive and site scheduled for the window shows Success. |
| The domain, MX, SPF, DKIM and DMARC are right | Run | The domain is verified in the target, MX and SPF match the target values, DKIM signing is enabled, and DMARC is still published. |
| Mail flows with the original addresses | Send internal and external test mail to and from pilot users, a shared mailbox and a group, and trace it in the target Exchange admin center > Mail flow > Message trace. | Every test message shows Delivered, and pilot users send and receive as their contoso.com address. |
| Users sign in and their clients reconnect | Sample users from each wave sign in at https://www.office.com, open Outlook with a new profile, check the OneDrive sync app account, and open Teams with the target account. | Each user reaches the target mail, files and Teams with MFA registered, and the hypercare issue log shows falling new issues. |
| Shared workloads are rebuilt and signed off | Work through the Master migration project plan lines for Teams, Groups, Planner, Forms, Power Platform and Power BI, and confirm each owner's sign-off and the checks in the linked runbooks. | Every shared workload has an owner sign-off, and each runbook's own validation checks pass. |
| Devices are enrolled and compliant in the target | In the target Microsoft Intune admin center > Devices > All devices, check the wave's devices and their Compliance column. | Every device assigned to a completed wave is enrolled in the target and shows Compliant. |
| The source no longer takes writes | In the source Exchange admin center > Mail flow > Message trace, search the last 24 hours for contoso.com recipients. In the source SharePoint Online Management Shell list | No new mail is delivered to source mailboxes, and every moved OneDrive and site is a redirect in the source. |
Rollback planIf it goes wrong
Roll back if
- The domain cannot be verified in the target within the agreed outage window
- Mailbox batches for the cutover wave are not Synced, or completed mailboxes are missing content
- OneDrive or site moves for the window fail and users would be split across tenants
- Pilot users cannot sign in, register MFA or reach mail in the target at the go / no-go check
- A business-critical shared workload (for example a Power Platform app or report) is not working in the target
Point of no return
Each workload has its own point. Mailboxes: a completed batch converts the source mailbox to a MailUser that is no longer searchable in the source. OneDrive and sites: a move that reaches Success leaves only a redirect in the source. Identities: converting a synced external member to an internal user is not documented as reversible. The domain: once removed from the source, going back repeats the mail gap. Each of these can only be reversed with a second migration in the opposite direction, so the cheapest go / no-go point is before you complete the cutover wave and remove the domain. Deleting the source tenant or letting its licences lapse cannot be undone.
- 1
Make the no-go call before completion
Where: Your Cutover runsheet, at the go / no-go checkIf a trigger is met before batches complete, push out completion with
Set-MigrationBatch -Identity "Wave1" -CompleteAfter "12/31/2026 10:00 PM Z", stop scheduled OneDrive and site moves withStop-SPOCrossTenantUserContentMoveandStop-SPOCrossTenantSiteContentMove, and keep the domain in the source.You should see: Users keep working in the source and no workload has switched. - 2
Roll back the domain if it already moved
Where: Microsoft 365 admin center of both tenants and your DNS hostFollow the rollback in move a domain between tenants: clear the domain from target objects, remove it from the target, verify it again in the source and point MX back.
You should see: The domain is verified in the source again and mail arrives there. - 3
Move completed mailboxes back
Where: Exchange Online PowerShell in both tenantsFollow the reverse move in cross-tenant mailbox migration: update the organisation relationships to allow both directions and run a batch from the original source.
You should see: The rolled-back mailboxes open in the original tenant. - 4
Move OneDrives and sites back
Where: SharePoint Online Management Shell in both tenantsFollow the reverse moves in cross-tenant OneDrive migration and cross-tenant SharePoint migration: remove the source redirect first, then move back with the roles swapped.
You should see: Files open at their original URLs and no redirect is left in either tenant. - 5
Send users and devices back to the source
Where: Your User communication pack, each user's PC and phone, and the Intune admin centersTell users which account to use, have them rebuild Outlook profiles and relink OneDrive, and roll back any devices already moved using the device guide.
You should see: Users work in the source with their original accounts, and the Rollback plan records the cause and next date.
Agree the triggers and who decides before the go / no-go meeting. Use the rollback plan template.
Common problems and fixes6 errors
CrossTenantMigrationWithoutLicensePermanentExceptionCause: A migrating user has no Cross Tenant User Data Migration licence.
Fix: Assign the licence to the source or target user and resume the batch.
Empty mailbox appears in the target and the move failsCause: An Exchange Online licence was assigned before the ExchangeGuid was stamped.
Fix: Remove the licence and follow the clean-up in the mailbox guide; license after the move next time.
OneDrive or SharePoint move fails because the target site already existsCause: The user signed in to OneDrive, or a site or group was created in the target before the move.
Fix: Restrict OneDrive and site creation in the target; remove the empty target site or use a new URL, then retry.
Domain cannot be removed from the source because it is in useCause: Users, groups, contacts or other objects still use the domain in a UPN or email address.
Fix: Find every reference with Get-Recipient and Get-MgUser, change them to the onmicrosoft.com domain and try again.
Users lose access after conversion or sync changesCause: A synced user was removed from cross-tenant sync scope, which soft-deletes them in the target.
Fix: Restore the user within 30 days and suspend or remove the sync configuration instead of unscoping migrating users.
Outlook keeps connecting to the old tenantCause: The existing profile looks for the old primary address and mailbox.
Fix: Create a new Outlook profile with the target UPN after the mailbox completes; put the steps in the day-one guide.
Frequently asked questions
Can Microsoft 365 tenants be merged without third-party tools?
Mostly. Native features move mailboxes, OneDrive, SharePoint sites and, through the orchestrator, Teams chats and meetings. Teams structure, Groups, Planner, Forms, Power BI and devices are rebuilt, and third-party tools help where you need delta syncs or channel history.
Do users keep their email address?
Yes, once the domain is removed from the source and verified in the target at cutover. Until then, migrated users use a target domain address.
What licences do I need for a tenant-to-tenant migration?
A Cross Tenant User Data Migration licence per migrating user for mail and OneDrive, Cross-Tenant Shared Data Migration licences per 100 GB for SharePoint sites, and the normal workload licences in the target. Check current terms with your Microsoft partner.
What order should I migrate workloads in?
Identity first, then pre-stage mailboxes, then move OneDrive and sites in each wave's window, rebuild shared workloads in parallel, and move the domain last.
Why is there email downtime during the cutover?
A domain can only be verified in one tenant at a time. Between removing it from the source and verifying it in the target, mail to that domain cannot be delivered to either tenant.
Can I move only some users to a new tenant?
Yes. Microsoft's tools scope moves to selected users and sites, which suits divestitures. The domain only moves if every object using it leaves the source.
Official sources
14 official pages this guide is based on
Vendors change limits and features, so confirm details on the source before you rely on them. Last checked 4 Nov 2026.