Microsoft Teams connectors
The Bonita Microsoft Teams connectors let you send messages, manage channels and teams, schedule meetings, and upload files to Microsoft Teams directly from your Bonita processes.
The Bonita Microsoft Teams 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 Microsoft Teams connector provides fourteen operations organized into five functional areas:
Messaging
-
Send Channel Message — send a text or HTML message to a Teams channel via webhook
-
Send Adaptive Card — send a rich Adaptive Card to a channel via webhook
-
Send Chat Message — send a message to a Teams chat via Graph API
-
Reply to Message — reply to a message in a Teams channel
Channels
-
List Channels — list all channels in a team
-
Create Channel — create a new channel (standard, private, or shared)
-
Delete Channel — delete a channel from a team
Teams
-
List Teams — list all teams in the organization
-
Get Team — get details of a specific team
-
Add Team Member — add a user to a team
-
Remove Team Member — remove a member from a team
Prerequisites
Before using the Microsoft Teams connector, ensure the following:
-
A Microsoft 365 tenant with Microsoft Teams enabled
-
For webhook operations: an Incoming Webhook configured in the target Teams channel
-
For Graph API operations: an Entra ID (Azure AD) app registration with the required permissions
-
Admin consent granted for application permissions
-
The connector extension imported into your Bonita project (see Importing the connector into Bonita Studio)
Authentication
The connector supports three authentication modes depending on the operation.
Webhook
Used by: Send Channel Message, Send Adaptive Card.
No Azure AD registration required. Simply configure an Incoming Webhook in the target Teams channel and use the generated URL.
App-only (Client Credentials)
Used by: List Channels, Create Channel, Delete Channel, List Teams, Get Team, Add Member, Remove Member, Upload File.
Uses an Entra ID app registration with client credentials. The connector authenticates as the application (not as a user).
Required Graph Application permissions (admin consent required):
-
Team.ReadBasic.All— list and get teams -
Channel.ReadBasic.All— list channels -
Channel.Create— create channels -
Channel.Delete.All— delete channels -
TeamMember.ReadWrite.All— add/remove team members -
Files.ReadWrite.All— upload files
App-only parameters
| Parameter name | Type | Required | Description | Default value |
|---|---|---|---|---|
tenantId |
String |
Yes |
Microsoft Entra ID tenant ID (GUID). |
|
clientId |
String |
Yes |
Application (client) ID of the Entra app registration. |
|
clientSecret |
String |
Yes |
Client secret value. |
|
connectTimeout |
Integer |
No |
Connection timeout in milliseconds. |
|
Delegated (User context)
Used by: Send Chat Message, Reply to Message, Create Meeting, Get Meeting.
Uses an Entra ID app registration with delegated permissions and an OAuth2 refresh token. Operations execute in the context of a specific user.
Required Graph Delegated permissions:
-
Chat.ReadWrite— send chat messages -
ChannelMessage.Send— reply to channel messages -
OnlineMeetings.ReadWrite— create and get meetings
Delegated parameters
| Parameter name | Type | Required | Description | Default value |
|---|---|---|---|---|
tenantId |
String |
Yes |
Microsoft Entra ID tenant ID (GUID). |
|
clientId |
String |
Yes |
Application (client) ID of the Entra app registration. |
|
clientSecret |
String |
Yes |
Client secret value. |
|
refreshToken |
String |
Yes |
OAuth2 refresh token obtained from the authorization code flow. |
|
connectTimeout |
Integer |
No |
Connection 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 |
Messaging Operations
Send Channel Message
Send a text or HTML message to a Teams channel via an Incoming Webhook.
Send Adaptive Card
Send a rich Adaptive Card (v1.4) to a Teams channel via webhook. You can use the builder parameters for simple cards, or provide raw Adaptive Card JSON for full control.
Inputs
| Parameter name | Type | Required | Description | Default value |
|---|---|---|---|---|
cardTitle |
String |
No |
Card title text. |
|
cardBody |
String |
No |
Main body text of the card. |
|
themeColor |
String |
No |
Hex color code for the card accent. |
|
factsJson |
String |
No |
JSON array of key-value facts: |
|
actionsJson |
String |
No |
JSON array of URL actions: |
|
advancedCardJson |
String |
No |
Raw Adaptive Card JSON payload. If provided, overrides the builder fields above. |
Send Chat Message
Send a message to a Teams chat conversation via the Microsoft Graph API. Requires delegated authentication.
Reply to Message
Reply to a message in a Teams channel. Requires delegated authentication.
Inputs
| Parameter name | Type | Required | Description | Default value |
|---|---|---|---|---|
teamId |
String |
Yes |
The ID of the Teams team. |
|
channelId |
String |
Yes |
The ID of the channel containing the message. |
|
messageId |
String |
Yes |
The ID of the message to reply to. |
|
replyContent |
String |
Yes |
Reply message content. |
|
contentType |
String |
No |
Message format: |
|
Channel Operations
List Channels
List all channels in a Teams team. Requires app-only authentication.
Create Channel
Create a new channel in a Teams team. Requires app-only authentication.
Inputs
| Parameter name | Type | Required | Description | Default value |
|---|---|---|---|---|
teamId |
String |
Yes |
The ID of the team to create the channel in. |
|
displayName |
String |
Yes |
Display name for the new channel. |
|
description |
String |
No |
Optional channel description. |
|
membershipType |
String |
No |
Channel type: |
|
Team Operations
Get Team
Get details of a specific Teams team. Requires app-only authentication.
Add Team Member
Add a user to a Teams team. Requires app-only authentication.
Meeting Operations
Create Online Meeting
Create a Teams online meeting. Requires delegated authentication. The meeting is created under the specified user’s calendar.
Inputs
| Parameter name | Type | Required | Description | Default value |
|---|---|---|---|---|
userId |
String |
Yes |
Azure AD user ID of the meeting organizer. |
|
subject |
String |
Yes |
Meeting subject/title. |
|
startDateTime |
String |
Yes |
Meeting start time in ISO 8601 format (e.g., |
|
endDateTime |
String |
Yes |
Meeting end time in ISO 8601 format. |
File Operations
Upload File
Upload a file to a Teams channel’s SharePoint document library folder. Requires app-only authentication.
Inputs
| Parameter name | Type | Required | Description | Default value |
|---|---|---|---|---|
teamId |
String |
Yes |
The ID of the Teams team. |
|
channelId |
String |
Yes |
The ID of the channel. |
|
fileName |
String |
Yes |
Name for the file in Teams (e.g., |
|
filePath |
String |
Conditional |
Local file path to upload. Provide either |
|
fileContent |
String |
Conditional |
Text content to upload as a file. Provide either |
Importing the connector into Bonita Studio
To use the Microsoft Teams 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 Microsoft Teams 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.