Skip to content
Docs
Files & storage

OneDrive and SharePoint

Let hires find and read files in OneDrive and SharePoint document libraries, and upload, share or delete only as you allow.

Explore 6 actions and their permissionsExact inputs, sign-in scopes, access limits and approval rules.

With OneDrive and SharePoint, a hire can:

  • find files by the words in their name or content,
  • list what's in a folder,
  • read a file as text: Word, Excel, PowerPoint and OpenDocument files, which Roster turns into text itself, and text files (txt, md, csv, json…). Of a large text file it reads the start. Other files (PDFs, images) show their name, size and date only, never their content.

If you allow changes, a hire can also:

  • upload text as a file. It never overwrites a file: replacing one asks a person first.
  • make a sharing link to a file, view only, for people in your organisation or for anyone, for up to a year (30 days unless it says otherwise). This always asks a person first.
  • delete a file. This always asks a person first. It goes to the recycle bin.

Hires never see the sign-in. Passwords and keys written inside files are hidden from hires when they read them.

1. Register an app in Microsoft Entra

If you already registered one for Outlook or Outlook Calendar, use the same app: add the permissions below, and use its client ID and secret here too.

  1. Open entra.microsoft.com: App registrations → New registration.
  2. Supported account types: this organisation only, for one company.
  3. Redirect URI: Web, the address Roster shows on the connection. It ends in /api/integrations/onedrive/oauth/callback.
  4. API permissions → Add a permission → Microsoft Graph → Delegated: Files.Read.All and Sites.Read.All, or Files.ReadWrite.All and Sites.ReadWrite.All to allow changes; and offline_access. Grant admin consent if your organisation asks for it.
  5. Certificates & secrets → New client secret. Copy the secret's value and the Application (client) ID.

2. Connect it in Roster

  1. Open Integrations → Tools → Add a tool, search for OneDrive and choose OneDrive and SharePoint.
  2. Paste the client ID and secret, and your Tenant (your organisation's domain or tenant ID).
  3. What hires may do: Find and read files, or also upload, share and delete. Changing this later means connecting again.
  4. Click Connect with OneDrive and SharePoint and sign in.

Hires see what that Microsoft account can see. Sign in with an account made for Roster, with access only to what hires should use.

3. Give hires access

On the hire's Tools tab, click Give access on OneDrive and SharePoint. Read only gives the reading tools; Read and write adds upload, links and delete (if the connection allows changes).

  • Drives and folders, one per line:

    • me: the signed-in account's own OneDrive,
    • a SharePoint site, like contoso.sharepoint.com/sites/Finance (its documents library),
    • or a drive ID,
    • each with an optional folder after :, like me:/Clients or contoso.sharepoint.com/sites/Finance:/Invoices/2026.

    Files in subfolders count. Leave it empty for everything the account can see (searches then look in its own OneDrive).

When it asks first

What the hire doesAsks a person
Makes a sharing linkalways
Deletes a filealways
Uploads a file with a taken nameonly when it asks to replace the old file

You can change this per hire on the hire's Tools tab, under When it asks first.

If something goes wrong

  • "Isn't connected yet": click Connect with OneDrive and SharePoint on the connection.
  • A site can't be found: check the site's address, and that the signed-in account can open it.
  • Links for anyone fail: your organisation may allow only links for people inside it.
  • A PDF isn't read: PDFs aren't read as text yet.

Tools and permissions reference

This reference is built from the same definitions Roster uses to connect OneDrive and SharePoint and give hires access. It updates with each release.

Authentication and requested permissions

The account or app you connect sets the outer limit. Each hire's access can narrow it further. Connecting a tool gives it to no hire until you give access on that hire's Tools tab.

OAuth 2.0

The Application (client) ID of the app you registered for Roster in Microsoft Entra.

For: What hires may do: Find and read files.

Requested scopes:

  • offline_access
  • Files.Read.All
  • Sites.Read.All

OAuth 2.0

The Application (client) ID of the app you registered for Roster in Microsoft Entra.

For: What hires may do: Also upload, share (asks first) and delete (asks first).

Requested scopes:

  • offline_access
  • Files.ReadWrite.All
  • Sites.ReadWrite.All

Connection fields

OneDrive and SharePoint connection fields
FieldWhat to provide
OAuth app client ID
clientId
Optional
The Application (client) ID of the app you registered for Roster in Microsoft Entra.
OAuth app client secret
clientSecret
Optional · sealed secret
Use the value for your account or connection.
Tenant
tenant
Optional
Your Microsoft 365 organisation's tenant ID or domain (in Microsoft Entra → Overview). Leave it as common to let any work, school or personal account sign in.

Starts with: common.

What hires may do
access
Optional
Read only asks Microsoft for less, and hires get no tool that changes anything. Changing this may mean signing in again.

Choices: Find and read files (read); Also upload, share (asks first) and delete (asks first) (write).

Starts with: read.

Per-hire limits

Read-only hires receive only actions that read. Read-and-write access also allows actions that change things, where the connection itself permits them. An empty resource allowlist usually means everything the connected account can reach; each field below explains its meaning.

OneDrive and SharePoint per-hire limits
FieldWhat to provide
Drives and folders
drives
Optional
me for the signed-in person's OneDrive, a SharePoint site like contoso.sharepoint.com/sites/Finance, or a drive ID; add :/folder to keep the hire to a folder (me:/Clients). Leave empty for everything the account can see.

Actions

6 actions: 3 only read and 3 change something. A read action may still need approval when your workspace or hire is set to ask. A locked approval requirement always applies.

6 of 6 actions. Open an action for its arguments and full input schema.

search_filesRead only

Find files in OneDrive by words in their name or content, optionally inside one folder.

Approval: Uses your workspace and hire approval settings.

Arguments for search_files
ArgumentTypeDetails
textRequiredstringwords to look for
folderOptionalstringa folder's ID, in [brackets] in list_folder and search_files
limitOptionalintegerSee input schema below.Default: 20
Full input schema (JSON)
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "words to look for"
    },
    "folder": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1024,
      "description": "a folder's ID, in [brackets] in list_folder and search_files"
    },
    "limit": {
      "default": 20,
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    }
  },
  "required": [
    "text"
  ]
}
list_folderRead only

