Unified.to
All articles

How to Set Up a Microsoft Teams Bot with Unified


April 20, 2026

Overview

If your Microsoft Teams bot connection is created successfully in Unified but later API calls fail with

No authorization information present on the request, the issue is usually not OAuth.

OAuth connects Microsoft 365 to Unified, but your bot still needs to be:

  • packaged correctly
  • uploaded to Teams
  • installed in the correct Team, channel, or chat

Without this, API calls will fail due to missing context.


⚠️ Important Clarification (Common Issue)

  • The manifest downloaded from Microsoft Entra app registration is NOT a valid Teams manifest
  • The Microsoft 365 schema is also not the correct reference

You must use the Microsoft Teams manifest schema:

https://learn.microsoft.com/en-us/microsoftteams/platform/resources/schema/manifest-schema

Using the wrong manifest will result in errors like:

Manifest parsing error message unavailable


What You'll Need

Before starting:


Create a Valid Teams App Package

Your .zip must include:

  • manifest.json
  • Color icon (192×192 PNG)
  • Outline icon (32×32 PNG)

Instead of writing JSON manually, use:

👉 Teams Developer Portal

https://learn.microsoft.com/en-us/microsoftteams/platform/concepts/build-and-test/teams-developer-portal

This allows you to:

  • Configure your bot via UI
  • Set scopes correctly
  • Generate a valid app package
  • Avoid manifest parsing errors

Manifest Checklist

Ensure your manifest.json includes:

  • Valid app ID
  • Bot capability with correct botId
  • Required scopes:
    • team
    • groupchat
    • personal (optional)

Use:

  • team → for channels
  • groupchat → for chats

Minimal Manifest Template (Reference)

{
  "$schema":"https://developer.microsoft.com/en-us/json-schemas/teams/v1.16/MicrosoftTeams.schema.json",
  "manifestVersion":"1.16",
  "version":"1.0.0",
  "id":"YOUR-APP-ID",
  "name": {
    "short":"My Teams Bot",
    "full":"My Teams Bot"
  },
  "description": {
    "short":"Bot for Teams",
    "full":"Bot for Teams integrated with Unified"
  },
  "developer": {
    "name":"Your Company",
    "websiteUrl":"https://yourdomain.com",
    "privacyUrl":"https://yourdomain.com/privacy",
    "termsOfUseUrl":"https://yourdomain.com/terms"
  },
  "icons": {
    "color":"color.png",
    "outline":"outline.png"
  },
  "accentColor":"#FFFFFF",
  "bots": [
    {
      "botId":"YOUR-ENTRA-APP-ID",
      "scopes": ["team","groupchat"]
    }
  ]
}

⚠️ Notes (Follow as Steps)

  1. Replace YOUR-APP-ID and YOUR-ENTRA-APP-ID with your actual app ID
  2. Ensure both icons exist in the .zip file
  3. Use this only as a reference template, not a full production manifest

Upload the App in Microsoft Teams

Steps:

  1. Open Apps (left sidebar)
  2. Click Manage your apps
  3. Stay on Apps tab
  4. Click Upload an app
  5. Upload your .zip

image.png

⚠️ If upload option is missing → admin restriction


Install the Bot in the Right Scope

Uploading ≠ installing

You must install the bot in:

  • A Team
  • A channel
  • A group chat
  • Personal scope

image.png

⚠️ If not installed → API calls will fail


Connect Microsoft Teams (bot) to Unified

Steps:

  1. Create connection in Unified
  2. Complete OAuth
  3. Approve scopes
  4. Save connection

Common Required Scopes

  • Channel.ReadBasic.All
  • ChannelMessage.Read.All
  • ChatMessage.Read
  • Chat.Read
  • ChannelMessage.Send
  • ChatMessage.Send
  • offline_access

💡 If permissions change → reconnect integration


Test the Connection

  1. Send a message where the bot is installed
  2. Call Unified messaging API
  3. Verify read/send works

💡 If connection was created before installation → retry


Troubleshooting

❌ Manifest parsing error

  • Wrong manifest type (Entra instead of Teams)
  • Wrong schema

❌ App package failed validation

  • Missing icons
  • Files not at root
  • Invalid JSON
  • botId mismatch

❌ No authorization information present

  • Bot not installed in correct scope
  • Missing permissions
  • Wrong scope
  • Token outdated → reconnect
All articles