Perform Microsoft Teams Migrations

Microsoft 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 .

Before getting started, please read the following sections.

Microsoft Graph Beta APIs Used by Microsoft Teams Migration

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 TypeAPI MethodNoteFunction in Fly
Microsoft GraphGET /teams/{team-id}/channels/{channel-id}/messagesThe 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 GraphPOST {teamId}/channels/{channelId}/messagesThe 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 GraphPOST {teamId}/channels/{channelId}/messages/{messageId}/repliesThe 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 GraphGET {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 GraphPATCH {teamId}/channels/{channelId}The API method is not available in Microsoft Graph API 1.0 version.Update channel settings in the destination.
Microsoft GraphGET /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 GraphGET /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 GraphPOST {teamId}/channels/{channelId}/membersThe 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 GraphGET {teamid}/channels/{channelid}/membersThe 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.

Understand Migrations before Getting Started

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. - > ***Note**: 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. > ***Note**: Microsoft may require you to pay additional fees based on the amount of data imported in the future. For more information, refer to . - 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.