What's directly inside a OneDrive folder: files and subfolders, newest first where OneDrive sorts.

Approval: Uses your workspace and hire approval settings.

Arguments for list_folder
ArgumentTypeDetails
folderOptionalstringa folder (ID); leave out for the top
limitOptionalintegerSee input schema below.Default: 50
Full input schema (JSON)
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "folder": {
      "description": "a folder (ID); leave out for the top",
      "type": "string",
      "minLength": 1,
      "maxLength": 1024
    },
    "limit": {
      "default": 50,
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    }
  }
}
read_fileRead only

Read a OneDrive file as text: text files (the start of large ones), Word, Excel, PowerPoint and OpenDocument files. Other files (PDFs, images) show their details only.

Approval: Uses your workspace and hire approval settings.

Arguments for read_file
ArgumentTypeDetails
fileRequiredstringthe file's ID, in [brackets] in list_folder and search_files
Full input schema (JSON)
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "file": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1024,
      "description": "the file's ID, in [brackets] in list_folder and search_files"
    }
  },
  "required": [
    "file"
  ]
}
upload_fileRead and write

Save text as a file in a OneDrive folder (a note, a CSV, a Markdown report). It never overwrites: if the name is taken it says so, and replace: true replaces the file after a person approves.

Approval: when it would replace a file that's already there.

Available with: What hires may do: Also upload, share (asks first) and delete (asks first).

Arguments for upload_file
ArgumentTypeDetails
folderRequiredstringa folder's ID, in [brackets] in list_folder and search_files
nameRequiredstringthe file's name with its extension, like summary.md or rates.csv
textRequiredstringthe file's whole content, as text
replaceOptionalbooleanreplace a file of the same name (asks a person first)Default: false
Full input schema (JSON)
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "folder": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1024,
      "description": "a folder's ID, in [brackets] in list_folder and search_files"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "the file's name with its extension, like summary.md or rates.csv"
    },
    "text": {
      "type": "string",
      "maxLength": 1000000,
      "description": "the file's whole content, as text"
    },
    "replace": {
      "default": false,
      "description": "replace a file of the same name (asks a person first)",
      "type": "boolean"
    }
  },
  "required": [
    "folder",
    "name",
    "text"
  ]
}
share_linkRead and write

Make a link to a OneDrive file for people in the organisation, or anyone who has it, lasting up to 365 days. It waits for a person's approval: Roster asks in the thread and makes the link, once, when they approve.

Approval: Always asks for approval.

Available with: What hires may do: Also upload, share (asks first) and delete (asks first).

Arguments for share_link
ArgumentTypeDetails
fileRequiredstringthe file's ID, in [brackets] in list_folder and search_files
audienceOptional"organization" | "anyone"anyone with the link, or only people signed in to the organisationDefault: "organization"
expires_in_daysOptionalintegerwhen the link stops workingDefault: 30
Full input schema (JSON)
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "file": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1024,
      "description": "the file's ID, in [brackets] in list_folder and search_files"
    },
    "audience": {
      "default": "organization",
      "description": "anyone with the link, or only people signed in to the organisation",
      "type": "string",
      "enum": [
        "organization",
        "anyone"
      ]
    },
    "expires_in_days": {
      "default": 30,
      "description": "when the link stops working",
      "type": "integer",
      "minimum": 1,
      "maximum": 365
    }
  },
  "required": [
    "file"
  ]
}
delete_fileRead and write

Delete a OneDrive file (to the recycle bin). It waits for a person's approval: Roster asks in the thread and deletes it, once, when they approve. Folders aren't deleted here.

Approval: Always asks for approval.

Available with: What hires may do: Also upload, share (asks first) and delete (asks first).

Arguments for delete_file
ArgumentTypeDetails
fileRequiredstringthe file's ID, in [brackets] in list_folder and search_files
Full input schema (JSON)
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "file": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1024,
      "description": "the file's ID, in [brackets] in list_folder and search_files"
    }
  },
  "required": [
    "file"
  ]
}

Watches and incoming events

  • No built-in watch is declared. Give a hire a scheduled responsibility if it should check this service regularly.
  • No incoming webhook handler is declared for this integration.

Limits and troubleshooting

  • Permission errors: check both the connected account's rights and the hire's resource and read/write limits.
  • Expired or revoked access: reconnect or replace the key on the connection.
  • Rate limits and unavailable services can interrupt work. The hire's timecard records the outcome.
  • The action schema describes accepted inputs. It does not grant additional access or bypass approvals.

Service documentation · Integration source reference

On this page