> ## Documentation Index
> Fetch the complete documentation index at: https://docs.box.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Migrating Content from Google Drive to Box

export const InlineImage = ({src, alt = "", height = "1em"}) => {
  return <img noZoom src={src} alt={alt} style={{
    display: "inline-block",
    verticalAlign: "middle",
    height: height,
    width: "auto",
    margin: "0"
  }} />;
};

<div className="article_labels_list" style={{display: 'none'}} dangerouslySetInnerHTML={{__html: "End User , Overview , Migration , Article , Established , Box Shuttle"}} />

<Note>
  **standalone tool**

  This article is about Box Shuttle as a . If you are using **Shuttle in Admin Console**, see [this document](/en/box-shuttle/about-box-shuttle/introducing-box-shuttle).
</Note>

# Introduction

Every migration is unique, and it can be tricky to move data between differing systems. Box Shuttle enables a simple and powerful path from wherever your content is stored today into Box, allowing you to transfer folders, files, permissions, and metadata.

This guide provides instructions for moving data from Google Drive and focuses on how-to procedures, best practices, and configuration steps.

**Note**:\
This guide applies to migrations from Google Drive associated with a Google Workplace account, not personal Google Drive accounts or Google Cloud Storage. If you are looking to migrate from personal Google Drive accounts, contact your Box account team for guidance.

# Google Drive migration concepts

The following sections will help you understand Google Drive migration concepts before you start analyzing and migrating your data.

## Google Drive

Google Drive is a cloud provider operating from **drive.google.com**.

## Account mapping

Account mapping is used for associating a source user account with a target user account. Matching accounts simplifies transferring multiple user files and folders without users losing access to the content. This is an essential component to migrating permissions.

Box Shuttle attempts to map users automatically. For example, a source account of **[username@mycompany.com](mailto:username@mycompany.com)** on Google Drive automatically maps to a Box target account with the same name. Additionally, permissions assigned to groups such as Engineering, regional offices, or restricted-access entities such as Legal, map to their corresponding target groups.

To accomplish this, Box Shuttle follows these steps:

1. Audits all the users, groups, and permissions on the source when initially scanning the content.
2. Scans target users and groups.
3. Confirms the owner’s and collaborators’ permissions, paths on the target, and automatically matches according to best possible fit.

The Google Drive (Administrator/Service Account) system is required for account mapping. Next sections provide the details of account migration.

### My Drives

If you select multiple Google source accounts for transfer, Shuttle will transfer the contents of each user’s My Drive. You can also transfer Shared Drives in the same job.

**Note**: Box Shuttle only transfers items from **drive.google.com**. Items from other URLs, such as Google Photos (**photos.google.com**) are not supported.

### Shared with Me space

Shuttle does not list or transfer content stored in the Google Drive **Shared with Me** space. For Google sources, each selected user’s personal account is transferred in a multi-user migration.

In most cases, an item that resides in more than one place on the tenant will be transferred along with the account of the user who owns that item. If you select all accounts, Box Shuttle transfers one instance of each item in the entire Google tenant. Duplicate instances of that item in other locations will be consistently filtered so that only one instance of each item is transferred.

### Alias emails

Alias emails are alternate emails to the primary email for a given account. These may be due to historical changes in the Google account. For example, this includes relevant email domain changes from **subsidiary.com** to **parentCompany.com** with users receiving new email accounts. In addition, instances with users needing two emails for the same account also apply.

When migrating data from Google Drive, this can result in file conflicts. Former items may be shared with **[joe@subsidiary.com](mailto:joe@subsidiary.com)** and newer items would be shared with **[joe@parentCompany.com](mailto:joe@parentCompany.com)**. These items are actually shared with the same source account.

Box Shuttle checks the IDs of user metadata associated with owners and contributors. This merges aliases with the current primary email for the account.

In this example, any files shared with the **[joe@subsidiary.com](mailto:joe@subsidiary.com)** are listed as being shared with **[joe@parentCompany.com](mailto:joe@parentCompany.com)** in the mapping spreadsheet and in Box Shuttle reports. Prevent errors during the migration and update primary emails of user accounts before any analysis or transfer job.

### Externally-owned data and collaborators

Box Shuttle does not support external owners or collaborators. Any data that has external owners will not be migrated. External collaborators cannot be migrated and will need to be added to data post-migration.

## Google Docs migration

Google hosts pseudo files, such as Google Docs, that are stored in a database and rendered as files in the Google Drive UI. Box Shuttle automatically exports and transfers **docx**, **xlsx**, **pptx**, **svg** and **txt** files from Google Docs, Sheets, Slides, Draw and Sites files respectively. Please reach out to Box Consulting if you need to migrating Google Docs without conversion.

**Note**: Maps and Forms are not exported and are not transferred.

To ensure Google Docs are migrated properly:

* Complete all Google Doc edits and allow ample time for saving before any transfers.
* Avoid editing documents during any active transfers. Documents going through the save process may result in additional files on the target with **(Conflicted Copy)** in the file name. If a Google Doc is updated on the source after the initial transfer, a resync run transfers and exports the updated content.

