# Microsoft SharePoint

Create, find, update and delete SharePoint list items, read lists and sites, and upload, download and organize files in document libraries.

## Connect Microsoft SharePoint

1. In the sidebar, open **Connections** and press **Add connection**.
2. Type `microsoft sharepoint` and choose **Microsoft SharePoint**.
3. Press **Sign in with Microsoft SharePoint**, then choose your account in Microsoft SharePoint’s window and allow access.

Before you sign in, the sheet asks:

- **Account type · Optional**: Which Microsoft accounts may sign in: common (work, school or personal; the default when empty), organizations (work or school only) or consumers (personal only). For your own app registered for one directory only (single tenant), its Directory (tenant) ID.

Microsoft SharePoint works with work and school accounts. Many organizations let only an administrator approve access to SharePoint sites; if the sign-in asks for approval, ask yours to grant it.

**What if it says “Microsoft SharePoint sign-in isn’t set up here”?**

Signing in with Microsoft SharePoint needs a Microsoft SharePoint app on this installation, and it has none yet.

**On Cloud:** The sheet says “It’s set up once for everyone who uses this service, not by an organization.”

**Self-hosted:** An admin of the installation sees **Set up Microsoft SharePoint sign-in** instead, and sets it up once for everyone. Everyone else sees who to ask.

