Reference · Tools

Microsoft SharePoint

Manage files, list items, and lists in Microsoft SharePoint Online. Download, upload, and update files in document libraries. Create, read, update, delete, and upsert list items. Retrieve list metadata.

Action (binary) Data & Storage v1 Binary data

The Microsoft SharePoint node works with document libraries and lists in SharePoint Online: downloading, uploading and updating files, and creating, reading, updating, deleting or upserting list items, plus retrieving list metadata. A typical build is syncing a system of record into a SharePoint list that the wider business already uses.

Node type
Action (binary)
Parameters
37
Outputs
Output, Error
Credentials
Microsoft OAuth2

Microsoft SharePoint

Manage files, list items, and lists in SharePoint Online

Overview

Manages files, list items and lists in SharePoint Online through the Microsoft Graph API, across three resources. File covers download, upload and update in a document library. Item covers create, get, get many, update, upsert and delete for list items. List covers reading a single list or every list on a site.

File download produces binary data on the output item; file upload and content update consume binary data from an upstream node. Item operations support OData filtering, response simplification, field selection, and upsert keyed on matching columns. List operations paginate and simplify. Authentication is Microsoft OAuth2, with tokens refreshed automatically.

Category: Data & Storage
Tool Name: microsoft_sharepoint
Version: 1

Appearance: Icon: lucide-HardDrive | Color: #038387

Node Type

Action (Binary) — handles file/binary data operations

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Microsoft OAuth2 credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Filefile
Itemitem
Listlist

Operations

The available operations depend on the selected resource — file operations first, then item, then list.

OperationValueDescription
DownloaddownloadDownload a file from a document library
UpdateupdateUpdate a file name and/or content
UploaduploadUpload a file to a document library folder
CreatecreateCreate an item in a list
Create or UpdateupsertCreate a new item or update an existing one (upsert)
DeletedeleteDelete an item from a list
GetgetRetrieve a single item from a list
Get ManygetAllRetrieve multiple items from a list
UpdateupdateUpdate an item in a list
GetgetRetrieve details of a single list
Get ManygetAllRetrieve all lists from a site

Parameters

File: Download

ParameterTypeRequiredDefaultDescription
Parent Folder IDstringYesThe drive item ID of the parent folder. Used for context; the download uses fileId directly.
File IDstringYesThe drive item ID of the file to download. Supports expressions.
Binary PropertystringYesdataName of the binary property to write the downloaded file to. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use.

File: Update

ParameterTypeRequiredDefaultDescription
Parent Folder IDstringYesThe drive item ID of the parent folder.
File IDstringYesThe drive item ID of the file to update. Supports expressions.
Updated File NamestringNoIf not specified, the original file name will be used.
Change File ContentbooleanYesfalseWhether to replace the file contents with new binary data.
Binary PropertystringYesdataName of the binary property containing the new file content. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use. (shown when Change File Content is true)

File: Upload

ParameterTypeRequiredDefaultDescription
Parent Folder IDstringYesThe drive item ID of the destination folder.
File NamestringYesThe name for the uploaded file. Supports expressions.
Binary PropertystringYesdataName of the binary property containing the file data to upload. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use.

Item: Create

ParameterTypeRequiredDefaultDescription
Fields (JSON)jsonYes{}Column values as a JSON object, e.g. {“Title”: “My Item”, “Status”: “Active”}. URL-type columns should be wrapped as {“Description”: “url”, “Url”: “url”}. Unsupported column types: Hyperlink, Location, Metadata.

Item: Create or Update

ParameterTypeRequiredDefaultDescription
Fields (JSON)jsonYes{}Column values as a JSON object. Include matching column values for lookup.
Matching ColumnsstringYesComma-separated column names to match existing items (e.g. “Title” or “id”). If “id” is included and has a value, it is used directly.

Item: Delete

ParameterTypeRequiredDefaultDescription
Item IDstringYesThe ID of the item to delete. Supports expressions.

Item: Get

ParameterTypeRequiredDefaultDescription
Item IDstringYesThe ID of the item to retrieve. Supports expressions.
SimplifybooleanNotrueWhether to strip OData metadata from the response.

Item: Get Many

