Home > Google Chat to Microsoft Teams Chat Migration Process

Download this article

Google Chat to Microsoft Teams Chat Migration Process

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

Preparation

Before the migration, you need to identify what object types you want to migrate. See the Supported and Unsupported List.

1. Create an app profile with required permissions for Google Chat

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.

2. Create delegated app profile and app profile with required permissions for destination connection

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.

3. Create users in destination tenant

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:

  • Membership
  • Conversation sent by
  • File metadata (Modified By and Created By)
  • Permission
  • Other data that needs users

4. Assign licenses for users

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.

5. Configure a placeholder account in the destination tenant

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:

  • The account must be an active user in the destination tenant and does not need any licenses or admin roles.
  • The account cannot be the same as the destination service account, the consent user of destination delegated app profile, or a destination chat user in the migration.

6. Check destination retention policies

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.

7. Create source and destination connections

Refer to Create a Connection to connect to your source Google Chat and destination Teams Chat.

Pay attention to the following information:

  • If you only use the delegated app profile or service account in the destination connection and remove the consent user or service account from destination chats after migration, the consent user or service account cannot be re-added to those chats in the next incremental migration job. Therefore, source newly added or edited messages cannot be migrated into those destination chats.
  • If you only use the delegated app profile or service account in the destination connection and change the consent user or service account after migration, the new consent user or service account cannot be added to already migrated destination chats in the next incremental migration job because the new account has no permission to those chats. Therefore, source newly added or edited messages cannot be migrated into those destination chats.

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.

  • If you only use the delegated app profile or service account in the destination connection, the consent user or service account will be shown as the creator of destination chats. If you also use an app profile in the destination connection, the app name will be shown as the creator of destination chats.

8. Migration throughput

Google Chat migration processes messages and files in parallel, and job speed depends on message count and file size.

  • Message throughput: with the above setup, the average migration rate of chat messages ranges from 1000/hour/mapping to 4000/hour/mapping.
  • File throughput: with the above setup, the average migration rate is 5 GB/hour/mapping.

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.

NOTE

As throttling varies across Google Chat and Microsoft 365 tenants, these speeds are for reference only.

9. Project setup

Generally, we recommend you keep using source chats during the migration process until all data is migrated to the destination.

10. Prepare the user mapping file

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.

11. Design the migration policy

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.

12. Understand when users will receive notifications

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.

13. Plan a pilot run

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.

14. Throttling limits in Google Chat migration

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.

ServiceQuota Name
Admin SDK APIQueries per minute per user
Google Drive APIQueries per minute
Google Drive APIQueries per minute per user
Google Chat APIAttachment reads per minute
Google Chat APIMembership reads per minute
Google Chat APIMessage reads per minute
Google Chat APISpace reads per minute

Migration Execution

Refer to the following sections to execute the migration.

1. Configure projects and mappings in Fly

To configure projects and mappings, refer to Create a Project and Create Migration Mappings in the User Guide.

2. Perform regular full migrations

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.

3. Perform regular incremental migrations

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.

4. Validate migration results

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

  2. Validate migrated data in the destination tenant:

    • Chat messages and members
    • File attachment links in chat messages and OneDrive
    • HTML files containing archived chat messages in OneDrive
    • New message posting in destination chats
    • Teams chat functions can work normally, such as posting messages, replying to messages, adding file attachments, and creating new chats.
    • Etc.

5. Perform the final incremental migration

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.

7. Mark migrated messages as read

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.