Skip to main content

Overview

The Microsoft Teams integration uses the Bot Framework to connect your AI agents to Teams channels, group chats, and direct messages. The adapter handles OAuth authentication, JWT-verified webhooks, and Teams-specific message formatting.
Requirements: A Microsoft Azure account with a Bot Framework registration and Teams app manifest.

Architecture


Setup

1

Register a Bot in Azure

  1. Go to the Azure Portal
  2. Navigate to Azure Bot and create a new bot resource
  3. Choose Multi Tenant for the bot type
  4. Note the App ID and generate an App Password (client secret)
2

Configure the Bot Endpoint

Set the messaging endpoint to your Nadoo AI webhook URL:
https://your-domain.com/api/v1/channel-webhooks/teams/{channel_id}
3

Create a Teams App Manifest

Create a Teams app package with the bot’s App ID:
{
  "bots": [
    {
      "botId": "YOUR_APP_ID",
      "scopes": ["personal", "team", "groupChat"],
      "supportsFiles": false
    }
  ]
}
Upload the app package to your Teams organization via the Teams Admin Center.
4

Configure in Nadoo AI

In the Nadoo AI platform, navigate to Workspace Settings > Channels and create a new Teams channel with these credentials:
FieldDescription
App IDThe Bot Framework Application ID
App PasswordThe client secret from Azure
Tenant IDYour Azure AD tenant ID (or botframework.com for multi-tenant)
Link the channel to your target application (AI agent).

Credentials

The Teams adapter requires the following credentials in ChannelConfig:
credentials = {
    "app_id": "your-bot-app-id",
    "app_password": "your-bot-client-secret",
    "tenant_id": "your-azure-tenant-id"  # defaults to "botframework.com"
}
The adapter authenticates outbound messages by obtaining an OAuth token from the Bot Framework token service:
POST https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
scope=https://api.botframework.com/.default
Tokens are cached and refreshed automatically.

Message Features

TypeInboundOutbound
Plain textYesYes
Rich text (HTML)YesYes
ImagesYesYes
File attachmentsYesNo
Adaptive CardsNoPlanned
  • Personal — Direct 1:1 messages with the bot
  • Team channel — Messages in a Teams channel where the bot is installed
  • Group chat — Messages in group conversations where the bot is added
The adapter preserves conversation context using the Bot Framework’s conversationId and activityId, enabling threaded replies in Teams channels.

Webhook Security

Inbound webhooks from the Bot Framework are JWT-verified. The adapter validates the token signature against Microsoft’s public keys to ensure authenticity before processing any message.
Always deploy behind HTTPS. The Bot Framework will reject webhook endpoints that use plain HTTP.

Next Steps