Box Shuttle uses Google’s export tool to export Google docs and may encounter files that cannot be exported. Files with export errors are documented in the transfer report. For details, see [Google Drive export errors](#export-errors).

### Suspended users

To transfer Google Docs from a source, only **active** users are supported. Suspended accounts are not compatible, and can result in permission errors on export that leads to transfer file failure.

### Versioning in Google Docs

Google Docs may also include file versions. Unlike true files, Google Docs versions are not stored as separate files. These are stored and accessed within the document itself.  This is similar to Box.

Box Shuttle lists Google Doc versions in the analysis report. These versions are transferred when Google Docs exports to Office on the target with the **Sync File Versions** job selection. Versions are listed in reports for analysis, simulation, and transfer jobs.

## Converting unique Google properties to other platforms

### Forward slashes in file and folder names

Forward slashes (/) are commonly used in file and folder names on Google Drive. This may conflict with moving to other service providers. The forward slash character is invalid and reserved for use as a delimiter of directories and files in data paths.

Box Shuttle converts forward slashes to divider slashes **U+2215** for all Google Drive sourced migrations. This character replacement is displayed in the file chooser, simulation, and transfer reports.  Similarly, trailing and leading spaces in file or folder names are also converted to a character that looks like a space visually, but is actually a different character that Box supports.

### Duplicate named items

Google Drive supports files and folders with duplicate names. For two or more folders or files with the same name, Box Shuttle appends a unique ID to the name. For example, an item with the name **Content1** transfers as **Content1** and any later named items with the same name also include an appended ID, such as **Content1 (abcdefg12345)**. If you have a folder and file with the same name, they transfer to Box with their names intact. Please review your simulation results carefully.

## Sources and targets

The **source** is where the data is today. This is a starting point for the data in the migration process. Box Shuttle cannot alter or modify your source data.

The **target** is an end destination – Box. This is where the data is at the end of the migration process. A target can be one or more different user accounts.

## Jobs

A job is a task to move one group of data from a source into Box. A group of data is whatever makes sense to your business - it might be a department, a single user, or a particular folder - that's up to you. In the migration context, the term job applies to migrating data from the source to a Box target.

Box Shuttle offers two job types:

* **Analyze Data** jobs help you start planning your migration. These jobs analyze every item specified in your source and provide a robust report.
* **Migrate Data** jobs move and transfer data. These jobs include:
  * Data-only migration that migrates your data to a single location on the target without migrating permissions.
  * Migration with permissions that transfers not only data, but also ownership rights and permissions from one location to another.

# Prepare your Google account

Unlike most service providers, Google Drive requires more information than a username and password. Google as a provider does not support OAuth authentication, instead supporting JSON Web Tokens (JWT).

That’s why you need to follow these steps to prepare your Google Drive account for Box Shuttle:

1. Set up a Google Cloud Platform (GCP) project.
2. Create a service account for the project, and generate a JSON file with your key pair.
3. Enable the required APIs for the project.
4. Enable the project service account.
5. Request quota increase from Google Drive to reduce rate limiting.

## Set up the Google Cloud Platform project

1. Go to your [Google Cloud Platform dashboard page](https://console.developers.google.com/). Navigate to your projects using the dropdown menu on the left of the search bar.\
   Google defaults to your last project.

<Frame>
  <img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image50.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=ab1ec4f8357b89ea50d89045cac1733d" alt="image50.png" width="1112" height="1047" data-path="images/box-shuttle/image50.png" />
</Frame>

2. If you don’t have a project, click **New Project**.

3. Add your Project name, Project ID, Organization, and Location.

<Frame>
  <img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image53.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=437646eb7c9752d26894216dcf1f79dc" alt="image53.png" width="1000" height="564" data-path="images/box-shuttle/image53.png" />
</Frame>

4. Click **Create** to continue.\
   **Note**: If you already have a project, editing your Project ID is optional and not recommended.
5. Open the Google Cloud Platform menu and navigate to **IAM & Admin**.
6. Click on **Service Accounts** in the pop up.

<Frame>
  <img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image48.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=344737b28617705a240d7c8000702c60" alt="image48.png" width="1010" height="1179" data-path="images/box-shuttle/image48.png" />
</Frame>

7. On the Service accounts page, click **+ Create Service Account**.

<Frame>
  <img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image43.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=949cf1d5e1ea1b84576668fdf9069aee" alt="image43.png" width="1261" height="690" data-path="images/box-shuttle/image43.png" />
</Frame>

8. Add and confirm your service account information, then click **Create and Continue**. Click **Done** to return to the Service accounts page.\
   Granting project access and user access options are optional.

<Frame>
  <img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image38.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=a54c99c6e3e1b77caaae37315773e85f" alt="image38.png" width="1038" height="793" data-path="images/box-shuttle/image38.png" />
</Frame>

9. On the Service accounts page, select the new service account from the previous step. Click the three dot icon in the **Actions** column. Click **Manage keys**.

<Frame>
  <img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image44.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=dab3840b5811a85eeaad8902f4c75607" alt="image44.png" width="1255" height="711" data-path="images/box-shuttle/image44.png" />
</Frame>

10. In the Keys tab, click **Add Key**. Then, click **Create new key** in the drop down menu.

<Frame>
  <img src="https://mintcdn.com/product-docs/ZRmHMAkUChAmaGhq/images/box-shuttle/image7-5.png?fit=max&auto=format&n=ZRmHMAkUChAmaGhq&q=85&s=3d9e49f3d289e935926d30b462b0cc36" alt="image7.png" width="992" height="590" data-path="images/box-shuttle/image7-5.png" />
</Frame>

11. The prompt gives you two options for downloading a file with the private key. Select the **JSON** key type. Click **Create** to download a JSON file to your device.

<Frame>
  <img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image41.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=c49d9d9f744ffb49c6d28a62cd40be53" alt="image41.png" width="551" height="381" data-path="images/box-shuttle/image41.png" />
</Frame>

12. Save this file in a secure location. It is required for next steps.

<Frame>
  <img src="https://mintcdn.com/product-docs/w0kz4-Qb0e_B2rGw/images/box-shuttle/image14-7.png?fit=max&auto=format&n=w0kz4-Qb0e_B2rGw&q=85&s=213adc766da070c8f2ea513e43bac9b2" alt="image14.png" width="1009" height="240" data-path="images/box-shuttle/image14-7.png" />
</Frame>

13. Go to **API & Services** > **Enabled APIs & services** on the left from the pop up menu.

<Frame>
  <img src="https://mintcdn.com/product-docs/QPUs11_KFpr2PpHi/images/box-shuttle/image28.png?fit=max&auto=format&n=QPUs11_KFpr2PpHi&q=85&s=b8be2f131f53699034161fc4c2f276e5" alt="image28.png" width="599" height="662" data-path="images/box-shuttle/image28.png" />
</Frame>

14. On the APIs & Services page, click **+ Enable APIs and Services**.

<Frame>
  <img src="https://mintcdn.com/product-docs/QPUs11_KFpr2PpHi/images/box-shuttle/image27-6.png?fit=max&auto=format&n=QPUs11_KFpr2PpHi&q=85&s=44a7b2765a123d4acbe2782e3ff42dd0" alt="image27.png" width="1018" height="431" data-path="images/box-shuttle/image27-6.png" />
</Frame>

15. On the API Library page, use the search bar to find the **Admin SDK** and **Google Drive API** to add. Click the appropriate result to continue to the next page.

<Frame>
  <img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image40.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=d10213cb8575c06e64099f2a437db059" alt="image40.png" width="1242" height="541" data-path="images/box-shuttle/image40.png" />
</Frame>

16. When adding the APIs, click **Enable**. This brings you to the specific API page. Navigate back to the API Library by clicking **API/Service Details** above the API title and icon.

<Frame>
  <img src="https://mintcdn.com/product-docs/w0kz4-Qb0e_B2rGw/images/box-shuttle/image15-5.png?fit=max&auto=format&n=w0kz4-Qb0e_B2rGw&q=85&s=6e546de8cc1456719b60fd2a0f842f97" alt="image15.png" width="788" height="557" data-path="images/box-shuttle/image15-5.png" />
</Frame>

17. Repeat Steps 15 and 16 for the Google Drive API.

## Adjust Google Admin settings

1. Go to your Google Admin page. Scroll down and click **Security**.

<Frame>
  <img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image31-6.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=3ed6e26eafaa940c332b960be7cdf7c4" alt="image31.png" width="1061" height="1253" data-path="images/box-shuttle/image31-6.png" />
</Frame>

2. At the Security page, scroll down and click **API controls**.

<Frame>
  <img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image47.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=99bc1203cc1fb74582f3dee5f6e76c38" alt="image47.png" width="1255" height="1165" data-path="images/box-shuttle/image47.png" />
</Frame>

3. At the API controls page, scroll down to **Domain wide delegation**. Click **Manage Domain Wide Delegation**.

<Frame>
  <img src="https://mintcdn.com/product-docs/QPUs11_KFpr2PpHi/images/box-shuttle/image24-pngs.png?fit=max&auto=format&n=QPUs11_KFpr2PpHi&q=85&s=a4e115c4b6029121124d16527a3fafd5" alt="image24.png" width="1261" height="1205" data-path="images/box-shuttle/image24-pngs.png" />
</Frame>

4. On the Domain-wide Delegation page, click **Add New** in the API clients table for the **Add a new client ID** prompt.

<Frame>
  <img src="https://mintcdn.com/product-docs/QPUs11_KFpr2PpHi/images/box-shuttle/image30.png?fit=max&auto=format&n=QPUs11_KFpr2PpHi&q=85&s=c5e0b24389f30ce6cd08e19b782e3492" alt="image30.png" width="1254" height="450" data-path="images/box-shuttle/image30.png" />
</Frame>

5. Open the JSON file you have saved before. Copy the **Client ID** value from the file. Paste the value in the **Client ID** field in the prompt.

6. In the **OAuth scopes (comma-delimited)** field, paste the string in the field from the prompt:\
   [https://www.googleapis.com/auth/admin.directory.group,https://www.googleapis.com/auth/admin.directory.user,https://www.googleapis.com/auth/drive](https://www.googleapis.com/auth/admin.directory.group,https://www.googleapis.com/auth/admin.directory.user,https://www.googleapis.com/auth/drive)

<Frame>
  <img src="https://mintcdn.com/product-docs/w0kz4-Qb0e_B2rGw/images/box-shuttle/image2.png?fit=max&auto=format&n=w0kz4-Qb0e_B2rGw&q=85&s=ca1beded94aa150f8f30e037f38900a0" alt="image2.png" width="463" height="410" data-path="images/box-shuttle/image2.png" />
</Frame>

Click **Authorize** to continue.

## Google Cloud Platform quotas

1. Go to your [Google Cloud Platform dashboard page](https://console.developers.google.com/). Use the menu to go to **IAM & Admin** > **Quotas**.

<Frame>
  <img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image52.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=6b3dd4a783368d434551c1d6ad5501d0" alt="image52.png" width="561" height="1185" data-path="images/box-shuttle/image52.png" />
</Frame>

2. At the Quotas page, use the search bar next to Filter in the table. Search for **Google Drive API**. Select the **Google Drive API** by clicking the box.

<Frame>
  <img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image49.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=ec7d2664d2b587b2fa315a0805aeb6c2" alt="image49.png" width="1252" height="520" data-path="images/box-shuttle/image49.png" />
</Frame>

3. Click **Edit Quotas**.

<Frame>
  <img src="https://mintcdn.com/product-docs/QPUs11_KFpr2PpHi/images/box-shuttle/image3.png?fit=max&auto=format&n=QPUs11_KFpr2PpHi&q=85&s=35c74dcc206558a15fb168a7d6e88d2c" alt="image3.png" width="1265" height="644" data-path="images/box-shuttle/image3.png" />
</Frame>

4. At the prompt, update the values for the Google Drive API with the following info.To edit the values, your project must be linked to a billing account. Click **Submit Request**.

* Queries per 100 seconds: **100000**
* Queries per 100 seconds per user: **20000**

<Frame>
  <img src="https://mintcdn.com/product-docs/w0kz4-Qb0e_B2rGw/images/box-shuttle/image17-6.png?fit=max&auto=format&n=w0kz4-Qb0e_B2rGw&q=85&s=81547ba76410b82d3feebc7547fa4e51" alt="image17.png" width="537" height="679" data-path="images/box-shuttle/image17-6.png" />
</Frame>

# Source analysis

Running an Analysis job helps you understand your source data at a more comprehensive level. The analysis report includes information on data type, size, age, and permissions.

As a result, it is easier to divide a large and complex job into smaller manageable pieces to plan which departments or sections to migrate first, as well as to come up with a reasonable approach to migrate your users and their data. This way, large projects can finish quicker, cost-effectively, with fewer conflicts, and more efficient delta runs.

The following instructions guide you through the process of setting up your source system and analyzing the files and folders in the origin location.

## Configuring a Google Drive source

1. On Box Shuttle home page, click **+** to create a new job.

<Frame>
  <img src="https://mintcdn.com/product-docs/QPUs11_KFpr2PpHi/images/box-shuttle/image27.png?fit=max&auto=format&n=QPUs11_KFpr2PpHi&q=85&s=0578cce1b82008265280b473470c44ca" alt="image26.png" width="827" height="119" data-path="images/box-shuttle/image27.png" />
</Frame>

2. Click **Analyze Data**.

<Frame>
  <img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image31.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=8e3f6e0eccdb50aec1e24a6b0374a018" alt="image11.png" width="857" height="520" data-path="images/box-shuttle/image31.png" />
</Frame>

3. Under **Configure a new system**, click the **G-Drive** tile.
4. Click **Log in to Google Drive**.
5. Add the administrator email.

<Frame>
  <img src="https://mintcdn.com/product-docs/QPUs11_KFpr2PpHi/images/box-shuttle/image25-5.png?fit=max&auto=format&n=QPUs11_KFpr2PpHi&q=85&s=76be441f03e1da9f1b8e09051ec03ca6" alt="image25.png" width="845" height="464" data-path="images/box-shuttle/image25-5.png" />
</Frame>

6. Provide access to G-Drive with credentials from your JSON file. Click **Choose file** to open the file explorer.
7. Select the JSON file you have saved during Google Cloud Platform configuration and click **Open**.

<Frame>
  <img src="https://mintcdn.com/product-docs/ZRmHMAkUChAmaGhq/images/box-shuttle/image9-5.png?fit=max&auto=format&n=ZRmHMAkUChAmaGhq&q=85&s=58af71f54823d498874fb592eaf47436" alt="image9.png" width="1256" height="813" data-path="images/box-shuttle/image9-5.png" />
</Frame>

## Running an analysis

Once you have your Google Drive source configured, you can begin to run jobs.

1. Click the **+** icon a to create a new job.
2. Click **Analyze Data**.
3. Under **Systems that you configured before** select the **Google Drive** source.
4. Authenticate and click **Continue**.
5. Under **Filters**, create a filter to include or exclude files. Use **+** to add a filter or the trash bin icon to remove an existing one. Click **Continue** to proceed.

<Frame>
  <img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image35.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=b9bcd26880272b4d8c644690b9bbcca5" alt="image35.png" width="857" height="338" data-path="images/box-shuttle/image35.png" />
</Frame>

6. On the Select file locations page, choose the source files to analyze.

* Hover over the row to reveal a folder explorer icon <InlineImage src="/images/box-shuttle/foldericon.png" alt="foldericon.png" />. Use it to browse through your account and add or exclude specific files or folders.
* The <InlineImage src="/images/box-shuttle/glassicon.png" alt="GlassIcon.png" />  icon allows you to search for the accounts to add.
* The <InlineImage src="/images/box-shuttle/eyeicon.png" alt="EyeIcon.png" /> icon allows you to hide unchecked items or show all.
* Click **Done** to continue.
* View the configuration summary.

<Frame>
  <img src="https://mintcdn.com/product-docs/GIZud_1VFivKpDRx/images/box-shuttle/image12-4.png?fit=max&auto=format&n=GIZud_1VFivKpDRx&q=85&s=383b692937b2b8190597c501db2393c7" alt="image12.png" width="868" height="765" data-path="images/box-shuttle/image12-4.png" />
</Frame>

* **Schedule** sets a specific date and time in the future for the **Migrate Data** job to run. This option also allows for adding the job to the queue.

* **Rename** lets you change the name of the job.

* Click **Analyze** to start the job. It may take some time to complete.

* The upper-right corner shows current actions and updates.

* **View Results** displays details of the job.

* **Stop** ends the job before it is complete.

* When the analysis is complete, the page displays statistics in a table. Clicking **Done** redirects you to the home page.

## Reviewing analysis results

The analysis results provide details of your source system. You can filter, sort, and export your data.

1. To check the results go to the home page and click the job you want to examine.
2. Click **View Results** to see the details of your analysis.

* * The top overview section provides details about the job and analyzed files.
  * **Analysis Statistics** displays a chart with results.
    * Use <InlineImage src="/images/box-shuttle/filtericon.png" alt="filtericon.png" />  to narrow down the results.
    * Use the buttons below the table to modify the presentation.
  * **Analysis Results** provides you with the following options:
    * **See Results in Table** displays a detailed table with the results. Use the **Filter** to narrow down the data and the  **“A...”** column to change the way longer names are displayed. You can also export the table.
    * **Export in XLSX** creates a downloadable file.
  * **Job History** shows the job runs log.

# Data-only migration

The following instructions allow you to migrate your data to a single location on the target without migrating permissions.

## Running a data-only migration

1. On the home page, click **+** to create a new job.
2. Click **Migrate Data**. The icon expands to display two options.

<Frame>
  <img src="https://mintcdn.com/product-docs/w0kz4-Qb0e_B2rGw/images/box-shuttle/image18-8.png?fit=max&auto=format&n=w0kz4-Qb0e_B2rGw&q=85&s=99fcfe6e8339661726577e184d67cf8c" alt="image18.png" width="811" height="706" data-path="images/box-shuttle/image18-8.png" />
</Frame>

* **Migrate Data** is checked by default. This job moves data from one location to another.
* **Migrate Permissions** allows you to migrate data along with permission settings.

3. Select **Migrate Data**.
4. Under **Choose source system**, click the configured **Google Drive** system. Confirm the account information, authenticate, and click **Continue**.
5. Under **Choose target system**, select the Box account as the destination.
   * If a Box system isn’t already configured, select Box under **Configure a new system**.

<Frame>
  <img src="https://mintcdn.com/product-docs/QPUs11_KFpr2PpHi/images/box-shuttle/image22.png?fit=max&auto=format&n=QPUs11_KFpr2PpHi&q=85&s=22cdbb03aa65c73593aaa57262e2151f" alt="image22.png" width="1662" height="1026" data-path="images/box-shuttle/image22.png" />
</Frame>

* Enter your Box account credentials and click **Authorize.**

* Review the permissions for Box Shuttle and click **Grant access to Box**.

* If you’ve already configured an account, confirm the account information and authentication and click **Continue**.

6. The next section prompts you to configure migrating file versions. Select **Migrate current version only** or **Migrate all versions** to continue.

<Frame>
  <img src="https://mintcdn.com/product-docs/w0kz4-Qb0e_B2rGw/images/box-shuttle/image20.png?fit=max&auto=format&n=w0kz4-Qb0e_B2rGw&q=85&s=1b6a506035fd6c8dcea21b624cffb752" alt="image20.png" width="853" height="260" data-path="images/box-shuttle/image20.png" />
</Frame>

**Note:** If you want to migrate all versions, you must migrate them in order, starting with version 1. If you choose the current version, you cannot migrate previous ones later.
7\. Under **Filters**, create a filter to include or exclude files. Use **+** to add a filter or the trash bin icon to remove an existing one. Click **Continue** to proceed.
8\. Under Select and map file locations, choose the source file locations and accounts to migrate. When you select a source file location, the choose target location box appears. Use the folder explorer <InlineImage src="/images/box-shuttle/foldericon.png" alt="foldericon.png" /> to select the target file location.

<Frame>
  <img src="https://mintcdn.com/product-docs/QPUs11_KFpr2PpHi/images/box-shuttle/image29-4.png?fit=max&auto=format&n=QPUs11_KFpr2PpHi&q=85&s=b08a42611ebd0941956ed54fbe83775c" alt="image29.png" width="890" height="556" data-path="images/box-shuttle/image29-4.png" />
</Frame>

* The <InlineImage src="/images/box-shuttle/glassicon.png" alt="GlassIcon.png" />  icon allows you to look for specific accounts to add.
* The <InlineImage src="/images/box-shuttle/eyeicon.png" alt="EyeIcon.png" />  icon allows you to switch between **Hide unchecked** and **Show all items**.
* Use the **Default folder** button to specify the default parent folder.
  * The **+ Create a new folder** button allows you to add a new folder.
  * The **Root folder** button sends your data to the root **(/)** of the designated Box target directory.

<Frame>
  <img src="https://mintcdn.com/product-docs/w0kz4-Qb0e_B2rGw/images/box-shuttle/image18.png?fit=max&auto=format&n=w0kz4-Qb0e_B2rGw&q=85&s=c0041d11238177922d9ff73b1839a54d" alt="image1.png" width="809" height="86" data-path="images/box-shuttle/image18.png" />
</Frame>

9. Click **Done** to continue.
10. The configuration summary contains the following sections:
    * actions you can perform
    * ownership and permission
    * mirror deletions that, if selected, deletes the files that are on the target but not on the source.\
      **Note**: Do not enable the mirror deletions option without understanding how it deletes data in the target location.
    * source system
    * items to migrate
    * target system details

<Frame>
  <img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image32.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=2e79be27b5beb5836098c7036fe3d539" alt="image32.png" width="870" height="1527" data-path="images/box-shuttle/image32.png" />
</Frame>

11. You can now run a **Simulation** that serves as a quality check for your data migration projects. For details, see [Simulation and transfer.](#simulation-and-transfer)

## Migrating permissions in data-only jobs

If you run a data-only job, you must manually add permissions to the data once it lands in Box. This action restores previously available access in Google Drive. Consider migrating permissions and data together. See [Data migration including permissions](#data-migration-including-permissions) for instructions.

<h1 id="data-migration-including-permissions">
  Data migration including permissions
</h1>

This type of data migration transfers not only data, but also ownership rights and permissions from one location to another.  This type migration job is suitable for comprehensive management of files, accounts, and privileges throughout the entire data migration process.

<h2 id="permission-conflicts">
  Permission conflicts
</h2>

When transferring data from Google Drive to Box, the Migrate Permissions job determines whether ownership or permissions are compatible between the two. If any permission conflicts occur between source and target, Box Shuttle provides you with the following options to choose from:

<table><thead><tr><th>Expand permissions</th><th>Adds permissions to child folders or files if they have fewer permissions than a parent.</th><th><Frame><img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image39.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=f5d5915a66e4f9a94ced24a4c2552619" alt="image39.png" width="1024" height="768" data-path="images/box-shuttle/image39.png" /></Frame></th></tr></thead><tbody><tr><td>Restrict permissions</td><td>Removes permissions from the parent folder if a child has fewer permissions than the parent.</td><td><Frame><img src="https://mintcdn.com/product-docs/w0kz4-Qb0e_B2rGw/images/box-shuttle/image19-2.png?fit=max&auto=format&n=w0kz4-Qb0e_B2rGw&q=85&s=5074739791f88f6b9bb557257aa34200" alt="image19.png" width="1024" height="768" data-path="images/box-shuttle/image19-2.png" /></Frame></td></tr><tr><td>Skip files that have conflicts</td><td>These folders or files are not transferred in the data migration because they have reduced permissions relative to a parent. They display as filtered in results.</td><td><Frame><img src="https://mintcdn.com/product-docs/QPUs11_KFpr2PpHi/images/box-shuttle/image23-3.png?fit=max&auto=format&n=QPUs11_KFpr2PpHi&q=85&s=e24b95209ba5df99675f888ac0fadd2c" alt="image23.png" width="1024" height="768" data-path="images/box-shuttle/image23-3.png" /></Frame></td></tr></tbody></table>

## Running a migration with permissions

These instructions will guide you through setting up and running a job that migrates data along with permissions.

1. On the home page, click the + icon to create a new job.
2. Click **Migrate Data**. The icon expands and displays two migration options. Select **Migrate Permissions** and click **Continue**.

<Frame>
  <img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image54.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=977add9269397a9d2a2c3f583d6c7a57" alt="image54.png" width="821" height="705" data-path="images/box-shuttle/image54.png" />
</Frame>

3. Under **Choose source system**, click the already configured **Google Drive** system. Confirm the account information, authenticate, and click **Continue**.
4. Under **Choose target system**, select the Box account as the destination. Confirm the account information, authenticate, and click **Continue**.
5. Select your file version migration: **Migrate current version only** or **Migrate all versions.**

<Frame>
  <img src="https://mintcdn.com/product-docs/w0kz4-Qb0e_B2rGw/images/box-shuttle/image20.png?fit=max&auto=format&n=w0kz4-Qb0e_B2rGw&q=85&s=1b6a506035fd6c8dcea21b624cffb752" alt="image20.png" width="853" height="260" data-path="images/box-shuttle/image20.png" />
</Frame>

If you want to migrate previous versions, you must include them all. Migrations with the current version configuration do not include previous versions, and they cannot be migrated later on.
6\. Under **Filters**, create a filter to include or exclude files. Use **+** to add a filter or the trash bin icon to remove an existing one. Click **Continue** to proceed.

7. At this point, you can choose how to resolve permission conflicts during the data transfer process. Select the option appropriate for your data migration job. See [Permission Conflicts](#permission-conflicts) for details.

<Frame>
  <img src="https://mintcdn.com/product-docs/GIZud_1VFivKpDRx/images/box-shuttle/image10-7.png?fit=max&auto=format&n=GIZud_1VFivKpDRx&q=85&s=6a9730569bc7f0d9bb2d0beba0334438" alt="image10.png" width="896" height="619" data-path="images/box-shuttle/image10-7.png" />
</Frame>

8. Under **Select and map file locations**, choose the source file locations and accounts to migrate. When selecting items, the **choose target location** button displays the available accounts in the target system for the respective selection.

<Frame>
  <img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image4.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=39121f2e1b5c08f70814f8e5a7324389" alt="image4.png" width="876" height="547" data-path="images/box-shuttle/image4.png" />
</Frame>

To migrate a Shared Drive, select a specific Shared Drive folder from the enumerated list of personal accounts and Shared Drives. The admin user applied to the Google Drive connector must have manager access for Shared Drive folders that will be migrated.

<Frame>
  <img src="https://mintcdn.com/product-docs/ZRmHMAkUChAmaGhq/images/box-shuttle/image55.png?fit=max&auto=format&n=ZRmHMAkUChAmaGhq&q=85&s=a3b7ac6d7fcd4adc21e3c91bdf524ff6" alt="image55.png" width="869" height="491" data-path="images/box-shuttle/image55.png" />
</Frame>

Sites, document libraries, and directories selected are all written to Box as directories.

* Use the **Default folder** button to specify the default parent folder.
  * The **+ Create a new folder** button allows you to add a new folder.
  * The **Root folder** button sends your data to the root **(/)** of the designated Box target directory.

9. The Migrate Permissions job examines the source to ensure source items map correctly from the source to the target.

<Frame>
  <img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image34.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=3bf2bc47b6b1b3c664e07e80180278f3" alt="image34.png" width="1760" height="190" data-path="images/box-shuttle/image34.png" />
</Frame>

* Click **Examine** to continue with the job.
* Click **Cancel** to return to the **Select and map file locations** page.

10. When the examination job finished, click **Done** to continue.

    * If Box Shuttle finds errors examining the source, see the conflicts by clicking **View Errors**. You can also **download the full list of paths** to get a **.CSV** file for your reference.  Review the list of errors for guidance on how to resolve them.
    * Click **Re-examine paths** to run the examination once again if you have made any changes. Click **Skip paths and continue** to omit the file paths and leave.
11. When the examination is complete, you return to the **Select and Map Users and Groups** page. View the list of source users and groups to map to target users and groups. Box Shuttle automatically matches identical users and groups. Click **Continue** to proceed.\
    **Note**: All displayed accounts must be mapped or deselected (marked as **skipped**) before you can continue.

<Frame>
  <img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image33.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=7307d02563b6db4678997cbb230e9bf4" alt="image33.png" width="900" height="930" data-path="images/box-shuttle/image33.png" />
</Frame>

* The mapped source users are the data owners whose accounts you selected for transfer. In addition, Box automatically matches identical collaborators from the source to the target.
* The unmapped source users and groups are collaborators for one or more items in the selected source accounts for transfer.
  * To map the source user/group to a target account, clicking the respective **choose target user** on the right. The job displays a list of the valid users or groups to which you can map the source collaborator.
  * To skip the transfer, deselect the checkbox next to a given user or group’s name to skip transfer.\
    **Note:** Do not deselect source users whose accounts were already selected for transfer (data owners). Deselecting a data owner removes their data from transfer.

12. The next step is processing to scan target users and groups. Processing confirms the owner’s and collaborators’ permissions, paths on the target, and automatically matches according to best possible fit. Click **Process** to continue and **Done** when complete.

<Frame>
  <img src="https://mintcdn.com/product-docs/W4ebz5guEzAhAYhe/images/box-shuttle/image46.png?fit=max&auto=format&n=W4ebz5guEzAhAYhe&q=85&s=85a3734a06747a92c9e68b195fe10cd5" alt="image46.png" width="875" height="94" data-path="images/box-shuttle/image46.png" />
</Frame>

13. The last step is the job summary page. It includes information about:
    * Mirror deletions checkbox that, if enabled, allows Shuttle to delete the files that are on the target but not on the source. Do not enable **Mirror Deletions** without understanding how it affects the target data. Always run and review simulation results when using Mirror Deletions.
    * Source and target system
    * Option to choose the file version to migrate
    * Option you chose for solving migration issues
    * Path and subject mappings

<Frame>
  <img src="https://mintcdn.com/product-docs/GIZud_1VFivKpDRx/images/box-shuttle/image13-5.png?fit=max&auto=format&n=GIZud_1VFivKpDRx&q=85&s=dad0becca835b01064fd31040bb3fe5f" alt="image13.png" width="673" height="1906" data-path="images/box-shuttle/image13-5.png" />
</Frame>

* **Run Simulation** performs an estimation on how this job will perform on a transfer run with its current configuration. When the simulation finishes, view the results for details on job performance. These reports include target path configurations as well as possible errors.
* **Transfer** immediately starts the data migration.\
  **Note:** Running a Simulation before starting a transfer is highly recommended.
* **Schedule** sets a specific date and time in the future for the Migrate Data job to run. This option also allows for scheduling the job behind the queue of another job running.

14. **Run Simulation** continues with a preview test run. When the simulation is complete, click **View Results** to bring up the simulation summary page. For details, see [Running a simulation.](#running-a-simulation)
15. When ready to begin, click **Transfer** to start the data migration process. Once the job has completed, view the results on the Transfer summary page. For details, see [Running a data transfer.](#running-a-data-transfer)

<h1 id="simulation-and-transfer">
  Simulation and transfer
</h1>

Box Shuttle provides a simulation option at the end of your migration configuration. Simulations allow you to get an estimate on runtime and check for potential issues or errors prior to migrating your data. Run a simulation before performing a transfer for an effective and efficient migration plan.

Some simulation incompatibilities for Box include files larger than the maximum size supported and unsupported system files, such as thumbs.db or other similar extensions.

Once a simulation is complete, view the summary of the estimated job details similar to an analysis job. Preview the simulation results to make the live transfer a more seamless experience.

When you’ve completed either a simulation or a transfer, Box Shuttle provides comprehensive results for your reference. Use the information from the summary page to guide your migration configurations.

Simulation results help you solve potential problems in the migration planning before data moves to the new target. After running a transfer, delta syncs allow you to maintain updated migration status with active users over time.

<h2 id="running-a-simulation">
  Running a simulation
</h2>

1. You can run simulations from the job summary page for any Migrate Data job configurations.
2. Click **Run Simulation** to perform a trial run of the migration job. As a result, you will get an estimate on how fast the job will run with its current configuration. When the simulation finishes, view the results for more information about potential performance of the Migrate Data job. View reports on target path configuration as well as possible errors. We recommend running a simulation prior to migrating live data.
   * **Transfer** directly starts the data migration process without a Simulation.
   * **Schedule** sets a specific date and time in the future for the Migrate Data job to run. This option also allows for scheduling the job behind the queue of another job running.
   * **Rename** lets you change the name of the simulation.
3. After completing the simulation, click **View Results**. This page contains an estimation of how much time the data transfer will take with the current configuration. Live data transfer results may differ.

   * **Simulation Statistics** displays a chart with the results. Use the filter icon <InlineImage src="/images/box-shuttle/filtericon.png" alt="filtericon.png" />   to narrow down the results. The buttons under the table allow you to modify the presentation according to your choice.
   * **Simulation Results** includes the following options:
     * **See Results in Table** displays a table with the results. Use the **Filter** to narrow down the data and the  **“A...”** column to change the way longer names are displayed. You can also export the table.
     * **Export in XLSX** creates a downloadable file.
   * **Job History** shows the job runs log.
4. Click **Done** to return to the home page or **Transfer** to start the data migration job.

<h2 id="running-a-data-transfer">
  Running a data transfer
</h2>

After completing a simulation, you can transfer data from the source to the target location.

1. Click **Transfer** to start the migration.
2. When the job begins, the status updates are available at the summary page. Click **Stop transfer** to end the migration before it is complete.
3. After the job is complete, click **View results**. This page contains statistics and information on how the data transfer performed with the current configuration.

<Frame>
  <img src="https://mintcdn.com/product-docs/ZRmHMAkUChAmaGhq/images/box-shuttle/image8-4.png?fit=max&auto=format&n=ZRmHMAkUChAmaGhq&q=85&s=3215e8917db1867db743f7e9dbef2f31" alt="image8.png" width="866" height="1860" data-path="images/box-shuttle/image8-4.png" />
</Frame>

* * **Transfer Statistics** displays a chart with the results. Use the <InlineImage src="/images/box-shuttle/filtericon.png" alt="filtericon.png" /> to narrow down the results. The buttons under the table allow you to modify the presentation according to your choice.
  * **Transfer Results** includes the following options:
    * **See Results in Table** displays a table with the results. Use the **Filter** to narrow down the data and the  **“A...”** column to change the way longer names are displayed. You can also export the table.
    * **Export in XLSX** creates a file you can download.
  * **Job History** shows the job runs log.

1. Click **Done** to return to the home page.

## Reviewing job results

When you’ve completed either a simulation or a transfer, Box Shuttle provides comprehensive results for your reference. View the results as a table in the interface or download them directly. Use the information from the summary page to guide your migration configurations.

# Reviewing audits and storage

When you’ve completed your project, you can collect data from each job. The results are available as downloadable files for record keeping. At the job’s summary page, you can download and save the files for your reference.

# Google Drive migration errors reference

Many Google Drive migration errors relate to Google Drive’s unique characteristics, such as specific metadata properties applied to files, folders and Google docs, duplicated files with the same IDs found in multiple locations throughout the tenant, or rate limiting errors.  Sections below cover Google-specific issues and contexts.

## Metadata, ownership, and permissions errors

### No permission to download a file

This error typically occurs in the following scenario:

1. A file is shared with a user through a domain link or group.
2. The user mounts the file on their **/My Drive**.
3. The user does not have permission to download the file. This may be due to the ACL for viewer or commenter permissions. Also, the user might not have access to list permissions. As a result, Box Shuttle doesn’t know whether the user has write access to the file.

### Failed to export file size

Google Docs and Google Sheets might experience the following export errors:

Google Docs: **Failed to export file size: Forbidden.**\
Google Sheets: **Failed to export file size: Bad request.**

The root cause is the same.

1. Google file is shared with a user who does not have permission to export it. This frequently happens with Google files that are shared through read-only domain links.
2. The user mounts that file on their **/My Drive.**
3. Box Shuttle tries to export the file. However, Google returns a 403 error and the above message.

The owner of the file has export permission. The owner often has that same file located in their **/My Drive** directory. In this case, the file can be exported with no permission issues through that account.

The **Failed to export file size: Forbidden** error also occurs when transferring Google Docs from a suspended user namespace.

### File not found

These files have two main characteristics.

* Source Account, or owner of the file, is different from the namespace ID, or namespace in the file location.
* Google field **capabilities\_canMoveItemOutOfDrive** is set to **false**.

The namespace user does not have permission to move the file out the current **/My Drive** location and cannot transfer the file. Remediating the break in ownership may resolve the issue.

#### User does not have permission to read revisions of a shared file

Similar to **File Not Found**, the namespace and account users are different. In this case, the Google field **capabilities\_canReadRevisions** is set to **false**, so the namespace user cannot read the versions of the file.

#### The authenticated user does not have the required access to a file

This issue may come from several causes. It is a common variant of the **User does not have permission to read revisions of this shared file** error.

## Duplicate files errors

These issues are related to duplicate files in Google Drive,

### Shared files are not included

Files and folders on Google Drive can be shared out with other users. These appear in the users **Shared with Me** drive. However, these items can be mounted in the contributor’s /**My Drive** location.

When the contributor mounts the shared file or folder on their own **/My Drive**, it exists in two distinct physical locations:  the owner’s **/My Drive** and the contributor’s **/My Drive**.

Box Shuttle transfers a single instance of each item, shares it with the applicable additional users, and filters out any additional instances of that item with the error message Shared files are not included. This eliminates data duplication on the target as well as excess byte transfer charges.

#### Transferring files that have duplicate names

Two entirely different files with different IDs may exist in the same location. For example, **/My Drive/GoogleDoc** and **/My Drive/GoogleDoc** can be in the same namespace, but be completely different files with different content.

In this case, the first document is transferred with the original path and the second document is transferred with the file ID appended to the file name. This allows Box Shuttle to sync the two documents correctly.

## Rate Limiting errors

### Google Drive rate limiting

Google Drive jobs may experience rate limiting, however, your request may be partially or completely denied at Google’s discretion. Box is not responsible for Google’s response.

Errors resulting from Rate Limiting, such as **ENOTFOUND** and **ETIMEDOUT**, may mean the affected files can transfer when the job is run again.

The following items need more requests and may increase the rate limiting incidences.

* Files and folders with extensive sharing, about 25 or more collaborators per item.
  * The item transfers; however, some or all of the sharing may not be included,
  * The item displays in the transfer report as partial-success because not all sharing is applied.

Many Google Docs migrations and file sharing transfers run without issue. For many issues, the following measures help resolve rate limiting.

* Run Google Drive jobs after normal business hours, or when users are not accessing Google Drive.
* If you are running a job with permissions, transfer the data in a data only job on one run, and apply the collaborator permissions in a separate job.
* In the event that you do hit a quota, you may not see any progress on your job for several hours, but that does not mean the job is not active.  Shuttle will regularly check on whether the quota has expired, and resume transfer when it does.  So you are better off just letting the job continue to run even if the transfer rate flatlines.
* If your jobs appear to have rate limiting with errors or high retry rates, attempt to divide the job into smaller jobs.

Several types of rate limit errors occur in Google Drive. Most affected files and their permissions transfer on re-run. Situations where Google Docs have extensive commenters may require a third attempt. These are not permanent errors and often resolve through repeated attempts.

### Access denied

This error in most cases is a rate limiting error. With Google rate limits, 403 errors are returned instead of a 429 error. These errors frequently resolve on re-run when caused by rate limiting.

<h2 id="export-errors">
  Export errors
</h2>

### Failed to export file size: File too large

The exporting API provided by Google supports a max size of 10MB for the exported file. Google Docs greater than this export size generate an error. These must be divided into smaller files to export.

### File format cannot be migrated

Google Docs, Sheets, Slides, Draw, and other Google apps can be exported. Google Forms, Maps and other apps cannot be migrated and are filtered out.

### Internal server error

Some files may experience **Internal Server** errors on export - especially Google Sites. Confirm if a downloadable file exports and experiences an error. Many Internal Server errors are persistent. These files cannot be exported and are not transferable.

## Access errors

### No support for the Google Drive app

The user may not have the Google Drive app enabled for their account. Confirm the user’s app listing at **admin.google.com**. If the Google Drive app is not enabled, they do not have any storage space enabled. In addition, Box Shuttle does not support external owners or collaborators.\
Note: Most users with the drive disabled have never activated it. Box Shuttle cannot access the data if the drive is not activated. Data may still be available and transferable if the drive is reactivated.
