Migrate Teams private chats with ShareGate

Table of contents
TL;DR: ShareGate migrates Teams private chats—1:1s and group chats—between tenants with full history, real sender attribution, and incremental re-runs. Starting with PowerShell, with a full app experience inside ShareGate coming. Included in Migrate Pro and Enterprise.
SharePoint, OneDrive, mailboxes, Teams channels—ShareGate handles it all. Teams private chats too.
Those one-to-ones and group chats in Microsoft Teams carry conversations behind the work. What was said, agreed, decided. In compliance-driven moves and migrations in the context of a merger and acquisition, that history has to be accounted for.
This article covers what ShareGate migrates, what it doesn't, and how to run it from PowerShell.
What is Microsoft Teams private chat migration?
In Microsoft Teams, private chats are conversations that are only visible to you and the people you're chatting with. That includes one-on-ones and small group discussions where people send messages, files, GIFs, and stickers. Private chats are separate from Teams channels, which are shared spaces within a team.
Teams private chat migration is the process of moving those direct messages and group chats from a source Microsoft 365 tenant to a destination tenant.
ShareGate Migrate moves them with full history and real sender attribution. Available in Migrate Pro and Enterprise, with PowerShell.
What makes Teams private chat migration challenging—and how ShareGate fixes it
Getting chats to land correctly at the destination means solving three problems at once:
- Fidelity. Messages have to arrive with the original sender, timestamp, and formatting.
- Attribution. Every message has to stay linked to a real user profile at the destination. That means mapping source users before anything runs, and handling unmapped authors without blocking the migration.
- Incrementals. Chats keep arriving right up to cutover. You need to re-run without touching what already migrated.
ShareGate handles all three.
What migrates with ShareGate's Teams private chat migration (PowerShell)
You can run Teams private chat migration from PowerShell. A click-through experience inside ShareGate is coming. Stay tuned!
Limitations
Here's what doesn't move with this release:
- In-chat file attachment links
- Meeting chats as meetings (they land as group chats)
- Read/unread status
- Whole chats hosted in another tenant
- Copilot chats
- Custom date ranges
- Custom emojis
- Reactions are supported, but not on incremental runs
- User provisioning — destination accounts need to exist before the migration runs
Why your compliance team cares
In retention-driven migrations, such as M&A and carve-outs, private chats have to move, and the compliance team needs that history preserved and defensible. Messages land with the original sender and timestamp, giving you an auditable record.
For large migrations
A few years of history for a small team is typically a matter of days. For larger organizations or deep history (five, ten years across hundreds or thousands of users) run time can stretch significantly.
If that's your situation, then consider scoping by time window rather than migrating everything at once. Start with the most recent 90 days. You can always migrate more incrementally after.
How to copy Teams private chats with ShareGate PowerShell
This runs from PowerShell. A click-through experience inside ShareGate is coming.
There are four steps, each with its own cmdlet.
1. Find the users whose chats you want to copy. Use Get-ChatUser to identify source users.
2. Map source users to destination users. Use Export-UserMappings to generate the mapping file, fill it in, then load it with Import-UserMappings.
3. Set your copy options. Use New-ChatCopyOptions to configure the copy — including a start date if you're scoping by time window rather than copying full history.
4. Run the copy. Use Copy-Chat to start. ShareGate calls Microsoft's Teams import API to write messages directly into Teams at the destination. Messages land governed by Teams' native permissions.
For the full cmdlet reference, see our Copy private chats – Overview in the ShareGate help documentation.
What Microsoft's native migration covers
Microsoft's Cross-Tenant Migration Orchestrator handles Teams chat migration along with Exchange mailboxes, OneDrive, and Teams meetings. It requires a per-user license—a one-time fee that covers all supported content, including Teams chats.
Good to know
- Original content stays on the source in edited form
- Participant lists can change
- Duplicate threads can appear on both tenants
- It moves chats in a single pass, so there's no way to re-run and pick up only what's new
How ShareGate compares
¹ Microsoft Learn: migration orchestrator end-user experience, Known issues, item 3
² Microsoft Learn: migration orchestrator end-user experience, Teams chats
As of October 2026.
Teams private chat migration is available in ShareGate Migrate Pro and Enterprise, starting with PowerShell. We're also exploring the possibility of adding an HTML export option and a click-through experience inside ShareGate—we'll update this article when they ship!
See how tenant-to-tenant migration works with ShareGate—or book a demo.
Frequently asked questions
- Map everyone, not just the users you select. Map every source user to their destination account, including deactivated users. A chat is skipped if any participant isn't mapped.
- Select everyone who needs access. Only selected users become members of the migrated chat at the destination. Run everyone who should have access in the same migration.
- Limit history if run time matters. By default, all history is copied. Set a start date to scope it—90 days is a good starting point for most teams.
- Tell users to sign out and back in. Migrated chats sometimes don't appear right away. That's a Teams display delay, not missing data.
No. It's included in Migrate Pro and Enterprise.
%20(1).avif)





.avif)



