Home > Google Chat to Microsoft Teams Chat Migration Process
Download this articleThe sections below contain the general migration process for Google Chat to Microsoft Teams Chat 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 Google Chat, create an app profile with the required permissions in AvePoint Online Services. Refer to Permissions for Source Google Chats to check the required permissions.
To connect Fly to your destination Teams Chat, create a delegated app profile and an app profile with the required permissions. Refer to Permissions for Destination Teams Chats for details.
Add new Microsoft 365 users or synchronize users from local Active Directory to Microsoft 365. Refer to the user guide about how to prepare users.
User mappings are required when executing migrations. Make sure users for the following data are created in the destination tenant before migration:
Assign Microsoft Teams and SharePoint Online licenses to destination chat users. Also assign Microsoft Teams licenses to the destination service account or the consent user of delegated app profile before migration.
Source chats will be converted to group chats due to API limitations. A placeholder account is required to create a group chat and must meet the following criteria:
Review destination retention settings to ensure they are compatible with the source. While policies may vary between platforms, confirm the destination does not automatically delete data sooner than intended. Adjust destination configuration if needed to prevent unintended data loss.
Refer to Create a Connection to connect to your source Google Chat and destination Teams Chat.
Pay attention to the following information:
Based on the situations above, we recommend that you also provide an app profile in the destination connection. Fly can add the service account to those destination chats and migrate source newly added or edited messages to those destination chats.
Google Chat migration processes messages and files in parallel, and job speed depends on message count and file size.
The number of mappings that can run in parallel is automatically allocated based on your purchased subscription. The more user seats you purchase, the more mappings you can run within a project.
As throttling varies across Google Chat and Microsoft 365 tenants, these speeds are for reference only.
Generally, we recommend you keep using source chats during the migration process until all data is migrated to the destination.
Refer to Create User Mappings to prepare a user mapping file.
Make sure user mappings between source and destination chat users are correct. This ensures destination users can view migrated chat messages and continue chatting in the destination.
A Google Chat migration policy allows you to configure conflict resolution, filter policy, user mapping, and other options for Google Chat migrations. Refer to Create a Migration Policy for details.
Destination users may receive notifications in the following situations:
The chat messages will be marked as unread after being migrated to the destination. If the destination chat users have configured their Chat message notifications setting as Show in banner, they will receive notifications about the messages while using the Teams app.
If a user is mentioned in a message in the source chat, the destination user of the mentioned user will receive a notification during the migration.
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 potential issues before production migration.
Understand the throttling situation in case content size is large, and then try to resolve with source and destination.
Google Workspace enforces throttling limits. You can request a quota increase at https://console.cloud.google.com/iam-admin/quotas, but approvals are not guaranteed for offboarding tenants.
Fly uses automatic retries for temporary blocks. In cases of severe or persistent throttling, retries alone may not resolve the issue. To proceed under strict Google limits, reduce migration concurrency (for example, migrate fewer accounts simultaneously) to stay within permitted thresholds.
| Service | Quota Name |
|---|---|
| Admin SDK API | Queries per minute per user |
| Google Drive API | Queries per minute |
| Google Drive API | Queries per minute per user |
| Google Chat API | Attachment reads per minute |
| Google Chat API | Membership reads per minute |
| Google Chat API | Message reads per minute |
| Google Chat API | Space reads per minute |
Refer to the following sections to execute the migration.
To configure projects and mappings, refer to Create a Project and Create Migration Mappings in the User Guide.
Before running the job, verify mappings to ensure they are available for migration. Refer to Pre-analyze Mappings for details.
Then run a full migration job to migrate 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 incremental migration jobs to handle new, updated, and failed data. Refer to Run Migrations to Migrate Objects for details.
Check the mapping report. If a mapping fails or finishes with exceptions, review the error code and comment in the Migration errors section. You can click an error code to view details and recommendations in the Troubleshooting Guide. You can also view the migration summary of your projects within a specific time range in Report center.
Validate migrated data in the destination tenant:
Perform the final incremental migration job to ensure all source data is migrated to the destination.
After migrations are complete, you can delete the service account (or consent user of delegated app profile) and placeholder account from destination Microsoft Entra ID. If you do not want to delete those users, you can use the Chat Migration Assist Tool to remove the service account (or consent user) and placeholder account from destination chats. Refer to Assist Tool for Microsoft Teams Chat Migration for details.
Messages migrated to destination chat users are marked as unread by default. After all migrations are finished, destination chat users can manually mark messages as read.