Skip to main content

Microsoft Teams Node

The Microsoft Teams node provides integration with your Microsoft Teams workspace in SkyStudio workflows. You can read and send channel messages, create meetings, share files, and run AI-powered queries. To connect, you must create an App Registration on Azure.


Connection Setup and Management

To use the Teams node, you must create an App Registration in the Azure Portal, define the required permissions, also known as Graph API permissions, and enter the generated Tenant ID, Client ID, and Client Secret information into SkyStudio.

🎬 Click to watch the video →

Creating an Azure App Registration

1. Register a New Application

  1. Sign in to portal.azure.com.
  2. Type App registrations in the search bar and go to the App registrations service.
  3. Click the + New registration button.
  4. Give the application a name, such as SkyStudio.
  5. For Supported account types, select Accounts in this organizational directory only (Single tenant).
  6. Click the Register button.

2. Copy Client ID and Tenant ID

After the application is created, the Overview page displays the following information:

  • Application (client) ID → This is your Client ID
  • Directory (tenant) ID → This is your Tenant ID

Copy both values and save them somewhere safe. You can access this information again later.

3. Create a Client Secret

  1. Go to Certificates & secrets from the left menu.
  2. In the Client secrets tab, click the + New client secret button.
  3. Enter a Description and select an Expiration period.
  4. Click the Add button.
  5. Immediately copy the value in the Value column of the generated secret.

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. If you forget to copy it, you must delete the secret and create a new one.

4. Add API Permissions

  1. Go to API permissions from the left menu.
  2. Click the + Add a permission button.
  3. Select Microsoft Graph.
  4. Select the Application permissions tab.
  5. Search for and add the required permissions for the Teams node:
PermissionDescription
Team.ReadBasic.AllUsed to read the list of teams
Channel.ReadBasic.AllUsed to read the list of channels
ChannelMessage.Read.AllUsed to read channel messages
ChannelMessage.SendUsed to send messages to channels
Chat.ReadWrite.AllUsed to read and send chat messages
OnlineMeetings.ReadWrite.AllUsed to create meetings and access meeting records
Files.ReadWrite.AllUsed to send files
User.Read.AllUsed to read user information
  1. After adding the permissions, click Grant admin consent to approve them.

Note: Admin consent requires a Microsoft 365 administrator account. If you are not authorized, ask your IT department for help.

Adding the Connection to SkyStudio

  1. Go to Application Connections from the left menu in SkyStudio.
  2. Click the Add New Connection button.
  3. Select Microsoft Teams as the provider.
  4. Fill in the following fields:
FieldDescription
Connection NameA descriptive name, such as Company Teams
Tenant IDThe Directory (tenant) ID copied from Azure
Client IDThe Application (client) ID copied from Azure
Client SecretThe secret value copied from Azure
User Email operating userThe email address of the user on whose behalf the workflow will run
  1. Click the Save button.

Assigning the Connection to the Node

After adding the Microsoft Teams node to the canvas, select the saved connection from the Application Connections dropdown in the right panel.


Operations

The Microsoft Teams node provides 12 operations:

OperationCategoryDescription
List ChannelsFeaturedLists channels in a team
Read Channel MessagesFeaturedRetrieves the message history of a specific channel
Send Channel MessageFeaturedSends a message to a specific channel
Send Chat MessageFeaturedSends a message to a specific chat
Create MeetingFeaturedCreates a new Teams meeting
Teams AI AssistantFeaturedQueries Teams data using natural language
List TeamsStandardLists all teams in the organization
List ChatsStandardLists the user’s chats
User InformationStandardRetrieves information for a specific user
List UsersStandardLists users in the organization
Send FileStandardSends a file to a channel
Meeting RecordingsStandardRetrieves recordings of a meeting

List Channels

Returns all channels in the specified team. It is used to discover Channel IDs.

Parameters

ParameterRequiredDescription
ConnectionYesThe Teams connection to use
Team IDYesID of the team whose channels will be listed

Read Channel Messages

Returns the message history of the specified channel.

Parameters

ParameterRequiredDescription
ConnectionYesThe Teams connection to use
Team IDYesID of the team that contains the channel whose messages will be read
Channel IDYesID of the channel whose messages will be read
LimitNoMaximum number of messages to return

Send Channel Message

Sends a message to the specified Teams channel. It is used in notification and report-sharing workflows.

Parameters

ParameterRequiredDescription
ConnectionYesThe Teams connection to use
Team IDYesID of the team that contains the target channel
Channel IDYesID of the channel where the message will be sent
MessageYesMessage content to send
Content TypeNoMessage type: text for plain text or html for HTML content

Send Chat Message

Sends a message to a specific Teams chat, either one-to-one or group chat.

Parameters

ParameterRequiredDescription
ConnectionYesThe Teams connection to use
Chat IDYesID of the chat where the message will be sent
MessageYesMessage content to send
Content TypeNoMessage type: text or html

Create Meeting

Creates a new Microsoft Teams meeting and returns the join link.

Parameters

