Google Workspace to Microsoft 365 Migration

In this guide, we walk through the complete process of migrating mailboxes from Google Workspace to Microsoft 365. You’ll learn what to prepare, how to avoid common pitfalls, and how to execute a smooth, disruption-free migration.

What to Prepare

Understand prerequisites, domain strategy, permissions, and coexistence requirements before migration begins.

How the Migration Works

Follow a step-by-step lab walkthrough using Microsoft’s built-in Google Workspace migration tools.

Common Issues & Fixes

Learn how to troubleshoot API errors, mail flow issues, and large mailbox migrations.

Table of Contents

Jump directly to any section of this migration guide.

Watch Video

Join us on our YouTube channel for an in-depth video on Google Workspace to Microsoft 365 Migration, where we explore every step of the migration process, tackle common challenges, and share best strategies for a seamless switch.

▶ Watch the full migration video

What Can Be Migrated

You can migrate the following functionalities from Google Workspace to Microsoft 365 or Office 365:

Emails
Calendars
Contacts

Prerequisites for Google Workspace to Office 365 Migration

To ensure a secure migration, certain prerequisites must be met in both Google Workspace and Microsoft 365.

This migration is performed in batches. Therefore, users who are already migrated and users who are not yet migrated must be able to exchange emails without disruption.

Example scenario:
If you have three user accounts in Google Workspace and one user is migrated to Microsoft 365, the remaining users must still be able to send emails to the migrated user.
Mail flow between Google Workspace and Microsoft 365 during migration

Understanding Routing Domains

In an Exchange Hybrid deployment, a Routing Domain (domain.mail.onmicrosoft.com) is used to route emails from on-premises to Microsoft 365.

To route emails from Microsoft 365 back to on-premises, the External Email Address attribute is used.

In the same way, when migrating from Google Workspace to Microsoft 365, we need a routing domain to ensure emails flow correctly between migrated and non-migrated users.

Understanding routing domains during Google Workspace to Microsoft 365 migration

Core Prerequisites for Google Workspace Migration

1. Create a Subdomain in Google Workspace Create a subdomain for a domain that is already verified in Google Workspace.

For example, if contoso.com is your primary domain, create a subdomain such as 365mail.contoso.com.

This subdomain enables uninterrupted email communication between users who are migrated to Microsoft 365 and users who are not yet migrated. When created, it is automatically added to all user accounts as a secondary email address.
2. Add the Subdomain to Microsoft 365 Add and verify the same subdomain in Microsoft 365. The purpose of this configuration will become clear in the next steps of the migration process.
3. Create an External Email Address Subdomain Create an additional subdomain in Google Workspace. This subdomain will be used as the External Email Address domain, allowing migrated users to send emails to users who are not yet migrated.
4. Create Mail Users in Exchange Admin Center Create mail users in Exchange Admin Center for the Google Workspace user accounts that you plan to migrate. Assign the routing domain to each mail user.

Mail Flow During Migration

In addition to the routing domain, each mail user in Exchange Online must have an External Email Address assigned.

This external email address uses the Google Workspace external email address subdomain and is responsible for routing emails from migrated users to users who are not yet migrated.

If you have a small number of users, mail users can be created manually. For large migrations, a script can be used to import mail users from a CSV file.

Important:
In Exchange Hybrid deployments, when a migrated user sends an email to an on-premises user, the message is routed using the External Email Address.

The External Email Address indicates that the recipient is not part of the Microsoft 365 organization and specifies where the email should be delivered.

The same logic applies here — by configuring the external email address on mail users in Exchange Online, emails are correctly routed back to Google Workspace.

Additional Prerequisites

5. Assign Permissions to Google Workspace Admin Account The Google Workspace admin account used for migration must have the following permissions:

• Project Creator
• Create Service Accounts
6. Enable Required Google Workspace APIs Enable the following APIs to allow Microsoft 365 to access Google Workspace data during migration:

• Gmail API
• Google Calendar API
• Contacts API
• People API

Ready to Start the Migration

With all prerequisites completed, we are now ready to move into the lab and begin migrating mailboxes from Google Workspace to Microsoft 365.

