Home > Perform Microsoft Teams Migrations
Export to PDFMicrosoft Teams Migration allows you to migrate Teams data, including channels, channel conversations, members, apps, tabs, and planner tasks from Microsoft Teams to Microsoft Teams, or from Microsoft Teams to Google Chat Space.
To understand the supported and unsupported elements in the migration, you can refer to the Support Lists for Microsoft Teams Migration.
Before getting started, please read the following sections.
Fly leverages Microsoft Graph beta APIs (the APIs in preview) for some functionalities that are currently unsupported by version v1.0. The features using the following beta APIs may be affected if Microsoft introduces changes to their beta APIs.
Refer to the table below for the beta version API methods of Microsoft Graph that we use in Fly.
| API Type | API Method | Note | Function in Fly |
|---|---|---|---|
| Microsoft Graph | GET /teams/{team-id}/channels/{channel-id}/messages | The API method is not available in Microsoft Graph API 1.0 version. | List channel messages if the source connection does not have an app profile or delegated app profile. |
| Microsoft Graph | POST {teamId}/channels/{channelId}/messages | The API method is not available in Microsoft Graph API 1.0 version. | Post channel messages in the destination if the destination connection only has a service account. |
| Microsoft Graph | POST {teamId}/channels/{channelId}/messages/{messageId}/replies | The API method is not available in Microsoft Graph API 1.0 version. | Post replies in the destination if the destination connection only has a service account. |
| Microsoft Graph | GET {teamid}/channels/{channelid}/messages/{messageId} | The API method is not available in Microsoft Graph API 1.0 version. | Export source channel messages if the source connection only has a service account configured. |
| Microsoft Graph | PATCH {teamId}/channels/{channelId} | The API method is not available in Microsoft Graph API 1.0 version. | Update channel settings in the destination. |
| Microsoft Graph | GET /teams/{team-id}/channels/{channel-id}/messages/{message-id}/hostedContents/{hosted-content-id} | Microsoft Graph API 1.0 version isn’t enough to be leveraged in the product, and no update plan yet. | Get hosted content in a channel message if the source connection only has a service account. |
| Microsoft Graph | GET /teams/{team-id}/channels/{channel-id}/messages/{message-id}/replies/{reply-id}/hostedContents/{hosted-content-id} | Microsoft Graph API 1.0 version isn’t enough to be leveraged in the product, and no update plan yet. | Get hosted content in a channel message reply if the source connection only has a service account. |
| Microsoft Graph | POST {teamId}/channels/{channelId}/members | The API method is not available in Microsoft Graph API 1.0 version. | Add private channel members to the destination 21Vianet tenant if the destination connection only has a service account. |
| Microsoft Graph | GET {teamid}/channels/{channelid}/members | The API method is not available in Microsoft Graph API 1.0 version. | Get private channel members of source 21Vianet tenant if the source connection only has a service account. |
Fly supports two migration modes: Advanced mode and Classic mode, which will be identified based on different conditions.
Advanced mode – Condition: The destination connection has an app profile and the destination Teams need to be created during the migration.
If no destination user can be mapped as the source Team message sender based on the mapping properties, the sender will be displayed as Unknown user after the migration.
In this mode, Fly will not keep the language of the source team site to the destination. The language of the destination team site will be the same as the destination tenant.
Additionally, Fly will automatically complete the destination Teams by default, which are newly created during the full migration job.
If the source channels are standard channels, conversations will be imported to the destination Teams using the Microsoft Graph API. The original senders and send time of source messages can be kept to the destination.
Microsoft may require you to pay additional fees based on the amount of data imported in the future. For more information, refer to Import third-party platform messages to Teams using Microsoft Graph.
If the source channels are private channels or shared channels, the original senders and send time of source messages cannot be kept to the destination. Fly will display the destination service account and the migration time respectively as the sender and the send time of the migrated messages in the destination. The original sender and send time of source messages will be migrated as the message content.
However, in subsequent incremental migration jobs, the Advanced mode will be switched to the Classic mode. The original senders and send time of newly added messages in source standard channels cannot be kept to the destination, either. Same as private/shared channels, the destination service account and the migration time will also be respectively displayed as the sender and the send time of those migrated messages.
If you want to keep original senders and send time for all messages in source standard channels, you can disable the auto complete by adding the AutoCompleteTeams=false customized feature in the migration policy. After all messages are migrated to destination Teams, you can manually complete the destination Teams by running the Complete migration job from the Post-migration action group. In this case, the private channels, shared channels, all membership, and Shifts data can only be migrated in the Complete migration job.
Classic mode – Condition: The destination connection does not have an app profile or the destination Teams already exist.
In this mode, the destination service account and the migration time will be respectively displayed as the sender and the send time of the migrated channel conversation messages in the destination. The original sender and send time of source conversation messages will be migrated as the message content.
Additionally, if the destination Teams are newly created during the migration, Fly will keep the language of the source team site to the destination.
Before performing Microsoft Teams migrations in Fly, follow the instructions below to prepare for the migration:
Fly does not automatically provision new users in Microsoft 365. Make sure the destination users already exist before the migration. When assigning the Team Owner role to destination users, the users must have Microsoft 365 licenses. We recommend that you assign Microsoft 365 licenses to all destination users for easy use.
There are different ways to add new Microsoft 365 users:
Fly can remove source sensitivity labels and apply destination ones to your files/emails/Teams with a corresponding option selected in the migration policy. Before using this feature, make sure to review the necessary requirements and additional information. Refer to Information about Managing Sensitivity Labels for details.
Destination users will receive notifications when they are added to destination Teams or source objects are migrated to destination users. Refer to Understand when destination users will receive notifications for detailed situations and how to disable notifications if necessary.