Microsoft Teams
Microsoft Teams is a collaboration platform used for team-based chat, channels, meetings, and shared communication across Microsoft 365 workspaces.
The Flowgear Microsoft Teams Node lets you discover joined teams and channels, read root channel messages, and post new root messages through Microsoft Graph when a Workflow needs to monitor or participate in Teams conversations.
Revision History
0.1.0.0 - Added eager startup and lazy continuation for list invokes.
0.0.0.5 - Aligned the V2 connector contract and public help article.
0.0.0.1 - Initial release with delegated Microsoft Graph support for listing teams, listing channels, listing channel messages, and posting root channel messages.
0.0.0.2 - Updated the help content and aligned tenant-default and request-validation behavior with the verified Teams implementation.
0.0.0.3 - Clarified root-message-only list behavior and documented zero-row list results.
0.0.0.4 - Refreshed the public article and aligned the published version with the current Teams node package.
Connection
This Connection stores delegated Microsoft Graph OAuth settings and optional default team and channel selectors that methods can use when you omit explicit IDs or display names.
| Property | Type | Description |
|---|---|---|
Tenant ID |
String | Microsoft Entra tenant identifier. Use common for delegated sign-in across work or school tenants. |
Client ID |
String | Application client identifier from the Microsoft Entra app registration. |
Client Secret |
Masked | Application secret used for delegated token exchange and refresh. |
Default Team ID |
String | Optional Microsoft Teams team identifier used when no TeamID is supplied. |
Default Team Display Name |
String | Optional exact team display name used when TeamID is omitted. |
Default Channel ID |
String | Optional channel identifier used when no ChannelID is supplied. |
Default Channel Display Name |
String | Optional exact channel display name used when ChannelID is omitted. |
Scopes |
String | Delegated Microsoft Graph scopes requested for Teams operations. |
Access Token |
Masked | Delegated OAuth access token returned by Microsoft Graph. |
Refresh Token |
Masked | Delegated OAuth refresh token returned by Microsoft Graph. |
Setup Notes
- Configure a Microsoft Entra app registration for delegated Microsoft Graph access.
Client IDandClient Secretare required. If you leaveTenant IDblank, the Node usescommon.- If you leave
Scopesblank, the Node usesopenid profile offline_access Team.ReadBasic.All Channel.ReadBasic.All ChannelMessage.Read.All ChannelMessage.Send. - Configure default team or channel values on the Connection if you want templates and method calls to prefill selectors.
- The Connection test validates delegated access by acquiring a token and listing joined teams.
Methods
These methods help you discover teams and channels, list root channel messages, and post root channel messages.
ListTeams
Lists the Microsoft Teams teams joined by the authenticated user.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | Microsoft Teams connection details including delegated Microsoft Graph authentication. |
| Return | Type | Description |
|---|---|---|
Teams |
Array | Joined team rows with provider details such as id, displayName, description, isArchived, tenantId, and raw. Query rows do not include mutation-style default fields. |
ListChannels
Lists channels for a team selected by ID, exact display name, or the Connection default.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | Microsoft Teams connection details including delegated Microsoft Graph authentication. |
TeamID |
String | Team identifier. Preferred when known. Uses the Connection default team when omitted. |
TeamDisplayName |
String | Exact team display name used when TeamID is not supplied. |
| Return | Type | Description |
|---|---|---|
Channels |
Array | Channel rows with fields such as id, displayName, description, membershipType, createdDateTime, isArchived, teamId, and raw. Query rows do not include mutation-style default fields. |
ListChannelMessages
Lists root messages for a channel selected by ID, exact display name, or the Connection default.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | Microsoft Teams connection details including delegated Microsoft Graph authentication. |
ChannelID |
String | Channel identifier. Preferred when known. Uses the Connection default channel when omitted. |
ChannelDisplayName |
String | Exact channel display name used when ChannelID is not supplied. |
TeamID |
String | Team identifier that owns the target channel. Uses the Connection default team when omitted. |
TeamDisplayName |
String | Exact team display name used when TeamID is not supplied. |
| Return | Type | Description |
|---|---|---|
Messages |
Array | Root channel messages with fields such as id, replyToId, messageType, subject, summary, importance, createdDateTime, lastModifiedDateTime, deletedDateTime, bodyContentType, bodyContent, from, body, attachments, mentions, reactions, channelIdentity, teamId, channelId, and raw. Query rows do not include mutation-style default fields. |
PostChannelMessage
Posts one new root message to a Microsoft Teams channel selected by ID, exact display name, or the Connection default.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | Microsoft Teams connection details including delegated Microsoft Graph authentication. |
MessageContent |
String | Message content to send. Use HTML when ContentType is html, or plain text when ContentType is text. |
ContentType |
String | Microsoft Graph message body content type, typically html or text. |
ChannelID |
String | Channel identifier. Preferred when known. Uses the Connection default channel when omitted. |
ChannelDisplayName |
String | Exact channel display name used when ChannelID is not supplied. |
TeamID |
String | Team identifier that owns the target channel. Uses the Connection default team when omitted. |
TeamDisplayName |
String | Exact team display name used when TeamID is not supplied. |
| Return | Type | Description |
|---|---|---|
Message |
Object | The created root channel message with fields such as id, replyToId, messageType, subject, summary, importance, createdDateTime, lastModifiedDateTime, deletedDateTime, bodyContentType, bodyContent, from, body, attachments, mentions, reactions, channelIdentity, teamId, channelId, raw, and Flowgear. Flowgear contains the default mutation metadata fields IsSuccess and Message. |
Usage Notes
- List methods retrieve their first Microsoft Graph page while the Node invoke is awaited. They follow
@odata.nextLinkonly as the Workflow consumes later rows, so you do not need to pass page numbers or continuation tokens into the Workflow. - If a list method returns no matching Graph items, the Workflow receives zero rows.
- If the first provider call for a list method fails, that provider error surfaces to the Workflow instead of being normalized into an error row.
- Team and channel name selectors rely on exact display-name matches. If duplicate names are possible in your tenant, use ID-based selectors instead.
PostChannelMessagerequires bothMessageContentandContentType.- Mutation responses use the
Flowgearobject for default success and failure metadata. - The Node preserves the original Microsoft Graph payload under
rawso you can inspect provider-specific fields when a Workflow needs more than the normalized top-level contract.
Known Issues
ListChannelMessagesreturns root channel messages only. It does not return replies.PostChannelMessageposts root channel messages only. It does not post replies.