Skip to content

Microsoft Teams

Deploy Snippbot as a Microsoft Teams bot to let users interact with agents directly inside Teams channels and one-on-one chats.

  • A Microsoft 365 account with Teams
  • Azure subscription (free tier works)
  • A publicly accessible Snippbot URL with HTTPS
  • Permissions to register Azure AD applications in your tenant
  1. Register an Azure Bot

    Go to portal.azure.comCreate a resourceAzure Bot.

    • Bot handle: choose a unique name
    • Subscription: select your Azure subscription
    • Resource group: create or select one
    • Pricing tier: F0 (free)
    • Microsoft App ID: Create new Microsoft App ID

    After creation, note your App ID from the bot resource.

  2. Generate an App Password

    In the Azure Bot resource → ConfigurationManage (next to Microsoft App ID) → Certificates & secretsNew client secret.

    Copy the secret value — this is your App Password.

  3. Configure the messaging endpoint

    In the Azure Bot resource → Configuration:

    • Messaging endpoint: https://your-snippbot-url.com/webhook/teams
  4. Enable the Teams channel

    In Azure Bot → ChannelsMicrosoft TeamsApply.

  5. Store credentials in Snippbot

    Go to Settings → Channels → Teams and enter:

    • App ID
    • App Password

    Or via CLI:

    Terminal window
    snippbot channel set teams \
    --app-id "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \
    --app-password "your-client-secret-value"
  6. Start the adapter

    Terminal window
    snippbot channel start teams
  7. Create a channel binding

    In Settings → Channels → Teams → Bindings, click Add Binding:

    • Channel ID: Teams channel ID (from the Teams URL or Teams Admin Center)
    • Agent: which agent handles messages
    • Access mode: open / allowlist / admin_only
  8. Install the bot in Teams

    • In Teams, go to AppsManage your appsUpload a custom app
    • Or have an admin deploy via Teams Admin Center for organization-wide installation

The Teams adapter uses the Bot Framework protocol. When a user sends a message:

  1. Teams delivers the activity to your endpoint via HTTPS POST
  2. The adapter validates the inbound Bearer token (JWT structure check)
  3. The message is normalized and routed to the bound agent
  4. The response is sent back via the Bot Framework Connector API using credentials obtained with the App ID and App Password
  • Text messages in channels and group chats
  • Direct messages (one-on-one with the bot)
  • @mentions in channels (bot responds only when mentioned)
  • Adaptive Cards for rich formatted responses
ModeWho can use the bot
openAny Teams user in bound channels
allowlistOnly approved users (by email or UPN)
admin_onlyOnly admin users in the binding

In channel contexts, the bot only responds when @mentioned:

@SnippBot what's the status of the deployment pipeline?

In direct messages, all messages are processed without @mention.

  1. Verify the messaging endpoint is reachable: curl https://your-url.com/webhook/teams
  2. Check Azure Bot → Activity Log for delivery errors
  3. Ensure the Teams channel is enabled in Azure Bot → Channels

The App Password may have expired (Azure secrets expire after 1–2 years). Rotate the secret in Azure AD and update Snippbot:

Terminal window
snippbot channel set teams --app-password "new-secret"
snippbot channel restart teams

Ensure the channel adapter is running:

Terminal window
snippbot channel status teams
snippbot channel logs teams