ParameterRequiredDescription
ConnectionYesThe Teams connection to use
Meeting TitleYesName of the meeting
StartYesMeeting start date and time in YYYY-MM-DDTHH:MM:SS format
EndYesMeeting end date and time in YYYY-MM-DDTHH:MM:SS format
TimezoneNoTime zone, such as Europe/Istanbul
ParticipantsNoEmail addresses of participants to invite, separated by commas

Teams AI Assistant

Queries Teams data using natural language. As shown in the video transcript, you can ask questions in natural language, such as the title of your last meeting.

Parameters

ParameterRequiredDescription
ConnectionYesThe Teams connection to use
QueryYesTeams query in natural language
System PromptNoSystem instruction that customizes the AI assistant’s behavior

Usage Example

Query: "What was the title of my last meeting?"

System Prompt: "Consider only meetings from the last 7 days. Respond in Turkish."


List Teams

Lists all teams in the organization. It is used to discover Team IDs.

Parameters

ParameterRequiredDescription
ConnectionYesThe Teams connection to use

List Chats

Lists the chats, including one-to-one and group chats, that the user is included in.

Parameters

ParameterRequiredDescription
ConnectionYesThe Teams connection to use
LimitNoMaximum number of chats to return

User Information

Returns Microsoft 365 profile information for a specific user by ID or email.

Parameters

ParameterRequiredDescription
ConnectionYesThe Teams connection to use
User ID or EmailYesID or email address of the user whose information will be retrieved

List Users

Lists users in the organization. Search by name is supported.

Parameters

ParameterRequiredDescription
ConnectionYesThe Teams connection to use
SearchNoSearch filter by user name or email
LimitNoMaximum number of users to return

Send File

Sends a file to a Teams channel. File content can be provided as base64 or plain text.

Parameters

ParameterRequiredDescription
ConnectionYesThe Teams connection to use
Team IDYesID of the team that contains the target channel
Channel IDYesID of the channel where the file will be sent
File NameYesFile name and extension, such as report.pdf
Content base64 or textYesFile content. Use base64 for binary files and plain text for text files

Meeting Recordings

Returns recording information and access links for a specific meeting.

Parameters

ParameterRequiredDescription
ConnectionYesThe Teams connection to use
Meeting IDYesID of the meeting whose recordings will be retrieved

Quick Start Examples

Example 1: Daily Summary Notification

A workflow that sends a daily summary message to a specific channel every morning:

Schedule (Every day at 09:00) → HubSpot (Get Deals) → LLM (summarize) → Send Channel Message

Send Channel Message settings:

  • Team ID: {sales-team-id}
  • Channel ID: {general-channel-id}
  • Message: {{llm.output}}
  • Content Type: html

Example 2: Automatic Meeting Scheduling

A workflow that automatically creates a Teams meeting when a form is submitted:

Form Builder → Create Meeting → Send Channel Message (meeting link)

Create Meeting settings:

  • Meeting Title: {{form.topic}} - Meeting
  • Start: {{form.date}}T{{form.time}}:00
  • End: {{form.end_time}}
  • Timezone: Europe/Istanbul
  • Participants: {{form.email}}

Example 3: Meeting Query with Teams AI

A chatbot that answers meeting questions asked by the user in natural language:

Text Input → Teams AI Assistant → Text Output

Teams AI Assistant settings:

  • Query: {{input.text}}
  • System Prompt: "You are the company’s meeting assistant. Use only Teams data. Respond in Turkish."

Example 4: Sharing a File Report

A workflow that automatically sends the generated report to a Teams channel:

Schedule → Fetch Data → Artifact (create report) → Send File

Send File settings:

  • Team ID: {report-team-id}
  • Channel ID: {reports-channel-id}
  • File Name: weekly-report-{{date}}.html
  • Content base64 or text: {{artifact.output}}

Common Errors

ErrorPossible CauseSolution
401 UnauthorizedClient Secret has expired or is incorrectCreate a new Client Secret from the Azure Portal and update the SkyStudio connection
403 ForbiddenRequired API permission has not been grantedAdd the missing permission from Azure Portal → App Registration → API Permissions and click Grant admin consent
Team/Channel not foundTeam ID or Channel ID is incorrectFind the correct IDs using the List Teams and List Channels operations
Tenant ID errorIncorrect Tenant ID enteredCheck the Directory (tenant) ID from Azure Portal → App Registration → Overview
AADSTS700016Client ID cannot be foundCheck that the Application (client) ID was copied correctly

Notes

  • The default Client Secret validity period in Azure is usually 6 months or 1 year. When it expires, you must create a new secret in Azure and update the SkyStudio connection.
  • The account entered in the User Email operating user field must have access to Teams and must be a member of the organization.
  • Admin consent is required for API permissions. This action can only be performed by users with the Microsoft 365 Global Admin or Application Admin role.
  • In the Send File operation, you may need to convert large files to base64 format. You can do this in a previous node, such as LLM or Transform.
  • The Teams AI Assistant operation can query all Teams data accessible by the connected account.