How to Migrate Google Workspace to Office 365

Let’s move to the lab and walk through the migration process step by step. We will meet all prerequisites and then migrate mailboxes from Google Workspace to Microsoft 365.

Step 1
Create a Subdomain in Google Workspace

We start by creating a subdomain in Google Workspace. Navigate to Account → Domains and click Manage Domains.

Google Workspace domain management screen
Step 2
Add the New Domain

Click Add a domain to begin creating the subdomain that will be used during the migration process.

Add a domain option in Google Workspace
Step 3
Configure the Subdomain and Verify It

Type the subdomain name and select User alias domain. This adds the subdomain to all users as a secondary email address. Click Add domain and start the verification process.

Subdomain configuration and verification in Google Workspace
Note:
You don’t need to verify ownership of this subdomain because the parent domain is already verified in Google Workspace.

This subdomain will be used to route emails from Google Workspace to Microsoft 365 during the migration.

In this example, contoso.com is already verified in Google Workspace and used by all users. Its MX record points to Google Workspace, allowing users to receive emails from the internet.
Step 4
Add the Subdomain to Microsoft 365

Go to Microsoft 365 Admin Center → Settings → Domains, click Add domain, and enter the subdomain name 365mail.contoso.com.

Click Use this domain. This subdomain will be used as a secondary email address for mail users during the migration.

Adding subdomain in Microsoft 365 Admin Center
Important:
The parent domain contoso.com is already verified in the Microsoft 365 tenant because it will be used for migrated users.

The MX record for this domain is still pointing to Google Workspace. Make sure you only verify the domain in Microsoft 365 and do not add or change MX records at this stage.
Step 5
Create a Subdomain for External Email Routing

Go back to Google Workspace and create another subdomain. This subdomain will be used to route emails from Microsoft 365 to Google Workspace.

In the Google Admin dashboard, navigate to Account → Domains → Manage Domains → Add a domain. Enter gws.contoso.com, select User alias domain, then click Add domain and start verification.

Creating external routing subdomain in Google Workspace
Step 6
Create Mail Users in Exchange Online

The next step is to create mail users in Exchange Online for the user accounts that will be migrated from Google Workspace.

To review user accounts in Google Workspace, go to Directory → Users.

In Microsoft 365, navigate to Exchange Admin Center → Recipients → Contacts, then click Add a mail user.

Mail user configuration:
  • Enter First Name, Last Name, and Display Name
  • External Email Address: username@gsuite.contoso.com (same username as in Google Workspace)
  • Enter Alias and UserID
  • UserID domain: contoso.com (you may use a different domain based on business requirements)
  • Set a password and click Create
Step 7
Assign Secondary Email Addresses to Mail Users

Now we need to assign a secondary email address to the mail users created in Exchange Online. This address will be used to receive emails from Google Workspace.

In the Exchange Admin Center, go to Mailboxes, open the mailbox properties of a mail user, and under Email addresses click Manage email address types.

Steps to add the secondary email address:
  • Click + and select SMTP
  • Type the initials or username
  • Select the domain 365mail.contoso.com
  • This email address will be used to receive emails from Google Workspace
  • Click Save

Repeat this process for all mail users. If you have a large number of mail users, you can use a PowerShell script instead of configuring them one by one.

Step 8
Assign Permissions to the Google Workspace Admin Account

The next step is to assign required permissions to the Google Workspace Admin account.

Open a new browser tab and go to:
https://console.cloud.google.com/cloud-resource-manager

Create a new project:
  • Click Create Project
  • Enter a project name
  • Select your domain under Organization
  • Click Create
Assign permissions:
  • Select your Organization name or domain
  • On the right side, under Permissions, click Add principal
  • Under Add Principal, enter the Google Workspace admin email address
  • Under Assign Roles, select Project Creator
  • Click Add another role
  • Search for Create service accounts
  • Click Save
Assigning permissions to Google Workspace admin in Google Cloud console
Note:
Once these permissions are assigned, you might need to wait up to 24 hours for the changes to replicate.
Step 9
Enable Required APIs

