Migrating Data from Office 365 to G Suite
Often time clients needs me to do non-WordPress work for their business. Usually the work is related to DNS changes, CloudFlare setup, e-mail configuration, and other system admin tasks. While not my main area of focus, it’s something I can usually do easily and it’s nice to provide my clients a single point of contact for their web site needs. Recently, a client wanted to move their e-mail from their Office 365 account to Google G Suite. I’ve actually become a big proponent of G suite lately: their pricing model is simple and fair, it provides the familiar services of Gmail and Google Drive, and it’s really simply to manage.
In this post, I’ll discuss to steps required for migrating data from Office 365 to G Suite. After some trial and error, it turned out to not be as difficult as I expected. Hopefully this will save you some time and help clear up some of the confusion that I initially had.
This article focuses solely on migrating data from Office 365 to G suite, not the actual setup of G suite. Including the full set of steps of configuring G Suite, including DNS changes and account creation, was a little more information that I wanted to capture here. Plus, that part really is the simplest. The data migration piece is where I struggled, and thus what I will talk about here.
Setting Up Office 365 Roles
This is by far the most important part, the piece that caused me the most hassle. If you don’t do this step, you will not get very far in the migration. In fact you’ll get an error message from G Suite along the lines:
Exchange impersonation error
When G Suite tries to connect to you Office 365 account, you’ll provide it with your e-mail address and password, just as if you were logging in to the account. However, G Suite will be using the account in such a way that it requires additional roles that are not granted by default. These roles are:
These may not mean a lot to us humans, but without the roles being assigned to your account, G Suite will not be able to connect to Office 365 and migrate your data.
So how do you assign these roles? The key is that they are located under Exchange settings, not the normal account or permission settings in Office 365. Start by logging into your Office 365 account, and on the Apps page (top left) click Security & Compliance.
On the Security & Compliance page, you’ll see a lot of text and options, but what you care about is a very unassuming link that says “Go to Exchange admin center”. This will take you to a new page where you can actually assign the 2 roles above. Don’t even bother trying to assign the roles elsewhere in the Office 365 panel; you won’t find them anywhere else but the link above.
On the new page, you’ll create a new role group and assign the 2 required migration roles to it, and then assign the role group to your account. I would name the role group something meaningful, like GSuiteMigration. Under Roles, click the + icon and find the 2 roles, ApplicationImpersonation and ViewOnly-Configuration, and add each one. Likewise, under Users, click the + icon and add your account. Note that regardless of how many accounts you plan to migrate, you only need to add this new role group to the account that will be used by G Suite to connect to Office 365. Below is a sample screen shot of creating the new role group.
That’s it for the Office 365 portion of migration. I would like to reiterate how important it is to do this step before moving on. If you don’t, you’ll waste a lot of time in G Suite later.
Migrating Data from Office 365 to G Suite
Once you have done all the requisite setup of your G Suite account (modified DNS, created G Suite user(s), modified the Office roles above, etc) you can use these steps to migrate your data using the G Suite Data Migration tool. Start by logging into your G Suite account and from the main menu, click Data Migration.
The data migration tool will first prompt you for the type of data you want to migrate. At the time of this writing, the tool offers 3 choices and each one has to be done separately: Email, Contacts, and Calendar. For this tutorial, I’ll only be doing Email, but the process is exactly the same for the other 2 options. Select the type of data you want to migrate and click Continue.
The next screen will prompt you for several things:
- Migration Source: This will be Office 365.
- Connection Protocol: Choose “Exchange Web Services” (more on this below).
- Role Account: The e-mail address and password for your Office 365 account.
When you choose the Connection Protocol, a new text field will appear asking for the web address. For cloud hosted Office 365 (those purchases directly from Microsoft or a reseller like GoDaddy), this will likely be:
If you have a self-hosted Office 365 solution, the URL will be different and you’ll need to talk to your administrator to get your custom URL. Just ask them for the Exchange Web Services, or EWS, address.
The migration page gives you a link to re-create all the users you plan to migrate from Office 365 to G Suite. However, you don’t have to have the same users on both systems. The migration tool lets you map one or more Office 365 users to any users on G Suite. For example, firstname.lastname@example.org and email@example.com might exist on Office 365, but on G Suite I can create a single account, say firstname.lastname@example.org, and migrate the 2 legacy accounts into single new account.
Once you have input all the proper values your screen should match the screen shot above. Click the Connect button, and you’ll be presented with a another page of options. This one will let you select a date range for migration, as well as whether or not special folders (like deleted items and junk) should be included in the migration. Select the options that make sense for your needs and click Select Users.
The next screen can be a little confusing at first. It informs you that no migration is in progress, which initially might make you think you’ve missed a step. Instead, you’ll need to click the yellow user icon in the bottom right to select the Office 365 user(s) to migrate from, as well as the G Suite user to migrate to. If you choose to do multiple users, you’ll need to create a CSV file for G Suite to use. Otherwise, if you do a single user, it will prompt you for both the Office 365 email address to import from and also the G Suite user to import to. As a reminder, you can now specify any Office 365 user in your organization, not just the one you gave to G Suite to connect with.
Once you have specified the proper users, click the Start button. At this point G Suite will take over and begin the migration process. In my experience it took a few minutes for any feedback to get generated, successful or otherwise. Be patient, grab a coffee or snack, and click the refresh icon periodically to ensure progress is being made.
If something goes wrong, I would double check all the steps above, especially the creating of roles in Office 365. In fact, the first time I did this I noticed it took a few minutes for the roles to be “ready”. In other words, I had to repeat the G Suite steps multiple times before it stopped giving me the “Exchange impersonation error” message.
If it all works, you’ll eventually see the progress bar move to 0%, and you can hover your cursor over the progress bar to see the number of data items copied so far. Again from experience, it took several hours to migrate about 5000 e-mails. Don’t plan to watch the screen and refresh all day. Let it do its job while you move on to more important things. And remember, if you need to do e-mail, contacts, and calendar data, you’ll have to do them one at a time. This is a limitation of G Suite migration, and hopefully one day they’ll streamline it a bit more.