Skip to main content

Microsoft Teams integration

Send Microsoft Teams chat and channel messages on behalf of your clients.

What it does

The Microsoft Teams integration drives Microsoft Teams messaging for your clients without anyone signing into Teams by hand. Connect a client's Microsoft 365 account once and you can list the user's chats, post into an existing 1:1, group, or meeting chat, send a message into a team channel, list every team the user belongs to, list the members of a team, and start a workflow whenever a new chat or channel message lands.

Connect a Microsoft Teams account

  1. Open your workspace in TaskJuice and navigate to Connections.
  2. Choose Microsoft Teams and click Connect.
  3. Sign in with the Microsoft work or school account whose Teams workspace you want to manage on behalf of your client.
  4. Grant the requested delegated scopes (Chat.ReadWrite, ChannelMessage.Send, Team.ReadBasic.All, TeamMember.Read.All, and offline_access for refresh tokens).
  5. TaskJuice returns you to the workspace with the connection ready to use in any workflow.

To revoke access at any time, visit My Apps and consents for work and school accounts and remove the TaskJuice entry. Tenant administrators can audit and revoke consent from the Microsoft Entra admin center under Enterprise applications.

Triggers

  • microsoft-teams/new-chat-message polls the user's chats on a configurable interval and emits one activation per cycle containing every chat message whose createdDateTime advanced past the watermark. Scope to a single chat with the optional chatId field, or watch every chat the user participates in.
  • microsoft-teams/new-channel-message polls a specific team channel on a configurable interval and emits one activation per cycle containing every channel message observed since the previous cycle.

Actions

  • microsoft-teams/list-chats returns the chats the signed-in user is a participant in, with cursor pagination via @odata.nextLink and optional OData filter, expand, and orderby clauses.
  • microsoft-teams/send-chat-message posts a new message into an existing 1:1, group, or meeting chat with HTML or plain text content.
  • microsoft-teams/send-channel-message posts a new message into a channel inside a team, with optional subject line and HTML or plain text content.
  • microsoft-teams/list-joined-teams returns every team the signed-in user is currently a member of.
  • microsoft-teams/list-team-members returns the members of a team by team ID, with optional OData filter (for example, filter by owner role).

Known limitations

  • Microsoft Graph supports change notifications for chat and channel messages, but the verification handshake and per-subscription clientState validation fall outside the declarative envelope used by TaskJuice. The new-message triggers therefore poll on a configurable interval (60 seconds minimum, five minutes by default), so latency is bounded by the chosen interval rather than instant.
  • Microsoft Graph applies per-application and per-tenant throttling, and Teams resources have a separate per-resource service limit. When a 429 is returned, TaskJuice surfaces it as a retryable rate-limit error and respects the recommended backoff window.
  • Sending chat messages requires Chat.ReadWrite. Sending channel messages requires ChannelMessage.Send. Reading channel messages from the polling trigger requires ChannelMessage.Read.All, which is admin-consented in most tenants.
  • Personal Microsoft accounts cannot use the Microsoft Teams integration. The Teams API requires a work or school account in a tenant where the user has joined at least one team.
  • Sending a channel message into a private channel may require the user to be a member of that private channel. Public channels inherit team membership.
Was this helpful?
Microsoft Teams integration | TaskJuice Docs