ParameterTypeRequiredDefaultDescription
Filter by FormulastringNoOData $filter expression (e.g. “fields/Title eq ‘item1’”). If empty, all items are returned.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)
SimplifybooleanNotrueWhether to strip OData metadata from the response.
OptionscollectionNo{}Extra response-shaping options.
— FieldsmultiOptionsNo[]The fields to include in the output (only when Simplify is off).
Options: contentType, createdDateTime, createdBy, fields, id, lastModifiedDateTime, lastModifiedBy, parentReference, webUrl

Item: Update

ParameterTypeRequiredDefaultDescription
Fields (JSON)jsonYes{}Column values to update as a JSON object.
Matching ColumnsstringYesidComma-separated column names to identify the target item (e.g. “id” or “Title”). If “id” is included and has a value in fields, it is used directly.

Item: All Operations

ParameterTypeRequiredDefaultDescription
List IDstringYesThe SharePoint list ID. Supports expressions.

List: Get

ParameterTypeRequiredDefaultDescription
List IDstringYesThe SharePoint list ID. Supports expressions.
SimplifybooleanNotrueWhether to limit response fields for cleaner output.

List: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)
SimplifybooleanNotrueWhether to limit response fields for cleaner output.

All Operations

ParameterTypeRequiredDefaultDescription
Microsoft AccountcredentialNoConnect your Microsoft account via OAuth2.
Site IDstringYesThe SharePoint site ID. Find this in the SharePoint admin center or via the Graph API /sites endpoint. Supports expressions.
Max ConcurrencynumberNo10Maximum number of items to process concurrently.

Output Data

Results are merged into the input item’s JSON, so the incoming fields stay available downstream, and binary data on the input item is forwarded.

OperationOutput
file / downloadOne item whose JSON is unchanged; the file is written to the binary property you named, alongside any binary already on the item. The file name comes from the download response.
file / upload, updateOne item carrying the drive item’s metadata (id, name, size, webUrl, timestamps …).
item / create, upsert, updateOne item carrying the list item as SharePoint returned it, including its id and fields object.
item / getOne item carrying the requested list item.
item / deleteOne item carrying deleted: true.
item / getAllOne item per list item. When nothing matches, one item carrying an empty results array.
list / getOne item carrying the list’s metadata (id, name, displayName, description, webUrl, timestamps).
list / getAllOne item per list on the site. When the site has no lists, one item carrying an empty results array.

A simplified list item looks like this:

{
  "id": "123",
  "createdDateTime": "2024-01-15T09:30:00Z",
  "lastModifiedDateTime": "2024-01-20T14:02:11Z",
  "webUrl": "https://contoso.sharepoint.com/sites/Team/Lists/Tasks/123_.000",
  "fields": { "Title": "New Task" }
}

Simplify trims the response to id, the two timestamps, webUrl and the Title field, and strips OData annotations. Turn it off to receive the full record — and, for Get Many, to choose exactly which properties come back via Options → Fields.

Read column values downstream with expressions such as {{ $json.fields.Title }}.

Usage Examples

  • Download a file from a SharePoint document library
  • Upload a binary file to a SharePoint folder
  • Update a file name and content in SharePoint
  • Create a new item in a SharePoint list
  • Get all items from a SharePoint list with filtering
  • Update list item fields by matching columns
  • Upsert a list item (create or update)
  • Delete a list item from SharePoint
  • Get details of a SharePoint list
  • List all lists in a SharePoint site

Example Configuration

Download a file into a named binary property:

{
  "type": "microsoft_sharepoint",
  "parameters": {
    "resource": "file",
    "operation": "download",
    "siteId": "contoso.sharepoint.com,guid1,guid2",
    "folderId": "{{ $json.folderId }}",
    "fileId": "{{ $json.fileId }}",
    "binaryPropertyName": "fileData"
  }
}

Upload binary data from an upstream node:

{
  "type": "microsoft_sharepoint",
  "parameters": {
    "resource": "file",
    "operation": "upload",
    "siteId": "contoso.sharepoint.com,guid1,guid2",
    "folderId": "destination-folder-id",
    "fileName": "document.pdf",
    "binaryPropertyName": "data"
  }
}

Rename a file without touching its contents:

{
  "type": "microsoft_sharepoint",
  "parameters": {
    "resource": "file",
    "operation": "update",
    "siteId": "contoso.sharepoint.com,guid1,guid2",
    "folderId": "folder-drive-item-id",
    "fileId": "file-drive-item-id",
    "fileName": "new-filename.docx",
    "changeFileContent": false
  }
}

Replace both the name and the contents:

