SharePoint connectors
The Bonita SharePoint connectors let you interact with Microsoft SharePoint Online directly from your Bonita processes, providing operations for uploading and downloading documents, organizing folder structures, and reading and writing structured list data.
The Bonita SharePoint Connectors are available for Bonita 10.2 Community (2024.3) version and above.
|
This connector is currently in Beta. It has not yet been fully validated in production environments. We welcome your feedback — please report testing results or issues using the beta feedback form on GitHub. We are eager to collaborate with early adopters to bring this connector to General Availability. |
Overview
The SharePoint connector provides eight operations organized into two functional areas:
File & Folder Management
-
Upload File — upload files to a SharePoint document library (automatic simple/resumable upload based on file size)
-
Download File — download files from a document library as Base64
-
Create Folder — create folders in a document library
-
List Folder Contents — list files and sub-folders with filtering options
-
Delete Item — remove files or folders (to recycle bin or permanently)
Prerequisites
Before using the SharePoint connector, ensure the following:
-
A Microsoft 365 tenant with SharePoint Online enabled
-
An Entra ID (Azure AD) app registration with the required Graph API permissions
-
Admin consent granted for the application permissions
-
A SharePoint site accessible to the registered application
-
The connector extension imported into your Bonita project (see Importing the connector into Bonita Studio)
Authentication
All SharePoint connector operations share a common authentication configuration. Two authentication modes are supported, both using OAuth 2.0 Client Credentials flow via Microsoft Entra ID.
Client Secret
Provide a Tenant ID, Client ID, and Client Secret from your Entra ID app registration. This is the simplest mode, suitable for development and testing.
Client Certificate
Provide a Tenant ID, Client ID, and a PEM-encoded private key for certificate-based authentication. This mode offers higher security and is recommended for production environments.
Required Entra App Permissions
The following Microsoft Graph Application permissions must be granted (admin consent required):
| Permission | Operations enabled |
|---|---|
|
All file, folder, and list item operations on explicitly granted sites |
|
All operations on all sites (broader scope, use when |
|
Upload, download, create folder, delete, list operations |
Sites.Selected is strongly preferred — it restricts the application to explicitly granted sites. Grant it via SharePoint Admin PowerShell or the Graph API.
|
Common connection parameters
| Parameter name | Type | Required | Description | Default value |
|---|---|---|---|---|
tenantId |
String |
Yes |
Microsoft Entra ID tenant ID (GUID). Found in Azure Portal > Entra ID > Overview. |
|
clientId |
String |
Yes |
Application (client) ID of the Entra app registration. |
|
clientSecret |
String |
Conditional |
Client secret value. Required unless |
|
clientCertificatePem |
String |
Conditional |
PEM-encoded private key for certificate-based auth. Takes precedence over |
|
siteId |
String |
Yes |
SharePoint site identifier. Accepts either the Graph composite site ID ( |
|
connectTimeout |
Integer |
No |
Connection timeout in milliseconds. |
|
readTimeout |
Integer |
No |
Read timeout in milliseconds. |
|
Common outputs
All operations return the following outputs in addition to their specific outputs:
| Output name | Type | Description |
|---|---|---|
success |
Boolean |
|
errorMessage |
String |
Error details if |
File & Folder Operations
Upload File
Upload a file from a Bonita process (Base64-encoded content) to a SharePoint document library folder, returning the uploaded item’s ID and web URL. Files up to 4 MB use a simple PUT request; larger files automatically use a resumable upload session.
Inputs
| Parameter name | Type | Required | Description | Default value |
|---|---|---|---|---|
fileName |
String |
Yes |
Name of the file including extension (e.g., |
|
fileContentBase64 |
String |
Yes |
File content encoded as Base64. |
|
mimeType |
String |
Yes |
MIME type of the file (e.g., |
|
parentItemId |
String |
No |
Drive item ID of the destination folder. Use |
|
driveId |
String |
No |
ID of the target document library drive. If empty, the site’s default document library is used. |
|
conflictBehavior |
String |
No |
Behavior when a file with the same name exists: |
|
Download File
Retrieve a file’s binary content from a SharePoint document library, returning it as Base64.
Create Folder
Create a new folder within a SharePoint document library, returning the folder’s item ID for use in subsequent file operations.
Inputs
| Parameter name | Type | Required | Description | Default value |
|---|---|---|---|---|
folderName |
String |
Yes |
Name of the folder to create (e.g., |
|
parentItemId |
String |
No |
Drive item ID of the parent folder. Use |
|
driveId |
String |
No |
ID of the document library drive. If empty, the site’s default drive is used. |
|
conflictBehavior |
String |
No |
Behavior when a folder with the same name exists: |
|
List Folder Contents
List all files and sub-folders within a SharePoint document library folder, returning item IDs, names, types, sizes, and URLs.
Inputs
| Parameter name | Type | Required | Description | Default value |
|---|---|---|---|---|
parentItemId |
String |
No |
Drive item ID of the folder to list. Use |
|
driveId |
String |
No |
ID of the document library drive. If empty, the site’s default drive is used. |
|
maxResults |
Integer |
No |
Maximum number of items to return. |
|
includeFiles |
Boolean |
No |
Include non-folder files in results. |
|
includeFolders |
Boolean |
No |
Include sub-folders in results. |
|
Delete Item
Remove a file or folder from a SharePoint document library — to the recycle bin (recoverable for 93 days) or permanently. This operation is idempotent — deleting a non-existent item does not produce an error.
Inputs
| Parameter name | Type | Required | Description | Default value |
|---|---|---|---|---|
itemId |
String |
Yes |
Drive item ID of the file or folder to delete. |
|
driveId |
String |
No |
ID of the document library drive. If empty, the site’s default drive is used. |
|
permanent |
Boolean |
No |
|
|
List Item Operations
Create List Item
Create a new row in a SharePoint List with specified field values.
Inputs
| Parameter name | Type | Required | Description | Default value |
|---|---|---|---|---|
listId |
String |
Yes |
GUID or display name of the target SharePoint list. |
|
fields |
String |
Yes |
JSON object of field name/value pairs to set on the new item (e.g., |
Get List Item
Read a single row from a SharePoint List by its item ID, returning all field values as a map.
Inputs
| Parameter name | Type | Required | Description | Default value |
|---|---|---|---|---|
listId |
String |
Yes |
GUID or display name of the SharePoint list. |
|
listItemId |
String |
Yes |
Integer ID of the list item to retrieve. |
|
selectFields |
String |
No |
Comma-separated field names to return. If empty, all fields are returned. |
Outputs
| Output name | Type | Description |
|---|---|---|
fields |
Map<String, Object> |
Map of field name to value for the item. Values are typed per SharePoint column type. |
listItemId |
String |
Item ID (echoed for process variable chaining). |
createdDateTime |
String |
ISO 8601 creation timestamp. |
lastModifiedDateTime |
String |
ISO 8601 last-modified timestamp. |
Update List Item
Update one or more field values on an existing SharePoint List item (PATCH semantics — only specified fields change, omitted fields are untouched).
Inputs
| Parameter name | Type | Required | Description | Default value |
|---|---|---|---|---|
listId |
String |
Yes |
GUID or display name of the SharePoint list. |
|
listItemId |
String |
Yes |
Integer ID of the list item to update. |
|
fields |
String |
Yes |
JSON object of field name/value pairs to update (e.g., |
Error handling
The connector implements automatic retry with exponential backoff for transient errors:
| HTTP Code | Behavior |
|---|---|
400 |
Fail immediately — invalid request parameters. |
401 |
Token auto-refresh attempted; if still 401, fail. |
403 |
Fail immediately — missing permissions. |
404 |
Fail with "not found" (except delete, which returns |
409 |
Fail (unless |
423 |
Retry up to 3 times with 5-second delay (file locked by another user). |
429 |
Honor |
500/502/503 |
Retry with exponential backoff (max 5 attempts). |
Importing the connector into Bonita Studio
To use the SharePoint connector in your Bonita project:
-
Download the connector
.zipextension from the Bonita Marketplace. -
In Bonita Studio, go to the Project menu and select Extensions.
-
Click Import extension and select the downloaded
.zipfile. -
The SharePoint connector operations will appear in the connector palette when configuring a task or a process.
For more details on managing extensions, see Managing extensions in Bonita Studio.