Migrating from Microsoft 365 (Exchange Online) to Google Workspace
The Challenge: Microsoft’s “Throttling Policy” slows down data extraction. Simple IMAP migration loses Calendar/Contacts. Microsoft to Google Workspace migration with two methods old and new.
The “Pro” Method: New Data Migration Service (OAuth based) : Microsoft to Google Workspace
Note: This replaces the old tool that required creating a complex Service Account in Azure.
-
Authorize Google in Microsoft 365:
-
In Google Admin > Data Migration > Set Up New Migration.
-
Select Source: Microsoft 365.
-
Google will prompt you to “Authorize”. This opens a Microsoft login window.
-
Requirement: You must sign in with a Global Admin account for the source Microsoft tenant.
-
Permissions: Accept the permissions request (Read Mail, Read Contacts, Read Calendar).
-
-
Configure Scopes:
-
Email: Migrates full history.
-
Calendar: Migrates events. Warning: Recurring meetings with exceptions often break.
-
Contacts: Migrates personal contacts (not the Global Address List).
-
-
The “Exchange Throttling” Fix:
-
Microsoft EWS (Exchange Web Services) will throttle Google after about 5-10GB of transfer.
-
Solution: In the Microsoft 365 Admin Center, go to Help & Support > type “EWS Throttling” > Run the self-service diagnostic > Select “Update” to temporarily loosen throttling for 30-90 days during migration. This boosts speed by 300%.
-
-
Start Migration:
-
Select “Auto-start” for users.
-
Google will effectively pull data continuously.
-
MX Records For Email Delivery
Only perform this once you have migrated 90% of the data (e.g., mail from previous years).
-
Delete Old Records: Remove all existing MX records (Zoho/cPanel/Microsoft).
-
Add Google MX Records:
-
1 ASPMX.L.GOOGLE.COM -
5 ALT1.ASPMX.L.GOOGLE.COM -
5 ALT2.ASPMX.L.GOOGLE.COM -
10 ALT3.ASPMX.L.GOOGLE.COM -
10 ALT4.ASPMX.L.GOOGLE.COM
-
-
SPF Flattening:
-
If you had
v=spf1 include:zoho.in ~all, change it to: -
v=spf1 include:_spf.google.com ~all -
Do not keep both unless you are running a split delivery (hybrid) system.
-
Post-Migration Process
After changing MX records, emails will start landing in Google. However, emails sent during the DNS propagation period (last 24-48 hours) might have landed in the old mailbox.
-
Run Delta Migration:
-
Go back to Google Admin > Data Migration.
-
Do NOT stop the migration.
-
Select the users and choose “Run Delta” or “Retry Failures”.
-
Google will scan the old inbox one last time and pull only the new items that arrived since the first pass.
-
Troubleshooting “Stuck” Migrations
| Error Code | Meaning | Technical Fix |
| Authentication Failed | Wrong password or MFA on. | For Zoho/cPanel: Check password. For M365: Re-authorise the OAuth token in Google Admin. |
| Connection Timeout | The source server is slow. | cPanel specific: Whitelist Google’s IP ranges in your cPanel server’s firewall (CSF/LFD). |
| 18000 / 18002 | Internal Google Error. | Usually transient. Pause the migration for that specific user, wait 15 mins, and “Resume”. |
| Mailbox Full | The destination has no space. | Temporarily assign a higher license (e.g., Business Standard) to the user to unlock 2TB storage. |

Microsoft 365 to Google Workspace Migration (New Method)
This is the Master Migration Protocol for moving from Microsoft 365 (Exchange Online) to Google Workspace using the “New Data Migration Service” (DMS).
This method replaces the old “GWMME” (local server tool) and the basic IMAP fetch. It utilises a direct Cloud-to-Cloud connection via the Microsoft Graph API and EWS, authorised securely via OAuth.
Microsoft to Google Workspace Step1
Unlike older methods that required you to manually create Azure Apps and copy Client IDs, the new DMS automates the authorization.
-
Google Admin Preparation:
-
Log into Google Admin Console > Data > Data import & export > Data migration.
-
Look for the section labeled “Data Migration (New)” or “Exchange Online”.
-
Note: If you don’t see “New”, you may need to check “Data Migration” > “Set up new migration” and select “Microsoft 365” from the source dropdown.
-
-
Authorize Tenant Access:
-
Click Connect.
-
You will be redirected to a Microsoft 365 Login page.
-
Crucial: You must sign in with a Global Administrator account for the source Microsoft 365 tenant.
-
Accept the permissions request. This grants Google’s migration service specific “Read” scopes (Mail.Read, Calendar.Read, Contacts.Read) to your M365 tenant.
-
-
The “Throttling” Pre-Emptive Strike (Highly Recommended):
-
Even with the new API, Microsoft often throttles large data exports.
-
Action: Log into the Microsoft 365 Admin Center > Help & Support (bottom right).
-
Type: “EWS Throttling”.
-
Run the self-service diagnostic.
-
If it detects that throttling is enabled, choose the option to “Update” or “Temporarily Relax Throttling” for 30–90 days.
-
Impact: This can increase migration speed from ~0.5 GB/hour/user to ~2 GB/hour/user.
-
Microsoft to Google Workspace Step2
-
Select Data Types:
-
Email: Migrates messages, folders (converted to Labels), and attachments.
-
Calendar: Migrates primary calendars. Warning: Shared calendar permissions often need manual re-sharing after migration.
-
Contacts: Migrates personal contacts.
-
-
Identity Mapping (The CSV File):
-
You need a CSV file to tell Google which source email belongs to which destination email.
-
Format:
Code snippet
Source Email,Google Workspace Email john.doe@microsoft-domain.com,john@google-domain.com jane.smith@microsoft-domain.com,jane@google-domain.com -
Upload this CSV in the “Add Users” or “Upload CSV” step of the DMS setup.
-
Microsoft to Google Workspace Step3
-
Start Migration:
-
Once the CSV is processed, click Start.
-
Status Indicators:
-
Initializing: Google is scanning the source mailbox structure.
-
In Progress: Data is flowing.
-
Sleep/Idle: Often happens if Microsoft imposes a temporary rate limit. Google will auto-retry.
-
-
-
The “Cutover” Weekend:
-
Friday Evening: Lower TTL on MX records to 5 minutes (as per the standard protocol).
-
Change MX Records: Point them to Google (
ASPMX.L.GOOGLE.COM, etc.). -
Sunday Night (The Delta Pass):
-
Go back to the migration job in Google Admin.
-
Do NOT stop or delete the migration.
-
Select all users and choose “Run Delta” or “Retry/Resume”.
-
What this does: It compares the source M365 mailbox with the Google mailbox and copies only the emails delivered between the start of the migration and the MX record change.
-
-
Technical Limitations
| Feature | Limitation / Behavior | Workaround |
| Outlook Categories | Do not migrate labels automatically in all scenarios. | Users may need to re-categorize. |
| Calendar Colors | Color coding on M365 events is typically lost. | No workaround; native API limitation. |
| Recurring Meetings | Complex recurrences (e.g., “3rd Tuesday of every month except July”) may break or split into single events. | Check “Calendar” error logs specifically. |
| OneDrive Data | NOT included in DMS. | Use Google Drive Migration Tool (separate utility) or rclone for advanced users. |