{
  "type": "microsoft_sharepoint",
  "parameters": {
    "resource": "file",
    "operation": "update",
    "siteId": "contoso.sharepoint.com,guid1,guid2",
    "folderId": "folder-drive-item-id",
    "fileId": "file-drive-item-id",
    "fileName": "updated-document.pdf",
    "changeFileContent": true,
    "binaryPropertyName": "newContent"
  }
}

Create a list item:

{
  "type": "microsoft_sharepoint",
  "parameters": {
    "resource": "item",
    "operation": "create",
    "siteId": "contoso.sharepoint.com,guid1,guid2",
    "listId": "your-list-id",
    "fields": "{\"Title\": \"{{ $json.title }}\", \"Status\": \"In Progress\", \"Priority\": \"High\"}"
  }
}

Create the item, or update it if one with the same Title already exists:

{
  "type": "microsoft_sharepoint",
  "parameters": {
    "resource": "item",
    "operation": "upsert",
    "siteId": "contoso.sharepoint.com,guid1,guid2",
    "listId": "your-list-id",
    "matchingColumns": "Title",
    "fields": "{\"Title\": \"Project Update\", \"Status\": \"Completed\"}"
  }
}

Read a page of items matching an OData filter:

{
  "type": "microsoft_sharepoint",
  "parameters": {
    "resource": "item",
    "operation": "getAll",
    "siteId": "contoso.sharepoint.com,guid1,guid2",
    "listId": "your-list-id",
    "filter": "fields/Status eq 'Active'",
    "returnAll": false,
    "limit": 50,
    "simplify": false,
    "options": {
      "fields": ["id", "fields", "createdDateTime", "webUrl"]
    }
  }
}

Update an item addressed by its ID:

{
  "type": "microsoft_sharepoint",
  "parameters": {
    "resource": "item",
    "operation": "update",
    "siteId": "contoso.sharepoint.com,guid1,guid2",
    "listId": "your-list-id",
    "matchingColumns": "id",
    "fields": "{\"id\": \"{{ $json.id }}\", \"Status\": \"Completed\"}"
  }
}

Delete an item:

{
  "type": "microsoft_sharepoint",
  "parameters": {
    "resource": "item",
    "operation": "delete",
    "siteId": "contoso.sharepoint.com,guid1,guid2",
    "listId": "your-list-id",
    "itemId": "{{ $json.id }}"
  }
}

List every list on the site:

{
  "type": "microsoft_sharepoint",
  "parameters": {
    "resource": "list",
    "operation": "getAll",
    "siteId": "contoso.sharepoint.com,guid1,guid2",
    "returnAll": true,
    "simplify": true
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Download, upload, and update files; create, read, update, delete, and upsert list items; retrieve list metadata in SharePoint Online via Microsoft Graph API.

  • Site ID is a composite value. It looks like contoso.sharepoint.com,<guid>,<guid>; take it from the SharePoint admin center or the Graph /sites endpoint.
  • Matching Columns drives Upsert and Update. Naming id uses the value straight from your Fields JSON; naming ordinary columns runs a lookup first, and the operation fails if the columns match no existing item. Update always requires a match; Upsert creates a new item when there is none.
  • id is never written. It is removed from the payload before the request, so it can identify the row without also being treated as a column value.
  • URL columns need an object. Wrap them as {"Description": "Display text", "Url": "https://example.com"}. Hyperlink, Location and Metadata columns are not supported.
  • Simplify trims aggressively. It is convenient, but it drops every column other than Title. Turn it off — and use Options → Fields on Get Many — when you need the rest.
  • Update always issues a rename request for files, even when Updated File Name is blank; only the contents change when Change File Content is on.
  • Get Many fans out — each list item or list becomes its own workflow item.

Frequently asked questions

What does the Site ID look like?

It is a composite value shaped like `contoso.sharepoint.com,<guid>,<guid>`. Take it from the SharePoint admin center or the Graph `/sites` endpoint rather than trying to construct it.

How does upsert decide what to match?

Matching Columns drives it. Naming `id` uses the value straight from your Fields JSON; naming ordinary columns runs a lookup first, and the operation fails if the columns you named do not match anything usable.

Can it handle files as well as list data?

Yes — download, upload and update in document libraries, alongside the full list-item operations.

Which credential does it need?

A Microsoft OAuth2 credential with permission for the site and lists you are targeting.

Build with the Microsoft SharePoint node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Microsoft OAuth2 credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.