Sapilon becomes publicly available on 1 December 2026: 42 days to go. The core goes open source the same day →

Microsoft Teams integration

In short

Post messages to channels and chats. Connect it on the Integrations page; your app then calls Microsoft Teams through Sapilon without ever holding a Microsoft credential.

Lets your app list the teams and channels the connected account belongs to, post messages to a channel, and read and send messages in its chats.

Connecting

On the Integrations page choose Connect on Microsoft Teams, sign in to Microsoft and allow access. Under Advanced you can use your own Microsoft OAuth app instead of Sapilon’s.

  • Messages are posted as the account that connected, not as a bot.
  • Many Microsoft 365 organisations only let an admin approve new apps: if you see “Need admin approval”, ask your Microsoft 365 admin to consent once for the whole organisation.
  • Sapilon’s Microsoft app is being registered. Until it is, Advanced → Bring your own OAuth app (an Entra app registration) connects today.

What your app can do

Only these requests are available; anything else is refused.

  • GET /me/joinedTeams
  • GET /teams/*/channels
  • POST /teams/*/channels/*/messages
  • GET /me/chats
  • GET|POST /chats/*/messages

How the agent uses it

Use integrations.request('microsoft-teams', …); paths are relative to https://graph.microsoft.com/v1.0.

  • GET /me/joinedTeams, GET /teams/{teamId}/channels.
  • POST /teams/{teamId}/channels/{channelId}/messages — Example: { method: 'POST', path: '/teams/{teamId}/channels/{channelId}/messages', body: { body: { contentType: 'html', content: '<b>Deploy done</b>' } } }.
  • GET /me/chats, GET|POST /chats/{chatId}/messages — read or send in a 1:1 or group chat.

Reading channel messages needs admin-consented permissions and is not included.

More from Microsoft: https://learn.microsoft.com/graph/teams-concept-overview

Last updated .

Was this page helpful?