1. Create an app in Microsoft SharePoint’s developer settings ([Microsoft SharePoint’s guide](https://learn.microsoft.com/entra/identity-platform/quickstart-register-app)).
2. In GoRunner, copy the **Redirect address to add in Microsoft SharePoint’s developer settings**, and add it to the app.
3. Paste the **Client ID** and **Client secret**, then press **Save and sign in**.

[Set up a sign-in app](https://docs.gorunner.io/self-host/oauth-apps#other-providers)

**Can I use my own Microsoft SharePoint app?**

Yes. In the sheet, open **Use your own Microsoft SharePoint app** and paste its **Client ID** and **Client secret**. Add the redirect address it shows to your app first. The connection then signs in through your app instead of the installation’s.

[Connections](https://docs.gorunner.io/build/connections) says how to sign in again, rename or delete it. In a product that embeds GoRunner, **Add connection** can be missing: then [your provider makes connections](https://docs.gorunner.io/embed/customer-connections) for you.

## Start a workflow

Add a trigger and choose **Microsoft SharePoint**. The trigger uses the same connection as the steps.

### On List Item Added or Changed

Checks a SharePoint list about once a minute and starts a run for each item added, or changed, since the check before. The first check after publishing only takes note of what is there (it starts nothing); changing the trigger starts over the same way. It reads every item of the list (at most 5,000), and an item deleted and restored from the recycle bin counts as added again.

- **Site · Required**: The SharePoint site.
- **List · Required**: The list to watch.
- **Trigger on · Required**: Which changes start a run. Options: Item added, Item changed, Item added or changed. Default: Item added.

A later step can use its data, such as `{{trigger.change_type}}`, `{{trigger.createdDateTime}}`, `{{trigger.fields}}` and 3 more. See [Use data from earlier steps](https://docs.gorunner.io/build/use-data-from-earlier-steps).

## Do things in Microsoft SharePoint

Add a **Microsoft SharePoint** step, choose a **Resource**, then an **Operation**. Choose a row to see its fields.

- [List Item](https://docs.gorunner.io/apps/microsoft-sharepoint#fields-f-item): Create · Get · Get Many · Update · Create or Update · Delete
- [List](https://docs.gorunner.io/apps/microsoft-sharepoint#fields-f-list): Get · Get Many
- [File](https://docs.gorunner.io/apps/microsoft-sharepoint#fields-f-file): Upload · Download · Update · Delete
- [Folder](https://docs.gorunner.io/apps/microsoft-sharepoint#fields-f-folder): Get Items · Create
- [Site](https://docs.gorunner.io/apps/microsoft-sharepoint#fields-f-site): Get · Search

Later steps read a step’s output by its name: see [Use data from earlier steps](https://docs.gorunner.io/build/use-data-from-earlier-steps).

## Limits

- A reply from Microsoft SharePoint can be up to 16 MB (a file download can have its own limit). A larger one fails the step; it is never cut short.
- When Microsoft SharePoint says to slow down (429), the step waits as long as it asks, if the step’s time allows. Otherwise it fails and says when to try again.

Not in your list? See [When an app isn’t here](https://docs.gorunner.io/apps/when-an-app-isnt-here#q-not-in-list).

## For developers

In the API, which calls apps pieces, Microsoft SharePoint is `pieceId: "microsoftsharepoint"` with `actionId: "microsoftsharepoint"`, set by `resource` and an `operation_…` field, such as `operation_file`. Its trigger is `sharepointtrigger` / `sharepoint_poll`. [Get an app](https://docs.gorunner.io/api/apps/get-app) returns every field.

It can change something outside the run (`writes_external`). See [How versions and side effects work](https://docs.gorunner.io/apps#q-versions).

### Microsoft SharePoint › List Item

### Create

- **Site · Required**: The SharePoint site.
- **List · Required**: The list.
- **Columns · Required**: The column values by internal name, such as {"Title": "Autumn launch", "Status": "Planned", "Budget": 12000}. A name with spaces is written with _x0020_ (Due_x0020_Date).

### Get

- **Site · Required**: The SharePoint site.
- **List · Required**: The list.
- **Item ID · Required**: The list item's id (a number, shown as ID in the list).
- **Columns to Return · Optional**: Internal column names, separated by commas. Empty returns every column.

### Get Many

- **Site · Required**: The SharePoint site.
- **List · Required**: The list.
- **Filter · Optional**: Only items matching this OData filter, such as fields/Status eq 'Planned'. Filtering on a column that is not indexed can fail on lists over 5,000 items.
- **Columns to Return · Optional**: Internal column names, separated by commas. Empty returns every column.
- **Return All · Optional**: Read every item, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many items to return (1–5000). Default: 50. Shows when **Return All** is off.

### Update

- **Site · Required**: The SharePoint site.
- **List · Required**: The list.
- **Item ID · Required**: The list item's id (a number, shown as ID in the list).
- **Columns · Required**: The column values by internal name, such as {"Title": "Autumn launch", "Status": "Planned", "Budget": 12000}. A name with spaces is written with _x0020_ (Due_x0020_Date).

### Create or Update

- **Site · Required**: The SharePoint site.
- **List · Required**: The list.
- **Columns · Required**: The column values by internal name, such as {"Title": "Autumn launch", "Status": "Planned", "Budget": 12000}. A name with spaces is written with _x0020_ (Due_x0020_Date).
- **Column to Match On · Required**: The column (internal name) whose value in Columns finds the item to update; no match adds a new item. Its values must be unique in the list.

### Delete

- **Site · Required**: The SharePoint site.
- **List · Required**: The list.
- **Item ID · Required**: The list item's id (a number, shown as ID in the list).

### Microsoft SharePoint › List

### Get

- **Site · Required**: The SharePoint site.
- **List · Required**: The list.

### Get Many

- **Site · Required**: The SharePoint site.
- **Return All · Optional**: Read every list, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many lists to return (1–5000). Default: 50. Shows when **Return All** is off.

### Microsoft SharePoint › File

### Upload

- **Site · Required**: The SharePoint site.
- **Library · Optional**: The document library. Empty is the site's default one (Documents).
- **Folder · Optional**: The folder. Empty is the library's top folder.
- **File Name · Optional**: The name to save it under, with its extension. Empty uses the uploaded file's own name.
- **File Content · Required**: Upload a file, or switch to an expression to use one from an earlier step (such as {{steps.download.result}}). Files over 4 MB are sent in parts.
- **If the Name Is Taken · Optional**: What to do when the folder already holds an item with this name. Options: Replace it, Keep both (add a number), Fail the step. Default: Replace it.

### Download and Delete

- **Site · Required**: The SharePoint site.
- **Library · Optional**: The document library. Empty is the site's default one (Documents).
- **File · Required**: The file.

### Update

- **Site · Required**: The SharePoint site.
- **Library · Optional**: The document library. Empty is the site's default one (Documents).
- **File · Required**: The file.
- **New Name · Optional**: A new name for the file. Empty keeps its name.
- **Replace the Content · Optional**: On: replace what the file holds with File Content. Off by default.
- **File Content · Required**: Upload a file, or switch to an expression to use one from an earlier step (such as {{steps.download.result}}). Files over 4 MB are sent in parts. Shows when **Replace the Content** is on.

### Microsoft SharePoint › Folder

### Get Items

- **Site · Required**: The SharePoint site.
- **Library · Optional**: The document library. Empty is the site's default one (Documents).
- **Folder · Optional**: The folder to list, or the one the new folder goes into. Empty is the library's top folder.
- **Return All · Optional**: Read every item, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many items to return (1–5000). Default: 50. Shows when **Return All** is off.

### Create

- **Site · Required**: The SharePoint site.
- **Library · Optional**: The document library. Empty is the site's default one (Documents).
- **Folder · Optional**: The folder to list, or the one the new folder goes into. Empty is the library's top folder.
- **Name · Required**: The new folder's name.
- **If the Name Is Taken · Optional**: What to do when the folder already holds an item with this name. Options: Replace it, Keep both (add a number), Fail the step. Default: Keep both (add a number).

### Microsoft SharePoint › Site

### Get

- **Site · Required**: The SharePoint site.

### Search

- **Search Text · Optional**: Words in the site's name or description. Empty lists every site the account can see.
- **Return All · Optional**: Read every site, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many sites to return (1–5000). Default: 50. Shows when **Return All** is off.

Source: https://docs.gorunner.io/apps/microsoft-sharepoint
