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

# Integrate with OneDrive

> Upload files to Drive and create new folders straight from the Next Matter workflow.

## Before you begin

<Accordion title="Prepare to connect to Microsoft">
  As part of the integration, you need to allowlist the Next Matter domain and create a service account. [See if you've completed all the required steps](/docs/integrate-with-microsoft).
</Accordion>

* Get your OneDrive drive ID. You'll need it in the step configuration. To get the ID:

1. Sign in to [https://developer.microsoft.com/graph/graph-explorer](https://developer.microsoft.com/graph/graph-explorer).

2. Select GET as the method, and provide the following URL: `GET https://graph.microsoft.com/v1.0/users/{user-id}/drives`

   <Accordion title="Alternative endpoints">
     <CodeGroup>
       ```yaml Yaml theme={null}
       GET /groups/{groupId}/drives //To fetch the drives within a group  
       GET /sites/{siteId}/drives //To fetch drives for a particular site 
       GET /me/drives //To list the current user's drive
       ```
     </CodeGroup>

     For information on how to find site ID, see [Create a list in Sharepoint](create-a-list-in-sharepoint).
   </Accordion>

3. View the JSON response for the value of the **id** parameter.

* It might also happen that a placeholder can be replaced by a data reference of the data provided in one of the previous steps. That's why it's a good idea to learn more about [Data references](/docs/use-data-references).

## Upload a file to OneDrive

1. In your Next Matter workflow, click **+Add step** and select **Integration > Custom integration**.
2. Click **Settings** to configure the step.
3. Select Microsoft OneDrive in **Authorization**.
4. Enter the following details:
   * **Method**: PUT
   * **URL**: `https://graph.microsoft.com/v1.0/drives/DRIVE_ID/items/PARENT_ID:/FILE_NAME:/content`

     <Info>
       The `PARENT_ID` is the name of the parent (folder) directory that the file will be inserted to.
     </Info>
   * **Body type**: Binary
   * In the **Body** enter the data reference to the file you want to upload.
5. Save your changes.

## Create a new folder in OneDrive

1. In your Next Matter, click **+Add step** and select **Integration > Custom integration**.
2. Click **Settings** to configure the step.
3. Select Microsoft OneDrive in **Authorization**.
4. Enter the following details:

   * **Method**: PUT
   * **URL**: `https://graph.microsoft.com/v1.0/drives/DRIVE_ID/items/PARENT_FOLDER_ID/children` You can find the info on how to find the DRIVE\_ID in the **Before you begin** section. The PARENT\_FOLDER\_ID is the name of the parent folder. It might also be `root`.
   * **Headers**: Content-Type: application/json
   * In the **Body** enter the name of the folder to create. For example:

   <CodeGroup>
     ```json JSON theme={null}
     {
         "name": "FOLDER_NAME",//replace the placeholder with the name of your folder
         "folder": {}
     }
     ```
   </CodeGroup>
5. Add a folder ID variable with the value of `$.id`.
6. Save your changes.

## Copy a file from one folder to the next

1. In your Next Matter workflow, click **+Add step** and select **Integration > Custom integration**.

2. Click **Settings** to configure the step.

3. Select Microsoft OneDrive in **Authorization**.

4. Enter the following details:

   * **Method**: POST
   * **URL**: `https://graph.microsoft.com/v1.0/me/drive/items/SOURCE_FOLDER_NAME/FILE_NAME:/copy`
   * **Headers**: Content-Type: application/json
   * In the **Body** enter the name of the folder to create. For example:

   <CodeGroup>
     ```json JSON theme={null}
     {
       "parentReference": {
         "path": "drive/root:/DESTINATION_FOLDER_ID"/ you can find the ID by using Search File or Folder in Microsoft
       },
       "name": "NEW_FILE_NAME"//enter a new name for the copied file
     }
     ```
   </CodeGroup>

5. Save your changes.
