SharePoint Node Documentation
The SharePoint node allows you to access list data, files, and pages in your Microsoft SharePoint site from SkyStudio workflows. You can read, create, and update list items; upload and download files; and run AI-powered content queries. The connection is established using Azure App Registration.
Connection Setup and Management
To use the SharePoint node, you must create an App Registration in the Azure Portal and enter the Tenant ID, Client ID, and Client Secret information into SkyStudio together with your SharePoint Site URL.
🎬 Click to watch the video → []
Note: The Azure setup process for this node is exactly the same as Microsoft Teams and Outlook Calendar nodes. If you have already created an App Registration for one of these nodes, you can use the same information for SharePoint as well.
Creating an Azure App Registration
1. Register a New Application
- Sign in to portal.azure.com.
- Type
App registrationsin the search bar and go to the related service. - Click the + New registration button.
- Give the application a name, such as
SkyStudio. - Select Accounts in this organizational directory only (Single tenant).
- Click the Register button.
2. Copy Client ID and Tenant ID
After the application is created, go to the Overview page:
- Application (client) ID → Your Client ID
- Directory (tenant) ID → Your Tenant ID
3. Create a Client Secret
- Go to Certificates & secrets from the left menu.
- Click the + New client secret button.
- Add a Description and Expiration Date, then click Add.
- Immediately copy the generated secret’s Value field.
Critical Note: The Client Secret value is displayed only at the time it is created. After you close the page, you will not be able to access the full value again.
4. Add API Permissions
- Go to API permissions from the left menu.
- Select + Add a permission → Microsoft Graph → Application permissions.
- Add the required permissions for SharePoint:
| Permission | Description |
|---|---|
Sites.Read.All | Used to read SharePoint sites and lists |
Sites.ReadWrite.All | Used to create and update list items and upload files |
Files.Read.All | Used to read and download files |
Files.ReadWrite.All | Used to upload files |
- Click Grant admin consent to approve the permissions.
Adding the Connection to SkyStudio
- Go to Application Connections from the left menu in SkyStudio.
- Click the Add New Connection button.
- Select SharePoint as the provider.
- Fill in the following fields:
| Field | Description |
|---|---|
| Connection Name | A descriptive name, such as Company SharePoint |
| Tenant ID | The Directory (tenant) ID copied from Azure |
| Client ID | The Application (client) ID copied from Azure |
| Client Secret | The secret value copied from Azure |
| Site URL | The full URL of your SharePoint site, such as https://yourcompany.sharepoint.com/sites/mysite |
- Click the Save button.
Assigning the Connection to the Node
After adding the SharePoint node to the canvas, select the saved connection from the Application Connections dropdown in the right panel.
Tip: You can define separate connections for different SharePoint sites. You can use the same Tenant and Client information for each connection and only change the Site URL.
Operations
The SharePoint node provides 11 operations:
| Operation | Category | Description |
|---|---|---|
| Get List Items | Featured | Retrieves items from a SharePoint list with filters |
| List Files | Featured | Lists files in a specific library or folder |
| Search | Featured | Searches content across the site |
| SharePoint AI Assistant | Featured | Queries SharePoint data using natural language |
| List Sites | Standard | Lists SharePoint sites in the organization |
| Get List Item | Standard | Retrieves the details of a specific list item |
| Create List Item | Standard | Adds a new item to a list |
| Update List Item | Standard | Updates an existing list item |
| Download / Read File | Standard | Downloads a file or reads its content |
| Upload File | Standard | Uploads a file to a library |
| Read Page Content | Standard | Reads the content of a SharePoint page |
Get List Items
Queries items in a SharePoint list using an OData filter. It is used in workflows such as project tracking, task management, or data reporting.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Connection | Yes | The SharePoint connection to use |
| List Name | Yes | The name of the list to query, such as Tasks or Projects |
| Filter (OData) | No | OData filter expression, such as Status eq 'Active' |
| Select Fields | No | Field names to return, separated by commas, such as Title,Status,AssignedTo |
| Order By | No | Sorting field, such as Created desc |
| Limit | No | Maximum number of items to return |
| Get All (Auto Paginate) | No | If enabled, automatically retrieves items from all pages |
OData Filter Examples
| Filter | Description |
|---|---|
Status eq 'Completed' | Items where the Status field is “Completed” |
Priority eq 'High' | Items with high priority |
Created ge '2024-01-01T00:00:00Z' | Items created after 2024 |
contains(Title, 'project') | Items with “project” in the title |
List Files
Lists files in a specific document library or folder.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Connection | Yes | The SharePoint connection to use |
| Library Name | Yes | The name of the document library, such as Documents or Belgeler |
| Folder Path | No | Subfolder path, such as 2024/Reports. If left empty, the root directory of the library is listed |
| Limit | No | Maximum number of files to return |
Search
Searches content in the SharePoint site by keyword. It can search across all content, including list items, files, and pages.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Connection | Yes | The SharePoint connection to use |
| Search Query | Yes | Keyword or phrase to search for |
| Search In | No | Search scope selected from the dropdown menu |
| Limit | No | Maximum number of results to return |
SharePoint AI Assistant
Queries SharePoint content using natural language. As shown in the video, you can write natural language queries such as “get folder names”.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Connection | Yes | The SharePoint connection to use |
| Query | Yes | Natural language SharePoint query |
| System Prompt | No | System instruction that customizes the AI assistant’s behavior |
Usage Example
Query: "Which files were uploaded to the Documents library this month?"
System Prompt: "Show only content created within the last 30 days. Respond in Turkish."
List Sites
Lists SharePoint sites in the organization based on a search query. It is used to discover Site URLs.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Connection | Yes | The SharePoint connection to use |
| Search Query | No | Search filter by site name |
Get List Item
Retrieves all details of a specific list item using its Item ID.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Connection | Yes | The SharePoint connection to use |
| List Name | Yes | The name of the list |
| Item ID | Yes | The numeric ID of the item to retrieve |
| Select Fields | No | Field names to return, separated by commas |
Create List Item
Adds a new item to the specified SharePoint list.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Connection | Yes | The SharePoint connection to use |
| List Name | Yes | The name of the list where the item will be added |
| Fields (JSON) | Yes | Fields of the item to be created in JSON format |
Fields (JSON) Example
{
"Title": "New Project Task",
"Status": "Not Started",
"Priority": "High",
"AssignedTo": "ahmet@company.com"
}
Update List Item
Updates the fields of an existing list item.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Connection | Yes | The SharePoint connection to use |
| List Name | Yes | The name of the list |
| Item ID | Yes | The ID of the item to update |
| Fields (JSON) | Yes | Fields to update in JSON format. Enter only the fields that will be changed |
Download / Read File
Downloads a file from SharePoint or reads its content as text. It is used in AI-powered content analysis scenarios.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Connection | Yes | The SharePoint connection to use |
| Item ID (preferred) | No | The SharePoint Item ID of the file. This is the preferred method |
| File Path (fallback) | No | The relative path of the file inside the library, such as Documents/report.pdf |
| After Download | No | Action to perform after download, selected from the dropdown menu |
| AI Prompt (if extracting) | No | AI instruction for extracting content, such as "Summarize" |
Upload File
Uploads a file to a document library.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Connection | Yes | The SharePoint connection to use |
| Library Name | Yes | The name of the library where the file will be uploaded, such as Documents |
| Folder Path | No | Subfolder path where the file will be uploaded, such as 2024/Reports |
| File Name | Yes | File name and extension, such as weekly-report.pdf |
| Content (base64 or text) | Yes | File content. Use base64 for binary files and plain text for text files |
Read Page Content
Reads the content of the specified SharePoint page. It is used in knowledge base and content management workflows.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Connection | Yes | The SharePoint connection to use |
| Page Path | Yes | The relative path of the page within the site, such as /sites/mysite/SitePages/About.aspx |
Quick Start Examples
Example 1: Task List Tracking
A workflow that queries open tasks in SharePoint and sends them to a Teams channel:
Schedule (Every morning) → Get List Items → LLM (summarize) → Send Channel Message (Teams)
Get List Items settings:
- List Name:
Tasks - Filter (OData):
Status ne 'Completed' - Select Fields:
Title,Status,Priority,AssignedTo - Order By:
Priority desc
Example 2: Automatic Report Archiving
A workflow that uploads the generated weekly report to SharePoint:
Schedule (Every Friday) → Artifact (create report) → Upload File
Upload File settings:
- Library Name:
Documents - Folder Path:
Reports/2024 - File Name:
weekly-report-{{date}}.html - Content (base64 or text):
{{artifact.output}}
Example 3: SharePoint AI Chatbot
A chatbot that allows users to query SharePoint content using natural language:
Text Input → SharePoint AI Assistant → Text Output
SharePoint AI Assistant settings:
- Query:
{{input.text}} - System Prompt:
"You are the company’s SharePoint knowledge assistant. Use only SharePoint data. Respond in Turkish."
Example 4: Form → SharePoint List
A workflow that automatically saves a submitted form to a SharePoint list:
Form Builder → Create List Item
Create List Item settings:
- List Name:
Applications - Fields (JSON):
{
"Title": "{{form.full_name}}",
"Email": "{{form.email}}",
"Department": "{{form.department}}",
"Date": "{{today}}"
}
Common Errors
| Error | Possible Cause | Solution |
|---|---|---|
401 Unauthorized | Client Secret has expired | Create a new Client Secret from the Azure Portal |
403 Forbidden | Sites.ReadWrite.All permission is missing | Add the required permission from Azure → API Permissions and grant admin consent |
List not found | Incorrect List Name | Check the exact list name in SharePoint. It is case-sensitive |
Item not found | Invalid Item ID | Find the correct Item ID using Get List Items |
Site URL error | Site URL is incorrect or inaccessible | Verify that the Site URL in the connection follows the format https://company.sharepoint.com/sites/yoursite |
| Empty result | No item matches the filter condition | Check the OData filter expression and field names |
Notes
- The Site URL field is entered once during connection setup and applies to all operations using that connection. Define separate connections to access different sites.
- The List Name field is case-sensitive. Use the exact list name in SharePoint, such as
DocumentsorBelgeler. - In the Fields (JSON) field, enter only the fields you want to update. Other fields remain unchanged.
- In the Download / Read File operation, if
Item IDis not available,File Pathcan be used as a relative path. If both are entered, Item ID takes priority. - For OData filter syntax, make sure you use SharePoint internal field names. The display name may be different.
- When the Client Secret of the Azure App Registration expires, the connection stops working. It is recommended to renew it before it expires.