The next step is to enable the required APIs. On the same page, click the three-line menu, then go to APIs & Services → Library.

Enable APIs and Services in Google Cloud Console
Prerequisites Completed
With this step completed, all required prerequisites are now in place, and you are ready to start the Google Workspace to Office 365 migration process.
Step 10
Create a Migration Batch in Exchange Admin Center

Now we will start the actual migration process. Go to the Exchange Admin Center, navigate to Migration, and click Add migration batch.

Migration batch configuration:
  • Provide a name for the migration batch
  • Select Migration to Exchange Online
  • Select migration type: Google Workspace

The migration batch wizard will validate whether all prerequisites are met. There are two ways to validate the prerequisites: Automatic or Manual.

Creating a Google Workspace migration batch in Exchange Admin Center
Step 11
Configure Google Workspace Access and Migration Endpoint

If you select Manual, the wizard will ask you to complete all prerequisite checks manually. If all prerequisites are already met, you can click Start under Automate the configuration of your Google Workspace for migration.

Automated configuration steps:
  • Download the JSON file when prompted (this will be used later)
  • Once all checks are completed, copy the Client ID
  • Click the link next to API access
  • Paste the Client ID
  • Go back to the Exchange Admin Center and copy the Scopes
  • Return to the Google page and paste the scopes under OAuth scopes
  • Click Authorize

After authorization is completed, go back to the Exchange Admin Center and click Next.

Create the migration endpoint:
  • Click Create a new migration endpoint
  • Click Next
  • Enter a name for the Migration Endpoint
  • Click Next
  • Under Email Address, enter the Google Workspace admin account on which Project Creator and Create Service Accounts permissions were assigned
  • Import the JSON file downloaded earlier
  • Click Next
Step 12
Add Users, Complete Migration, and Switch MX Records

Under Add users, add the mail users that you want to migrate to Exchange Online.

CSV file format:
  • Create a CSV file with a column named EmailAddress
  • Add the email addresses of the mail users in the rows
  • Save the file in CSV format

Under Target Delivery Domain, enter the Microsoft 365 subdomain: 365mail.contoso.com.

Click Next, then click Save to start the migration batch.

Once the migration is completed, go to Microsoft 365 Admin Center → Active Users and assign licenses to the migrated users. Make sure the assigned licenses include Exchange Online.

After the Google Workspace to Office 365 migration is completed for all users, update the MX record to point to the Microsoft 365 tenant.

Migration Completed
At this stage, mailboxes are fully migrated, users are licensed, and email flow is now handled by Microsoft 365.

Common Issues & Troubleshooting

Below are the most common issues observed during Google Workspace to Office 365 migrations and the recommended actions to resolve them.

API Permission Errors (403 / Unauthorized)

Cause:
  • Required APIs are not enabled
  • Domain-wide delegation is missing
  • Service account permissions are blocked
Fix:
  • Enable all required APIs
  • Re-authorize OAuth scopes
  • Verify organization policy settings

Mail Flow Issues During Migration

Check:
  • Routing domains exist and are Active
  • Automatic forwarding is enabled in Exchange
  • Mail users are properly configured

Large Mailbox Migration

Use Microsoft diagnostic:
  • Increasing Mailbox Quotas for Google Workspace Migration
Requirements:
  • Archive mailbox enabled
  • Eligible Exchange license assigned
  • Auto-expanding archive enabled
  • Do not apply retention policies during migration

Best Practices

Following these best practices helps ensure a smooth and predictable Google Workspace to Microsoft 365 migration.

  • Disable MRM and archive policies until migration completes
  • Avoid assigning licenses too early
  • Always use routing subdomains
  • Validate mail flow before and during migration
  • Monitor the Data Consistency Score

Conclusion

A Google Workspace to Microsoft 365 migration is highly achievable with the right preparation. By using routing domains, assigning proper permissions, and leveraging Microsoft’s automated migration tools, organizations can migrate mail, calendar, and contacts with minimal downtime and no mail loss.

Leave a Comment

Your email address will not be published. Required fields are marked *