This articles outlines the complete task flow for migrating folders and documents from Google Drive to OneDrive for Business, including versions and metadata.
We’ve created a guide on scoping, planning, and managing the migration process for your use. If this is your first migration, we recommend reading this guide carefully before continuing.
MigrationWiz is a migration tool, not a syncing tool. If changes are made at the source after migration, they will not sync to the destination, nor will changes made at the destination sync to the source. We do not have “live” monitoring of changes (as with a sync agent) and we cannot handle scenarios such as conflict resolution without user interaction.
MigrationWiz supports the capability to share migration projects across a Workgroup. When the Project Sharing feature is turned on, all Agents besides those who are Inactive can view all migrations projects.
We are not able to support migrations with two-factor or multifactor authentication.
The maximum file size for migration through MigrationWiz varies by migration type and environment, but may never exceed 60GB.
Due to limitations on connections allowed by GoDaddy, we do not support migrating to or from GoDaddy using this migration type.
- Versions (up to 25)
- Google Forms - migrated as a zip file containing the form as html and the responses as a csv. Versions are not supported.
Modified date (based on the modified date of latest version migrated)
Modified by (based on the modified date of latest version migrated)
Created date (based on the created date of latest version migrated)
Description is migrated to ‘Title' column at destination. Migrated value is limited to the existing character limit of the 'Title’ field.
‘Creator’ metadata is migrated but in some cases this value may not be accurate. This is a current limitation without a workaround.
Shortcuts are migrated as a .URL file to the destination document library - if the target file exists within My Drive of the migrated user. Shortcuts are to be migrated as a subsequent migration step, after migrating all relevant documents & permissions.
Migrations of over 60GB are now supported, but this must be set up in Advanced Options. These settings will prevent timeout errors when an import takes more than 10 minutes to complete.
7200000 value is an example; time is measured in milliseconds
For some Google proprietary format files (e.g. Docs, Sheets, Slides), Google allows you provide a custom name for a version of the file. Such version names are not migrated.
Minor revisions available for Google proprietary format files are not migrated.
Embedded video/hyperlinks in Google docs, sheets, or slides may not be migrated accurately when these Google proprietary files are converted to Microsoft 365 format.
.TMP files are not supported.
Shortcuts will not be migrated if target file doesn’t exist at the destination.
Links giving access/Link sharing
Support for Google Proprietary file types
File Format in Google Drive (My Drive)
Migrated as MS Word document.
Migrated as MS Excel.
Migrated as MS PowerPoint.
Migrated as JPEG. (Limitation: Versions are downloaded but all of them has same content)
Migrated as JSON.
Migrated as PDF. (Limitation: Versions not supported)
Migrated as a zip file containing the form as html and the responses as a csv. (Limitation: Versions not supported.)
Note that OneDrive data may not be accessible for a few days after migration, due to OneDrive's crawling and indexing process. We suggest having your users log in immediately after migration, but warn them that their data may not be available immediately. For this reason, it may be best to complete the migration on a Friday so the indexing can happen over the weekend.
If you are migrating to an Microsoft 365 Small Business Tenant account, the processes will be very similar. However, you will not be able to use admin credentials for your Destination endpoint and will instead be using end user credentials.
The destination endpoint must be OneDrive for Business (with Versions and Metadata) for this migration. The User’s personal site provisioning is supported only with this endpoint.
Due to versioning, storage usage in OneDrive may be increased when migrating with permissions.
Prepare the Source
The Google Drive (Own Service Account) connector launched in 2020 and requires the set up of a Google Service account. This significantly reduces the likelihood of the migration being throttled. This is the option we recommend for all Google Drive migrations. Follow the steps below under under OAuth2 Requirements for Google Drive (Own Service Account) to set up your environment for this endpoint.
All accounts being migrated must be in Active status in the tenant. Users that are set to a status of Inactive will not be able to fully migrate and will fail in the project.
OAuth2 Requirements for Google Drive (Own Service Account)
- Subscription to Google Cloud Platform.
- Google Super Administrator account.
- Ability to set up a service account on the G Suite tenant.
- A Google service account must be set up before the MigrationWiz project is created.
Create a Google Project
- Go to the Google Cloud Platform (GCP) Console and sign in as a super administrator. Choose one of the options below:
- If you haven't used the Google Cloud Platform Console before, agree to the Terms of Service and click Create Project.
- If you have used Google Cloud Platform Console before, at the top of the screen next to your most recent project name, click Down to open your projects list. Then, click New Project.
- Enter a project name and click Create.
- When the new project creation completes, at the top of the screen next to the current project name, click Down icon and select the newly created project name from the list.
If you are not able to create a project here, it may be that the ability to create projects has been disabled for your tenant. To check this, navigate to the Google Admin Center and click on Apps > Additional Google Services and select the Google Cloud Platform. Once there, you should see a setting that can be toggled in order to allow users to create projects.
Enable APIs for Service Account
- From the Google Cloud Platform Console, click Menu > APIs & Services > Library.
- Enable the following APIs by selecting the specific API and clicking Enable.
Repeat for each API listed below:
- Google Drive API
- Admin SDK
Make sure that the respective services are enabled within the Google tenant. You can control services for your users using the instructions on this page: Control who can access G Suite and Google Services.
Create Customer Tenant Service Account
- From the Google Cloud Platform Console, click Menu > IAM & Admin > Service accounts.
- Click + Create Service Account at the top middle of the screen and enter a name.
- Click Create.
- Assign the role of Owner to the new Service Account by selecting Owner from the Role drop down menu.
- Click Continue to move to the next step, then click the Done
- You will now be returned to the "Service Accounts" page.
- On ‘Service accounts' page, click vertical ellipsis under 'Actions’ column for the service account created above.
- Click Create key.
- Make sure that JSON is selected as "Key Type."
- Click Create.
- Click Close.
Download the key as a JSON file and make a note of the name and location of the file. This JSON file will be used when setting up the migration endpoint in the migration project.
The JSON file must contain information in the following fields: “type”, “private key”, and “client email”. If these mandatory fields are empty the file upload during endpoint creation will fail.
Setting the Scopes for the Migration
From the Google Cloud Platform Console:
- Click Menu.
- Click IAM & Admin.
- Click Service Accounts.
- Find the service account that was set up in Step 3: Create Customer Tenant Account.
- Find and copy the service accounts Unique ID number. This is the Client ID number that will be used in a later step.
- This field often needs to be added to the view. Click on the Column display options button and add a checkmark to Unique ID, then click OK.
- This Client ID should be considered similar to Administrator account passwords and handled securely.
- You will now have one of two options, depending on if the Google UI has been updated in your tenant.
Old Google Tenant UI:
- Go to the G Suite admin page at google.com.
- Click Security.
- Click Advanced Settings.
- Click Manage API Client Access.
OR If your account shows the latest UI updates from Google, as shown below:
- Go to the G Suite admin page at google.com.
- Click Security.
- Click Advanced Settings.
- Under ‘Domain-wide delegation’, click Manage domain-wide delegation.
- On the Manage domain-wide delegation page, click Add new.
Once these steps are complete:
- In the Client ID field, paste the Unique ID copied above.
- In the OAuth scopes (comma-delimited) field, paste all scopes listed below:
- For source endpoint:
https://www.googleapis.com/auth/admin.directory.group.readonly, https://www.googleapis.com/auth/admin.directory.user.readonly, https://www.googleapis.com/auth/drive.readonly
- Click Authorize.
You should now see your specific Unique ID and the associate scopes listed.
Export mailboxes to CSV file(s)
From the Google Admin portal:
- Click Users
- Click ⁝ (3 vertical dots)
- Download Users
- Download All Users
- Click OK
Preparing the Destination
Administrator Permission Options
- Both options require a Global Administrator for the configuration steps.
- Of the two options available, the more recommended is the App-Based Authentication, as it is more secure and incurs less throttling during the migration. This option also has the benefit of not requiring the account being used to migrate the data to have any administrator roles assigned to it.
BitTitan uses app-based authentication for SharePoint, OneDrive for Business, Microsoft 365 Groups (Documents), and Teams migrations. This provides greater security and reduces the potential of Microsoft throttling. It replaces the previous Microsoft 365 authentication, which has been subject to increased throttling by Microsoft. This app-based authentication method is specific for Microsoft 365 tenants. Using this option, including steps for uninstalling, can be found outlined here: App based authentication using Application Permissions for SharePoint and OneDrive Migrations
Full-Control vs Read-Only
Why does the source require consent to a Full-Control application permission?
All AMR migrations require full-control permission. If you have a specific need to not allow full-control permissions, you can use MigrationWiz-SharePoint-ReadOnly (only for the source). However, please note that with read-only permissions, MigrationWiz will not export document permissions, versioning or metadata, and cannot use AMR. Additionally, OneNote files will be migrated, but will not contain content, due to a lack of permissions when preparing the files to migrate.
Steps for enabling app-based authentication permissions
- Ensure you are signed in as a Global Admin.
Go to MigrationWiz-SharePoint-FullControl and consent to the app access when prompted. Once you click on Accept, you will be redirected to the BitTitan login page. This is normal and the page can be closed.
Create a new security group named MigrationWiz in the Office 365 Admin Portal. (The name of the security group must be an exact match)
Create a new user that is not having data migrated in the project. This account does not require any administrator roles to be assigned. (If you already have an existing user, that should be fine)
Add the new (or existing) user to the previously created security group as a Member (Adding as an Owner will not work here).
Create MigrationWiz project.
When creating the source and destination endpoints, enter the user credentials for the user in step 4 that corresponds with the endpoint the user belongs.
- Add the support option UseApplicationPermission=1 to the advanced options of the MigrationWiz project under Support Options.
Create an Administrator Account to use Delegated Authentication
The easiest approach to follow is to use the global administrator account that was set up at the time of tenant creation. However, if you do not wish to use this global admin account during migration, then a new user account can be created instead. This will then need to have a license assigned that includes OneDrive for Business and be granted Site Collection Administrator privileges to the user OneDrives being migrated in the project. Using this option, including steps for uninstalling, can be found outlined here: Using Delegated App Permissions
Important: We strongly recommend that you use an administrator account that isn’t one of the users being migrated, as it can cause issues with missing shared permissions.
Create a user in Microsoft 365 and assign a license that includes OneDrive for Business. For step-by-step instructions, see the Microsoft article Add users individually or in bulk to Office 365.
Set the administrator privileges. Grant one of the permission levels listed below to the user account to be used as the administrator for the endpoint in the project.
Global Administrator. Microsoft has instructions to set these permissions here: Assign admin roles.
Site Collection Administrator. For specific permissions and project settings to be used with a Site Collection Administrator, see MigrationWiz Permission Requirements.
Add the support options UseApplicationPermissionAtSource=0 and UseApplicationPermissionAtDestination=0 to the advanced options of the MigrationWiz project under Support Options.
- Ensure you are signed in as a Global Administrator account in the tenant.
- Go to MigrationWiz-SharePoint-Delegated and consent to the app access when prompted. Once you click on Accept, you will be redirected to the BitTitan login page. This is normal and the page can be closed.
After you perform these steps, the specified user will be visible in the Microsoft 365 administrator center. Full provisioning of the user account can take up to 24 hours.
- Users being migrated need to be licensed to use OneDrive in the destination tenant
- Users being migrated must not be blocked from signing into the destination tenant
- Destination OneDrives must not be set to read-only
- If electing to use Delegated Authentication (outlined under Administrator Permission Options above) for the administrator account performing the migration, it must be set as Site Collection Admin of the Destination OneDrives
Preparing Azure Environment for Destination Endpoint
Microsoft-Provided Azure storage
We recommend using Microsoft-provided Azure storage for this migration. Refer to Microsoft documentation for more details. If you choose this option, skip to Prepare the Destination Environment.
Own Azure storage
If you plan to use your own Azure storage, refer to the following steps to prepare your Azure environment. We recommend that you create your Azure storage account in the same Microsoft data center as the destination Microsoft 365 tenant. You do not need to create any Azure containers for this migration.
- Estimate Azure storage costs. This step is optional but is useful in order to provide the customer with up-front storage costs ahead of time.
- Buy an Azure subscription
Subscription vs Free Trial
You have the option to use the free one-month trial, but be aware that this option is only viable if you are performing a very small migration.
Create an Azure storage account
You will need to set up a STORAGE (General Purpose v2) account rather than a storage blob.
- Take note of the storage account name and the primary access key. (In Azure, from the storage screen, click Manage Access Keys at the bottom of the screen.) These need to be entered into the MigrationWiz migration project when specifying the destination settings.
To create the Azure storage account:
- Visit the Azure portal.
- Click New.
- Select Storage.
- Select Storage account.
- Enter a name for your storage account.
- Choose Resource manager for the Deployment model.
- Choose STORAGE (General Purpose v2).
- Record the storage account name (-accesskey, example: “accountname”) and primary access key (-secretkey, example: “W1RrDfkPNkfYfdVqizMNJjn5mXchwMP5uYBY8MsMqWTA7EubG911+4fZlki0Gag==”)
- In the Replication field, select Locally Redundant Storage (LRS).
- Select the subscription in which you want to create the new storage account.
- Specify a new resource group or select an existing resource group.
- Select the geographic location for your storage account.
- Click Create to create the storage account.
Now the storage account appears in the storage list.
Licenses are required to run a migration project in MigrationWiz. To obtain license pricing information, or to purchase licenses, click the Purchase button in the top of your MSPComplete or MigrationWiz dashboard.
- When purchasing with a credit card, payment is immediately processed during checkout. If successful, licenses are granted to your account instantly.
- Wire transfers are available for purchases of 100 or more licenses. If you are purchasing at least 100 licenses, you will be presented an option to purchase via wire transfer during checkout. A wire transfer checkout will generate an invoice with wiring information for your accounts payable department and bank. Once the funds are received by our system, the licenses are granted to your account immediately.
For this project type it is recommended to use our User Migration Bundle licenses.
- User Migration Bundle Licenses have unlimited data available per license.
- User Migration Bundle Licenses are applied to the customer's users and expire 12 months after their purchase date.
- Document, Personal Archive, and DeploymentPro projects are all included when using User Migration Bundle Licenses.
- This license type must be applied manually.
To purchase licenses:
- Sign in to your BitTitan account.
- In the top navigation bar, click Purchase.
- Click the Select button and choose the license type you need.
- Enter the number of licenses you want to purchase. Click Buy Now.
- Enter a Billing address if applicable.
- Click Next.
- Review the Order Summary and enter a payment method.
- Click Place Your Order.
These licenses enable you to perform multiple migrations of documents and in-place archives.
User Migration Bundle Licenses have unlimited data available per license. User Migration Bundle Licenses are applied to the customer's users, for whom you'll be performing migrations, and are valid for one year.
Read the Licensing FAQ article for more information.
Create a Document Migration project
- Click the Go to My Projects.
- Click the Create Project.
- Create a Document project.
- Click Next Step.
- Enter a Project name and select a Customer.
- Click Next Step.
Endpoints are now created through MigrationWiz, rather than through MSPComplete. The steps for this section outline how to create the endpoints in MigrationWiz.
If you are selecting an existing endpoint, keep in mind that only ten endpoints will show in the drop-down. If you have more than ten, you may need to search for them. Endpoint search is case and character specific. For example, "Customer" will not show up if the search is "customer". We recommend keeping a list of endpoints you have created, along with any unique spellings or capitalization you may have used.
You may either use existing endpoints, or create new ones.
To create a new source endpoint:
- Click Endpoints.
- Click Add Endpoint.
- Select the Google Drive (Own Service Account) or Google Drive endpoint, based on how the source was set up:
- Google Drive endpoint: Enter the super administrator email address and domain name in the appropriate fields.
- Google Drive (Own Service Account) endpoint: Select the JSON file created in the steps above and enter the Super Admin username (email address) for the source.
- Select the JSON file created in the steps above and enter the Super Admin username and password for the source.
- Click Add.
To create a new Destination Endpoint in MigrationWiz:
Click DESTINATION SETTINGS
Under Endpoint Type, select OneDrive for Business
Select the radio button named OneDrive for Business (Office 365 User) - Documents, Permissions, Versions and Metadata
Enter the administrator username and password in the proper fields.
Enter the Azure Storage Account Name and Azure Access Key (if using your own Azure storage) or select Microsoft-provided Azure Storage. If entering the Azure Storage Account Name for the destination endpoint, only numbers and lowercase letters can be used. If you enter an upper case letter, your migration will fail.
Click Add Endpoint.
Add the user accounts that will be migrated to the project. MigrationWiz allows you to bulk import users into the system. (Note: For OneDrive endpoints, the email address must match the current User Principal Name of the user in the tenant)
Add the accounts (also referred to as "items") that will be migrated to the project. There are several ways to do this.
MigrationWiz allows you to bulk import mailboxes into the system.
To import one or more mailboxes:
- Sign in to your MigrationWiz account.
- Select the Project for which you want to perform the bulk import.
- Click Add.
- Click Bulk Add.
- Follow the instructions on the page.
The Autodiscover process within MigrationWiz can be used to discover items from the Source environment, so that they can be imported into your projects.
There are few requirements in order for this to work:
- The Source has to be Exchange 2007 or later, or Office 365, or G Suite. If you are using Autodiscover from G Suite, all G Suite domains must be added to the list of domains in the Endpoint.
- The endpoint on the Source needs to use admin credentials.
- The endpoint Administrator account on the source needs to be assigned the appropriate GSuite license in order for MigrationWiz to access Google Drive or Google Shared Drives for the Auto Discovery process.
- For mailbox migration projects, the admin account that is specified within the Source endpoint needs to have a mailbox associated with it.
- The admin mailbox must be listed in the public Global Address List (GAL).
- The migration project type needs to be a Mailbox migration. For the exact steps to be followed during your migration, refer to the relevant Migration Guide. All Migration Guides can be found on the Help Center site.
One additional item to note here is that there is not a way to restrict the IP addresses that the connection will come from. This means that the steps outlined in our IP Lockdown guide will not apply here. If your environment requires that any IP addresses be whitelisted, it is recommended that items be added to your project using on of the other available options.
Autodiscover of items will not work while using Modern Authentication
Autodiscovery exposes the following items:
- For mailbox migration, autodiscovery will list all mailboxes at the Source.
Steps to Run Autodiscover
Navigate to the project you want to import users into.
Ensure that you have created an endpoint for the source project.
Once in the project, on the top navigation bar, click on the Add drop-down, then select Autodiscover Items. This will begin the Autodiscover process.
Once discovered, click on the Import button, to import the items into your MigrationWiz project.
Under the Support tab
See Google Drive Migration FAQ for more details
Scans “My Drive” for the source address in your migration project.
Migrates only folders that are owned by that account, but migrates all files in those folders regardless of ownership.
Unowned folders with sub-folders that are owned by this account are mimicked to maintain functional integrity post migration. No files in those unowned folders are migrated.
Sharing permissions for folders and documents are also migrated.
No files within folders owned by another user are migrated.
- InvalidCharacterReplacementString=a (where 'a' is the string used to replace unsupported characters in file names)
- SharePoint Online doesn’t allow some characters to be used as file names. The advanced option attempts to replaces instances of unsupported characters in file names with the specified string provided with the advanced option. (e.g. a)
- Please refer to Microsoft's documentation for unsupported characters
- InitializationTimeout=8 This increases the initialization timeout window to eight hours. This value is in hours, up to a maximum of 100 hours. Values above 100 are in milliseconds. This is useful for large migrations. For example:
- InitializationTimeout=2 will increase the timeout to 2 hours.
- InitializationTimeout=21600000 will increase the timeout to 6 hours.
- OneDrive doesn’t allow files with duplicate names in the same folder. If your shared drive has multiple files with same name in a folder, then use this advanced option to handle such conflicting files.
Microsoft does not support duplicated names of folders and files, unlike Google Workspaces. Therefore, this AO enable the migration of folders with duplicated names from Google Drive as a Source into Microsoft destinations. With this AO, folders with duplicated names will be migrated with a suffix.
- ShrinkFoldersMaxLength=200 (where 200 is the maximum path length that can be tolerated before shrinking)
- When migrating to SharePoint Online or OneDrive, the path length limitation is a common issue. Refer to the SharePoint & OneDrive FAQ to understand how this advanced option works.
- Please note that, if the folder path is too long, even the truncated path using the advanced option may not be short enough to reach the SharePoint path length limit - in such case an error will be logged and the associated item will not be migrated. In this case, our recommendation would be to reduce the number of nested folders at the source to shorten the path.
- Use the UserMapping advanced option when you want to customize the permission mapping for user or group.
- Please note that the destination user/group (email@example.com) must have been commissioned and be available at the destination document library before migration.
- Once set, this advanced option is applied to all line items in the same project
If you have split all the Google Drive accounts across different MigrationWiz project, use the Support Option MapPermissionEmailByPairsInCustomer=1 instead to use the mapping of all users across all projects.
- OverwriteDestinationFilePermissionsAndMetadata=1 (only valid if permissions checkbox is selected and a second or delta pass is being executed)
- When source files have updated permissions (user/group permissions, access levels), destination files also will be updated to reflect the latest changes from the source accurately
- When source file metadata has updated, destination files will also be updated to reflect the latest changes from the source accurately (description (to Title), last modified by, last modified timestamp, owner, creator, created by)
- When a source file is renamed, a new file will be created in destination with new name with updated metadata (description (to Title), last modified by, last modified timestamp, owner, creator, created by)
The best practice for leveraging this advanced option would be to utilize it during the final pass. Utilizing it for every subsequent pass will slow the migration process.
- Exceptions to the above behavior when the destination file has been modified:
- When the destination file name has been modified by user - then the file will not be migrated.
- When the destination file title has been modified by user - then the description changes to the title from the source will not be migrated
Under the Filtering tab
- Google file extension for filtering: As Google proprietary files do not contain a file extension (.doc, .jpg, etc.), MigrationWiz will recognize the following terms for the proprietary Google file types. The list of terms shown below should be used when the Advanced Option > Filter > By File Extension is used for any Google file type.
Google file types
Term to use as google file extension
Google My Maps
Google Apps Scripts
Under the Source/Destination tab
- Set the number of versions to be migrated per project requirement:
- The minimum number of versions to migrate is 1, the maximum number is 25.
- Default selection for the number of versions is 1. Please update this value as per your requirements.
- Known Limitation - Google Drawing and Google Slide will have same recent version content across all the migrated versions.
- Multi-pass behavior: For information on how multi-pass behavior works in OneDrive and SharePoint migrations, see Versions & Metadata Migration for SharePoint & OneDrive.
- Send successful migration and notification to: Source email address (if users are still using G Suite Gmail) or Destination email address (if users are already using Microsoft 365).
- Customize notification email: Checkmark the Customize "successful migration" email. Add your own customization text and company name to this email.
- Notifications are not mandatory for a successful migration. Notifications should only be set up before the final pass as a courtesy to the users impacted by the final migration. If performing a single Full pass migration, set this notification up now. If you are following a Pre-Stage migration strategy, only set this up prior to the final Full (Delta) pass.
Run Verify Credentials
- Sign in to your MigrationWiz account.
- Open the Project containing the items you wish to validate.
- Select the items you wish to validate.
- Click the Start button in your dashboard.
- Select Verify Credentials from the drop-down list.
Once complete, the results of the verification will be shown in the Status section.
Send out the final notification that the migration is beginning. Include when the migration will start, expected duration, any usage instructions during migration, and any expected steps or notifications for the post-migration timeline. Remind them to avoid modifying any documents at the Source, as this may cause corrupt data or an incomplete migration.
Perform a Full Migration
- Open the project containing the items you wish to migrate.
- Select the line items to migrate.
- Click on the Start button in your dashboard.
- Select Full Migration from the drop-down list.
- Ensure that the Documents and Permissions checkboxes are selected.
- Click Start Migration.
- Once complete, the results of the migration will be shown in the Status section.
- To migrate shortcuts to the destination (as a .url file type), run another pass following the full migration steps above, this time with ‘Step 2’ selected.
- Step 2 should be run only after all relevant documents and permissions have been migrated. Please note Step 2 is not mandatory. This is should be run only if you wish to migrate shortcuts to the destination (as .url file type).
- Folder Shortcuts may not be migrated if target folder name has been truncated using advanced option ShrinkFoldersMaxLength.
- Shortcut files when migrated to destination as .URL file, will not retain direct permissions applied to target files at the source.
- Shortcuts referring to target files with names containing some special characters (e.g. “#” or “%”) when migrated to destination may not open the target file correctly.
Run Retry Errors
Look through the user list and click any red "failed migration" errors. Review the information and act accordingly.
If problems persist, contact Support.
Click the pie chart icon in the MigrationWiz dashboard to receive an email containing all the project migration statistics.