Home > Microsoft Teams To Google Chat Spaces Migration Process
Download this articleThe sections below contain the general migration process for Microsoft Teams to Google Chat Spaces Migration. The details outlined in this document can serve as general guidelines with some minor adjustments.
More steps may be needed, and some steps included in the process may be optional according to your migration requirements.
Before the migration, you need to identify what object types you want to migrate. See the Supported and Unsupported List.
To connect Fly to your Teams, create a service account, an app profile or a delegated app profile with the required permissions for the source connection.
To connect Fly to your spaces, create an app profile with the required permissions for the destination connection.
Before you migrate from Microsoft Teams, you can run a tenant discovery of Microsoft Teams to scan and report the object count, object type, object size, and other details. According to the discovery reports, you can better understand your source environment and plan for your migrations. Refer to the user guide for Tenant Discovery for details
User mappings are required when executing migrations. Make sure users of the following data are created in the destination tenant before the migration.
Team Membership
Conversation sent by
Permission
Other data that needs users
External users cannot be added directly to destination spaces during the migration. Make sure the external users have been added to the contacts before the migration.
Fly can create spaces in the destination during the migration if the destination spaces do not exist.
If channel mapping is enabled, the destination space will be created using the name specified in the channel mapping.
If channel mapping is disabled, the destination space will be named in the format of [Team email address prefix]_**[Channel name]. For example, the source Team email address is Source@sourcecontoso.com and channel name is General, the destination space name will be Source_General.
Refer to Create a Connection to connect Fly to your source and destination. The source connection including both the app profile and service account is recommended. The destination connection using the Google custom app profile is recommended.
Configure Teams to Spaces mapping files and user mapping files:
Examples in the Teams to Spaces mapping file

Examples in the user mapping file

A Microsoft Teams to Google Chat Spaces migration policy allows you to define the migration scope of Team objects, the destination format of channel conversations, the conflict resolutions, whether to replace source user with destination users, how to map users, and how to manage the sensitivity labels of files for Microsoft Teams to Google Chat Spaces migrations. Refer to Create a Migration Policy for details.
The Automatically complete newly created spaces option helps you to auto complete the destination new spaces after the full/incremental migration job. By default, the option will not be selected. After all messages are migrated to destination spaces, you can manually complete destination spaces by running a complete migration job. If you want to enable the auto complete, you can select the option in the migration policy.
In Microsoft Teams to Google Spaces migrations, the job speed depends on the size of SharePoint Team sites and the number of conversations.
Conversation Migration Throughput:
Generally, a reasonable conversation migration speed is 3600 messages/hour/mapping.
The number of mappings that run in parallel is automatically allocated based on your purchased subscription. The more subscriptions you purchase, the more mappings you can run in parallel.
There are many factors which may affect migration performance:
The above throughput number is for the full migration. Generally, it may be lower for the incremental migration since Fly needs to spend quite some time checking the migrated items’ status for the incremental migration.
The above results are only ideal values after many tests. The migration speeds of different tenants may be different. We recommend that you estimate the daily throughput in the same way as the results of the pilot job.
We recommend you perform a pilot run for the following purposes:
Get familiar with the Fly interface and understand the whole migration process.
Discover and resolve any potential issues before production migration.
Understand the throttling situation in case content size is large, and then try to resolve with the destination.
Refer to the following sections to execute the migration based on the migration modes.
Classic mode – The destination spaces already exist.
Advanced mode – The destination spaces will be created during the migration but not completed.
Refer to the following sections to execute the migration with the classic mode:
To configure projects and mappings, refer to Create a Project and Create Migration Mappings for details. Use the mapping file of data to be migrated to configure the migration project.
Before running the job, we recommend you verify the mappings to ensure that the mappings are available for migration. Refer to Pre-analyze Mappings for details.
Then you can run a full migration job to migrate the objects based on your configured migration policy. Refer to Run Migrations to Migrate Objects for details.
Some issues may occur during a full migration job. Run an incremental migration job to handle new, updated, and failed data. Refer to Run Migrations to Migrate Objects about how to perform regular incremental migrations.
Notify end users of the migration schedule. Publish a message in each source Team to inform end users that they can run incremental jobs before final validation.
Notify all users and make sure the source Teams do not have any new/modified objects. Then perform the final incremental migration job.
After you complete your migrations but the source membership is not included in the migrations, to make the destination Team available for users, you can run a Migrate membership job to only migrate the source membership, including owners, members, and guests. Refer to the user guide for details.
After your migration jobs are finished, some attachment URLs may fail to be replaced with the corresponding destination Google Drive URLs, rendering them inaccessible to destination users. To ensure accessibility after the migration, you can run a Replace attachment URLs job.
By default, only URLs of attachments within the current Team sites or channel sites can be replaced.
If your source Teams contain URLs of attachments from other Teams or OneDrive, you can generate URL mapping report to get the inaccessible external attachments and configure URL mappings for them. Then, you can select the Replace external attachment URLs checkbox and run the Replace attachment URLs job to replace their URLs.
Check the following items during the validation period:
Number of messages
Number of files
Format of conversations
This step is needed only if you have separated the mappings into multiple waves.
During the final validation, you should validate members of the destination spaces.
Refer to the following sections to execute the migration with the advanced mode:
To configure projects and mappings, refer to Create a Project and Create Migration Mappings for details. Use the mapping file of data to be migrated to configure the migration project.
Before running the job, we recommend you verify the mappings to ensure that the mappings are available for migration. Refer to Pre-analyze Mappings for details.
Then you can run a full migration job to migrate the objects based on your configured migration policy. Refer to Run Migrations to Migrate Objects for details.
Some issues may occur during a full migration job. Run an incremental migration job to handle new, updated, and failed data. Refer to Run Migrations to Migrate Objects about how to perform regular incremental migrations.
Notify end users of the migration schedule. Publish a message in each source Team to inform end users that they can run incremental jobs before final validation.
Notify all users and make sure the source Teams do not have any new/modified objects. Then perform the final incremental migration job.
Run a complete migration job to make the destination spaces available for end users.
After you complete your migrations but the source membership is not included in the migrations, to make the destination space available for users, you can run a Migrate membership job to only migrate the source membership, including owners, members, and guests. Refer to the user guide for details.
After your migration jobs are finished, some attachment URLs may fail to be replaced with the corresponding destination Google Drive URLs, rendering them inaccessible to destination users. To ensure accessibility after the migration, you can run a Replace attachment URLs job.
By default, only URLs of attachments within the current Team sites or channel sites can be replaced.
If your source Teams contain URLs of attachments from other Teams or OneDrive, you can generate URL mapping report to get the inaccessible external attachments and configure URL mappings for them. Then, you can select the Replace external attachment URLs checkbox and run the Replace attachment URLs job to replace their URLs.
If there are new or modified objects in the source after the complete job, you can perform the incremental migrations to make sure all source changes are migrated to the destination.
Check the following items during the validation period:
Number of messages
Number of files
Format of conversations
This step is needed only if you have separated the mappings into multiple waves.
During the final validation, you should validate members of the destination spaces.