> For the complete documentation index, see [llms.txt](https://docs.movebot.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.movebot.io/connections/other-connectors/sharepoint-online-with-manual-app-creation.md).

# SharePoint Online with manual app creation

See the process for connecting to SharePoint by manually creating an Entra appplication.

{% hint style="warning" %}
We recommend using Movebot's [automatic app registration](/connections/sharepoint-online.md) whenever possible. This manual process should only be used when you are unable to use the automatic method due to company policies.&#x20;
{% endhint %}

### Configuration steps

Movebot connects to SharePoint via application access. This application can be manually setup in Entra by following this guide.&#x20;

Connecting Movebot to SharePoint manually requires a few different processes.

{% hint style="success" %}
You can also follow our [step-by-step video guide below](#video-guide).&#x20;
{% endhint %}

{% stepper %}
{% step %}

### Start Movebot setup

1. Start from the SharePoint [connection page](#start-configuration-in-movebot).
2. Select "Provide manually" In Step 2 of the Connection setup.
3. Add the non-admin SharePoint domain in the field required. This will prefill the associated Tenant Domain field.&#x20;

To complete the setup in Movebot, you'll first need create an application in Entra, generate a client secret for the application, and upload a certificate from Movebot to the application.&#x20;
{% endstep %}

{% step %}

### Create an application in Entra

1. Log in to Entra as an Application Admin or Global Admin at [https://entra.microsoft.com](https://entra.microsoft.com/).&#x20;
2. Create a new App Registration by expanding **Entra ID** and choosing **App registrations**
3. Name the application. Keep the other fields as default and click Register.
4. Copy the **Application (client) ID** from the "Overview" section and paste it into Movebot.&#x20;
5. Next, give the application permissions. In Entra, select your newly-created app and then click **API Permissions --> Add a Permission**.&#x20;
6. Select **Microsoft Graph,** then Application Permissions.&#x20;

Enable the following Permissions:&#x20;

```
Directory.Read.All
Files.ReadWrite.All
SharePointTenantSettings.Read.All
Sites.Manage.All
User.ReadWrite.All
```

7. Next, add SharePoint permissions for the application. To do this, return to your app and go to **API Permissions --> Add a Permission** once more. &#x20;
8. Select **SharePoint**, then Application Permissions.&#x20;

Select the following permissions:

```
Sites.FullControl.All
```

9. Click the option to **Grant admin consent** and finish the consent process.
   {% endstep %}

{% step %}

### **Generate a client secret for the application**

Next, you need to generate the client secret. Under the configuration for the application you created:&#x20;

1. Click **Certificates and Secrets -- > Client Secrets -- > New Client Secret**.&#x20;
2. Provide a description and set an expiry period, then click **Add.** Copy the Secret from the "Value" Field.
3. Return to Movebot and paste the Secret "Value" into the appropriate field
   {% endstep %}

{% step %}

### Upload a certificate from Movebot to the application

Finally, you will need to generate and download the client certificate from Movebot and upload it to Entra for authentication.

1. In Movebot - Under Step 3, click **Generate and Download Certificate**. You should get a PEM file download from Movebot.&#x20;
2. In Entra - Click **Certificates and Secrets -- > Certificates -- > Upload Certificate**&#x20;
3. Upload the PEM file created in Step 1
4. The thumbprint in Entra should match the one shown in Movebot
5. Return to Movebot and **Click Save and Test** connection in Movebot.&#x20;
6. Wait for the **Status** to show the connection is online. Confirmation is generally done in seconds but may take a few minutes for larger SharePoint tenants.&#x20;
   {% endstep %}
   {% endstepper %}

{% hint style="info" %}
When creating an application in Entra, it can sometimes take a few minutes for the settings to populate. If testing the connection in Movebot is producing errors, give it a minute or so and then retest.&#x20;
{% endhint %}

#### Video Guide

{% embed url="<https://vimeo.com/1018147194?share=copy#t=0>" %}

#### Common Errors with Manual Setup

As manually setting up an application in Entra requires multiple steps and permissions, errors are sometimes thrown during the setup procedure.&#x20;

<details>

<summary><strong>Error: Invalid client secret provided</strong></summary>

**Cause:** The client secret value is incorrect.

**Resolution:** Double-check that you have copied and entered the **client secret value**, not the **client secret ID**. These are often confused but are different fields in Entra.

</details>

<details>

<summary><strong>Error: SCP or roles claim need to be present in the token.</strong></summary>

**Cause:** Required claims are missing from the token.

**Resolution:** Ensure all necessary API permissions are granted and that they are assigned as *Application* permissions, not *Delegated*. Also, confirm admin consent has been granted for these permissions.

</details>

<details>

<summary><strong>Error: Tenant "domain.com" not found</strong></summary>

**Cause:** The specified SharePoint Tenant Domain does not exist or is misconfigured.

**Resolution:** Verify that the tenant domain is correct. It should follow the format `yourcompany.onmicrosoft.com`&#x20;

</details>

<details>

<summary><strong>Error: Application with identifier 'a323b4ba-031...' was not found in the directory</strong></summary>

**Cause:** The application’s Client ID is incorrect or the app registration is missing.

**Resolution:** Check that the correct Client ID is being used. Refer to **Step 7** of the [configuration steps](#configuration-steps), to confirm you have provided the proper ID.

</details>

<details>

<summary><strong>Error: The certificate used to sign the client assertion is not registered</strong></summary>

**Cause:** The required certificate has not been uploaded to the application in Entra.

**Resolution:** Generate the necessary certificate and upload it to the registered application in Entra. Refer to "**Upload the certificates from Movebot**" section of [configuration steps.](#configuration-steps)

</details>

<details>

<summary><strong>Error: Could not find site (site-not-found)</strong></summary>

**Cause:** The SharePoint domain value is incorrect or the specified site does not exist.

**Resolution:** Review your SharePoint configuration settings and ensure that you have specified the correct non-admin SharePoint domain. If the domain includes '-admin,' please remove it.

</details>

### Frequently Asked Questions

<details>

<summary><strong>Can Movebot migrate data between two Microsoft 365 tenants?</strong></summary>

**Answer:** Yes. Movebot supports bidirectional migrations between Microsoft 365 tenants, including full tenant-to-tenant migrations.

</details>

<details>

<summary><strong>Can we restrict the app registration to only have access to specific users or sites?</strong></summary>

**Answer:** Yes. While this process ensures Movebot can function properly, it is still possible to restrict the app regisration to specific apps or users. See [SharePoint Online via Restricted Application Access ](/connections/other-connectors/sharepoint-online-via-restricted-application-access.md)for more details.&#x20;

</details>

<details>

<summary><strong>Why does SharePoint show more storage used than Movebot?</strong></summary>

**Answer:** SharePoint includes all previous versions of files in its reported storage usage. By default, Movebot only counts the most recent version of each file, which can result in lower reported storage.

</details>

<details>

<summary><strong>Can Movebot migrate data from a Classic SharePoint Site to a Modern Site?</strong></summary>

**Answer:** Yes. Movebot treats both Classic and Modern SharePoint sites the same. Data can be migrated seamlessly between them.

</details>

### Supported Features

| Feature                       | Supported in Movebot |
| ----------------------------- | -------------------- |
| SharePoint Document Libraries | Fully Supported      |
| OneDrive Users                | Fully Supported      |
| Permissions                   | Fully Supported      |
| Versions                      | Fully Supported      |
| Modification Retention        | Fully Supported      |
| Automatic Sanitization        | Fully Supported      |
