OpenClaw

OpenClaw Microsoft Teams Kanal

Unternehmen
Mittel

Verbinden Sie OpenClaw mit Microsoft Teams ueber das Bot Framework mittels einer Azure Bot-Ressource. Diese plugin-basierte Integration laesst Ihren KI-Assistenten in Teams arbeiten — er verarbeitet persoenliche Direktnachrichten, Gruppenchats und Kanalunterhaltungen. OpenClaw empfaengt Webhook-Events vom Bot Framework unter /api/messages und antwortet ueber die Teams Messaging API. Unterstuetzt werden Thread-Antworten, Adaptive Cards, Reaktionen, Dateifreigabe ueber SharePoint und konfigurierbare Ueberschreibungen pro Team/Kanal.

Kurzinfo
SchwierigkeitsgradMittel
KategorieUnternehmen
Unterstützte Funktionen5 / 6

Microsoft Teams Unterstützte Funktionen

Textnachrichten

Unterstützt

Medien & Dateien

Unterstützt

Reaktionen

Unterstützt

Threads

Unterstützt

Sprachnachrichten

Nicht unterstützt

Gruppenchat

Unterstützt

Microsoft Teams Voraussetzungen

  • Ein Azure-Konto mit Berechtigungen zum Erstellen einer Azure Bot-Ressource
  • Ein registrierter Azure Bot mit App ID, App Password (Client Secret) und Tenant ID (Single-Tenant empfohlen)
  • Ein Teams App Manifest (manifest.json) mit Bot-Konfiguration, Scopes und Icons (outline.png 32×32, color.png 192×192)
  • OpenClaw Gateway laeuft und ist ueber eine oeffentliche HTTPS-URL oder einen Tunnel erreichbar (Standard-Webhook-Port 3978)
  • Das Teams-Plugin ist installiert: openclaw plugins install @openclaw/msteams

Microsoft Teams Schnelleinrichtung

1

Azure Bot-Ressource erstellen

Gehen Sie zum Azure Portal → Ressource erstellen → Suchen Sie nach 'Azure Bot'. Erstellen Sie mit dem Typ Single Tenant. Generieren Sie in der App-Registrierung ein Client Secret. Kopieren Sie die App ID, das Client Secret und die Tenant ID — Sie benoetigen alle drei fuer die OpenClaw-Konfiguration.

2

Teams-Plugin installieren und konfigurieren

Fuehren Sie 'openclaw plugins install @openclaw/msteams' aus, um das Plugin zu installieren. Fuegen Sie die Teams-Kanalkonfiguration zu Ihrer openclaw.json mit appId, appPassword und tenantId hinzu. Sie koennen auch die Umgebungsvariablen MSTEAMS_APP_ID, MSTEAMS_APP_PASSWORD und MSTEAMS_TENANT_ID verwenden.

3

Messaging-Endpunkt setzen und Teams-Kanal aktivieren

Navigieren Sie im Azure Portal zu Ihrer Bot-Ressource → Konfiguration. Setzen Sie den Messaging-Endpunkt auf 'https://<your-domain>/api/messages'. Gehen Sie dann zu Kanaele → Microsoft Teams hinzufuegen → Konfigurieren. Fuer die lokale Entwicklung verwenden Sie einen Tunnel (ngrok oder Tailscale Funnel), um Port 3978 freizugeben.

4

Teams-App erstellen und installieren

Erstellen Sie eine manifest.json mit der App ID Ihres Bots als botId, Scopes (personal, team, groupChat) und RSC-Berechtigungen. Packen Sie sie mit outline.png und color.png in eine ZIP-Datei. Laden Sie sie ueber das Teams Developer Portal oder Teams Admin Center hoch. Zum Testen koennen Sie das App-Paket per Sideloading installieren.

5

Bot testen

Suchen Sie Ihren Bot in Teams und senden Sie ihm eine Direktnachricht. Wenn Sie die Standard-Pairing-Richtlinie verwenden, genehmigen Sie den Absender ueber 'openclaw pairing approve msteams <code>' in Ihrem Terminal. Der Bot sollte mit KI-generierten Antworten reagieren.

Microsoft Teams Konfigurationsbeispiel

config.json
{
  "channels": {
    "msteams": {
      "enabled": true,
      "appId": "YOUR_APP_ID",
      "appPassword": "YOUR_APP_PASSWORD",
      "tenantId": "YOUR_TENANT_ID",
      "webhook": {
        "port": 3978,
        "path": "/api/messages"
      }
    }
  }
}

Microsoft Teams Detaillierte Dokumentation

Architekturuebersicht

OpenClaw integriert sich mit Microsoft Teams ueber das Azure Bot Framework — eine Webhook-basierte Architektur, bei der Teams Nachrichten an den /api/messages-Endpunkt Ihres Gateways weiterleitet und OpenClaw ueber die Bot Framework REST API antwortet. Der Ablauf ist: Benutzer sendet Nachricht in Teams → Bot Framework Service → Webhook-POST an Ihr Gateway (Port 3978) → OpenClaw verarbeitet mit KI → Antwort ueber Bot Framework API → Teams liefert die Antwort aus. Das Teams-Plugin wird separat ueber 'openclaw plugins install @openclaw/msteams' installiert. Dieser modulare Ansatz haelt das Kern-Gateway schlank und ermoeglicht es, Teams-spezifische Funktionen (Adaptive Cards, SharePoint-Datei-Uploads, RSC-Berechtigungen) unabhaengig zu pflegen. Die Authentifizierung erfolgt ueber Azure AD: Das Bot Framework validiert JWT-Tokens bei eingehenden Webhook-Anfragen, und OpenClaw authentifiziert ausgehende API-Aufrufe mit Ihrer App ID und Ihrem App Password. Single-Tenant-Konfiguration wird aus Sicherheitsgruenden empfohlen und beschraenkt den Bot auf das Azure AD-Verzeichnis Ihrer Organisation.
Ihr Gateway muss ueber eine oeffentliche HTTPS-URL erreichbar sein. Fuer die lokale Entwicklung verwenden Sie ngrok oder Tailscale Funnel, um Port 3978 zu tunneln.
Single-Tenant-Bots werden gegenueber Multi-Tenant fuer die Organisationssicherheit empfohlen — sie akzeptieren nur Tokens aus Ihrem Azure AD-Verzeichnis.

Azure Bot-Einrichtung & App-Registrierung

Die Einrichtung des Teams-Bots erfordert das Erstellen von Ressourcen im Azure Portal: 1. Azure Bot-Ressource erstellen — Suchen Sie im Marketplace nach 'Azure Bot'. Waehlen Sie Single Tenant als Bot-Typ. Dadurch werden sowohl die Bot-Ressource als auch eine App-Registrierung erstellt. 2. Client Secret generieren — In App-Registrierungen → Ihre Bot-App → Zertifikate & Geheimnisse, erstellen Sie ein neues Client Secret. Kopieren Sie den Wert sofort (er wird nur einmal angezeigt). 3. Anmeldedaten notieren — App (Client) ID von der Uebersichtsseite, der Client-Secret-Wert und die Directory (Tenant) ID. Diese drei Werte sind die Authentifizierungsdaten Ihres Bots. 4. Messaging-Endpunkt festlegen — In der Bot-Ressource → Konfiguration, setzen Sie den Endpunkt auf 'https://<your-domain>/api/messages'. Hierhin sendet Teams Webhook-Events. 5. Teams-Kanal aktivieren — Gehen Sie zu Kanaele → Kanal hinzufuegen → Microsoft Teams. Konfigurieren und speichern. Umgebungsvariablen koennen anstelle von Konfigurationsdatei-Werten verwendet werden: MSTEAMS_APP_ID, MSTEAMS_APP_PASSWORD, MSTEAMS_TENANT_ID.
openclaw.json
{
  "channels": {
    "msteams": {
      "appId": "<APP_ID>",
      "appPassword": "<APP_PASSWORD>",
      "tenantId": "<TENANT_ID>"
    }
  }
}
Halten Sie Ihr App Password sicher. Committen Sie es niemals in die Versionskontrolle. Verwenden Sie Umgebungsvariablen (MSTEAMS_APP_PASSWORD) fuer Produktionsbereitstellungen. Rotieren Sie das Client Secret regelmaessig im Azure Portal.

Teams App Manifest & RSC-Berechtigungen

Das Teams App Manifest (manifest.json) definiert die Identitaet, Scopes und Berechtigungen Ihres Bots. Es wird zusammen mit zwei Icons in eine ZIP-Datei gepackt zur Installation. Manifest-Grundlagen: • botId — Die App ID Ihres Azure Bots • Scopes — personal (DMs), team (Kanaele), groupChat (Gruppenunterhaltungen) • supportsFiles: true — Datei-Einwilligungskarten im persoenlichen Chat aktivieren • Resource-Specific Consent (RSC) Berechtigungen — Erlauben dem Bot, Nachrichten ohne @Erwaehnung zu empfangen RSC-Berechtigungen fuer Kanaele (Team-Scope): • ChannelMessage.Read.Group — Kanalnachrichten ohne @Erwaehnung empfangen • ChannelMessage.Send.Group — Nachrichten in Kanaele senden • TeamMember.Read.Group, TeamSettings.Read.Group — Team-Metadaten lesen RSC-Berechtigungen fuer Gruppenchats: • ChatMessage.Read.Chat — Gruppenchat-Nachrichten ohne @Erwaehnung empfangen Erforderliche Icons: • outline.png — 32×32 Pixel, transparenter Hintergrund • color.png — 192×192 Pixel, farbiges App-Icon Packen Sie manifest.json + beide Icons zusammen in eine ZIP-Datei und laden Sie sie ueber das Teams Developer Portal, Teams Admin Center hoch oder sideloaden Sie sie zum Testen.
Beim Aktualisieren einer installierten App (z.B. Hinzufuegen von RSC-Berechtigungen) erhoehen Sie das version-Feld in manifest.json, erstellen Sie die ZIP-Datei neu, laden Sie sie erneut hoch und installieren Sie sie in jedem Team neu.
Nach dem Installieren oder Aktualisieren der App beenden Sie den Teams-Client vollstaendig und starten Sie ihn neu, damit die neuen Berechtigungen wirksam werden.

DM-Richtlinien

DM-Richtlinien (Direktnachrichten) steuern, wer mit Ihrem Bot im persoenlichen Chat interagieren kann. OpenClaw unterstuetzt vier Richtlinien: • pairing (Standard) — Neue Benutzer, die dem Bot schreiben, erhalten einen zufaelligen Pairing-Code. Genehmigen Sie ueber 'openclaw pairing approve msteams <code>' in Ihrem Terminal. Nach der Genehmigung koennen sie frei chatten. • allowlist — Nur Benutzer, die in allowFrom aufgefuehrt sind, koennen dem Bot schreiben. Unterstuetzt AAD Object IDs, UPNs (benutzer@org.com) oder Anzeigenamen. • open — Jeder Teams-Benutzer in Ihrem Mandanten kann dem Bot schreiben. Erfordert das Hinzufuegen von '*' zu allowFrom als Sicherheitsbestaetigung. • disabled — DM-Funktionalitaet ist vollstaendig deaktiviert. Teams identifiziert Benutzer durch AAD (Azure AD) Object IDs, UPNs oder Anzeigenamen. Sie finden diese in den Gateway-Logs, wenn Benutzer Nachrichten senden, oder im Azure Portal unter Azure Active Directory → Benutzer.
openclaw.json
{
  "channels": {
    "msteams": {
      "dmPolicy": "allowlist",
      "allowFrom": [
        "user@org.com",
        "40a1a0ed-4ff2-4164-a219-55518990c197"
      ]
    }
  }
}
Das UPN-Format (benutzer@org.com) ist normalerweise am bequemsten fuer Allowlists. AAD Object IDs sind stabiler, falls Benutzer ihre E-Mail-Adresse aendern koennten.
Verwenden Sie 'openclaw pairing list msteams', um alle ausstehenden Pairing-Anfragen und ihre Codes anzuzeigen.

Gruppenchat- & Kanalverwaltung

OpenClaw unterstuetzt sowohl Teams-Kanaele (innerhalb eines Teams) als auch Gruppenchats, jeweils mit konfigurierbarer Zugriffskontrolle: • disabled (Standard fuer Gruppen) — Alle Gruppen-/Kanalnachrichten ignorieren • allowlist — Nur genehmigte Absender (ueber groupAllowFrom) koennen den Bot ausloesen • open — Auf Nachrichten aller Gruppenmitglieder oder Kanalteilnehmer antworten Standardmaessig erfordert der Bot eine @Erwaehnung in Kanaelen und Gruppenchats (requireMention: true). Setzen Sie requireMention auf false, damit der Bot auf alle Nachrichten antwortet, oder konfigurieren Sie RSC-Berechtigungen, um Nachrichten ohne Erwaehnung zu empfangen. Teams-Kanaele und Gruppenchats pflegen separate Unterhaltungskontexte. Jede Unterhaltung hat ihre eigene Sitzung und Historie, isoliert von DMs und anderen Unterhaltungen. Pro-Team- und Pro-Kanal-Ueberschreibungen ermoeglichen feingranulare Kontrolle. Sie koennen verschiedene replyStyle-, requireMention- und Tool-Konfigurationen fuer jedes Team oder sogar einzelne Kanaele innerhalb eines Teams festlegen.
openclaw.json
{
  "channels": {
    "msteams": {
      "groupPolicy": "allowlist",
      "groupAllowFrom": ["user@org.com"],
      "teams": {
        "My Team": {
          "channels": {
            "General": {
              "requireMention": true
            }
          }
        }
      }
    }
  }
}
Verwenden Sie Team- und Kanal-Anzeigenamen oder Konversations-IDs (19:...@thread.tacv2) als Schluessel in der Teams-Konfiguration.
Pro-Kanal-Ueberschreibungen erben von der uebergeordneten Team-Konfiguration, die wiederum von der globalen msteams-Konfiguration erbt.

Antwortstile & Threading

Teams bietet zwei verschiedene UI-Layouts fuer Kanaele, und das Antwortverhalten von OpenClaw sollte dazu passen: • Posts (klassisches Layout) — Verwendet Thread-Antworten unter Stammnachrichten. Setzen Sie replyStyle auf 'thread' (Standard). Die Antwort des Bots erscheint als Antwort auf die urspruengliche Nachrichtenkarte. • Threads (Slack-aehnliches Layout) — Verwendet linearen Nachrichtenfluss. Setzen Sie replyStyle auf 'top-level'. Der Bot sendet eine neue Top-Level-Nachricht anstatt zu threaden. Die Teams API zeigt nicht an, welches Layout ein Kanal verwendet, daher muessen Sie replyStyle entsprechend konfigurieren. Nicht uebereinstimmende Einstellungen verursachen keine Fehler, koennen aber zu suboptimalem Gespraechsfluss fuehren. Der Antwortstil kann global, pro Team oder pro Kanal konfiguriert werden. Dies ermoeglicht es, verschiedene Layouts in verschiedenen Kanaelen derselben Teams-Organisation abzubilden.
openclaw.json
{
  "channels": {
    "msteams": {
      "replyStyle": "thread",
      "teams": {
        "19:abc...@thread.tacv2": {
          "channels": {
            "19:xyz...@thread.tacv2": {
              "replyStyle": "top-level"
            }
          }
        }
      }
    }
  }
}

Dateiverarbeitung & SharePoint

OpenClaw unterstuetzt die Dateifreigabe in Teams mit unterschiedlichem Verhalten je nach Chat-Typ: Persoenliche Chats: • Integrierter FileConsentCard-Ablauf — kein zusaetzliches Setup erforderlich. Der Bot sendet eine Datei-Einwilligungskarte, der Benutzer stimmt zu und die Datei wird hochgeladen. Gruppenchats und Kanaele: • Erfordert Microsoft Graph-Berechtigung: Sites.ReadWrite.All • Optional: Chat.Read.All fuer benutzerspezifische Freigabelinks (beschraenkt den Zugriff auf Chat-Mitglieder) • Konfigurieren Sie sharePointSiteId, um die SharePoint-Site fuer Datei-Uploads anzugeben • Dateien werden im Ordner /OpenClawShared/ in der SharePoint-Dokumentbibliothek gespeichert Ohne Chat.Read.All sind freigegebene Dateilinks organisationsweit. Mit dieser Berechtigung wird die Freigabe auf die Mitglieder des aktuellen Chats beschraenkt. Eingehende Anhaenge werden automatisch vom Gateway heruntergeladen und verarbeitet. Die Konfigurationen mediaAllowHosts und mediaAuthAllowHosts steuern, welche Domaenen fuer Anhang-Downloads vertrauenswuerdig sind.
openclaw.json
{
  "channels": {
    "msteams": {
      "sharePointSiteId": "YOUR_SHAREPOINT_SITE_ID",
      "mediaAllowHosts": ["*.microsoft.com", "*.sharepoint.com"],
      "mediaAuthAllowHosts": ["graph.microsoft.com"]
    }
  }
}
Graph API-Berechtigungen (Sites.ReadWrite.All, Chat.Read.All) erfordern die Administratorzustimmung in Ihrem Azure AD-Mandanten. Arbeiten Sie mit Ihrem IT-Administrator zusammen, um diese Berechtigungen zu erteilen.

Adaptive Cards & Umfragen

Microsoft Teams unterstuetzt Adaptive Cards — reichhaltige, interaktive kartenbasierte Layouts, die ueber einfachen Text hinausgehen. OpenClaw nutzt diese fuer verbesserte Bot-Interaktionen: Umfragen: • Erstellen Sie Umfragen ueber 'openclaw message poll --channel msteams --target conversation:<id>' • Stimmen werden ueber Adaptive Card-Aktionen gesammelt und lokal in ~/.openclaw/msteams-polls.json gespeichert • Das Gateway muss online bleiben, um Stimmen zu sammeln Benutzerdefinierte Adaptive Cards: • Senden Sie beliebige Adaptive Cards ueber die CLI: openclaw message send --channel msteams --target "conversation:<id>" --card '{...}' • Cards unterstuetzen Adaptive Card Schema Version 1.5 • Koennen Textbloecke, Bilder, Aktionsschaltflaechen, Eingabefelder und mehr enthalten Formatierungshinweise: • Einfaches Markdown (fett, kursiv, Code, Links) wird in regulaeren Nachrichten unterstuetzt • Komplexe Tabellen und tief verschachtelte Listen werden moeglicherweise nicht korrekt dargestellt • Fuer reichhaltige Layouts verwenden Sie Adaptive Cards anstelle von Markdown-Formatierung
Verwenden Sie den Adaptive Cards Designer (adaptivecards.io/designer), um benutzerdefinierte Kartenlayouts zu erstellen und in der Vorschau anzuzeigen, bevor Sie sie senden.
Adaptive Card-Aktionen koennen Postback-Events ausloesen, die OpenClaw als Benutzereingabe verarbeitet.

Teams-ID-Extraktion

Teams-URLs enthalten mehrere IDs, aber nicht alle sind die, die Sie fuer die Konfiguration benoetigen. So extrahieren Sie die richtigen IDs: Team-ID — Im URL-Pfad zu finden (nicht der groupId Query-Parameter): https://teams.microsoft.com/l/team/19%3ABk4j...%40thread.tacv2/... → URL-dekodieren Sie '19%3ABk4j...%40thread.tacv2', um die Team-ID zu erhalten Kanal-ID — Ebenfalls im URL-Pfad: https://teams.microsoft.com/l/channel/19%3A15bc...%40thread.tacv2/... → URL-dekodieren Sie, um die Kanal-Konversations-ID zu erhalten Benutzer-Ziele fuer CLI-Befehle: • Nach AAD ID: user:40a1a0ed-4ff2-4164-a219-55518990c197 • Nach Anzeigename: user:John Smith • Konversation: conversation:19:abc...@thread.tacv2 • Roh (wenn @thread enthalten): 19:abc...@thread.tacv2
Verwenden Sie NICHT den 'groupId' Query-Parameter aus Teams-URLs — das ist die Microsoft 365 Gruppen-ID, nicht die Teams-Konversations-ID. Extrahieren Sie IDs immer aus dem URL-Pfad und URL-dekodieren Sie sie.

Microsoft Teams Konfigurationsreferenz

enabled
Type: booleanDefault: true

Microsoft Teams-Kanal aktivieren oder deaktivieren

appId
Type: stringDefault: ""

Azure Bot App ID (Microsoft App ID). Alternativ kann die Umgebungsvariable MSTEAMS_APP_ID verwendet werden

appPassword
Type: stringDefault: ""

Azure Bot Client Secret. Alternativ kann die Umgebungsvariable MSTEAMS_APP_PASSWORD verwendet werden

tenantId
Type: stringDefault: ""

Azure AD Tenant ID fuer Single-Tenant-Authentifizierung. Alternativ kann die Umgebungsvariable MSTEAMS_TENANT_ID verwendet werden

webhook.port
Type: numberDefault: 3978

Port fuer den Webhook-Listener, der Bot Framework-Events empfaengt

webhook.path
Type: stringDefault: "/api/messages"

Webhook-Endpunktpfad fuer eingehende Bot Framework-Nachrichten

dmPolicy
Type: stringDefault: "pairing"

Steuert, wer dem Bot DMs senden kann. Optionen: pairing, allowlist, open, disabled

allowFrom
Type: string[]Default: []

AAD Object IDs, UPNs oder Anzeigenamen, die dem Bot DMs senden duerfen (wenn dmPolicy auf allowlist gesetzt ist)

groupPolicy
Type: stringDefault: "allowlist"

Zugriffskontrolle fuer Gruppen/Kanaele. Optionen: allowlist, open, disabled

groupAllowFrom
Type: string[]Default: []

Erlaubte Absender in Gruppenchats. Greift auf allowFrom zurueck, wenn nicht gesetzt

teams
Type: objectDefault: {}

Pro-Team- und Pro-Kanal-Konfigurationsueberschreibungen (replyStyle, requireMention, tools)

requireMention
Type: booleanDefault: true

@Erwaehnung in Kanaelen und Gruppenchats erfordern. Auf false setzen mit RSC-Berechtigungen, um auf alle Nachrichten zu antworten

replyStyle
Type: stringDefault: "thread"

Antwortstil-Layout. Optionen: thread (klassische Posts), top-level (Slack-aehnliche Threads)

configWrites
Type: booleanDefault: true

/config set|unset-Befehle zur Laufzeitaenderung von Kanaleinstellungen erlauben

textChunkLimit
Type: numberDefault:

Maximale Zeichen pro ausgehender Nachricht vor dem Aufteilen

chunkMode
Type: stringDefault: "length"

Strategie zum Aufteilen von Text. Optionen: length (harter Schnitt), newline (absatzorientiert)

sharePointSiteId
Type: stringDefault: ""

SharePoint-Site-ID fuer Gruppenchat-/Kanal-Datei-Uploads

mediaAllowHosts
Type: string[]Default: MS/Teams domains

Erlaubte Hosts fuer das Herunterladen von Medienanhaengen

mediaAuthAllowHosts
Type: string[]Default: Graph + Bot Framework

Hosts, die Authorization-Header beim Herunterladen von Medien erhalten

dmHistoryLimit
Type: numberDefault: 50

Anzahl der letzten DM-Nachrichten, die als KI-Kontext pro Unterhaltung einbezogen werden

historyLimit
Type: numberDefault: 50

Maximale Kanal-/Gruppennachrichten, die als KI-Kontext einbezogen werden

Microsoft Teams Häufig gestellte Fragen

Microsoft Teams Fehlerbehebung

Bilder und Anhaenge fehlen in Kanalnachrichten

Graph API-Berechtigungen wurden nicht erteilt oder die Administratorzustimmung fehlt. Der Bot empfaengt einen Inhalts-Stub anstelle der tatsaechlichen Datei.

Stellen Sie sicher, dass Ihre App-Registrierung ueber ChannelMessage.Read.All und Chat.Read.All Graph-Berechtigungen mit Administratorzustimmung verfuegt. Installieren Sie die Teams-App nach dem Aktualisieren der Berechtigungen neu. Beenden Sie den Teams-Client vollstaendig und oeffnen Sie ihn erneut, um zwischengespeicherte Berechtigungen zu aktualisieren.
Bot antwortet nicht in Kanaelen (funktioniert nur in DMs)

Der Bot erfordert standardmaessig eine @Erwaehnung in Kanaelen und Gruppenchats, oder RSC-Berechtigungen sind nicht konfiguriert.

Erwaehnen Sie den Bot entweder mit @Erwaehnung in Kanalnachrichten, oder setzen Sie requireMention: false in Ihrer Konfiguration und fuegen Sie die RSC-Berechtigung ChannelMessage.Read.Group zu Ihrem App-Manifest hinzu. Installieren Sie die App in jedem Team nach der Aktualisierung des Manifests neu.
Teams App Manifest wird nach Aenderungen nicht aktualisiert

Teams cached App-Metadaten aggressiv. Das alte Manifest wird noch verwendet.

Erhoehen Sie das version-Feld in manifest.json (z.B. 1.0.0 → 1.1.0), packen Sie das Paket neu als ZIP, entfernen Sie die alte App aus Teams, installieren Sie das aktualisierte Paket und beenden Sie den Teams-Client hart und starten Sie ihn neu.
401 Unauthorized-Fehler am Webhook-Endpunkt

Die appId, appPassword oder tenantId in der OpenClaw-Konfiguration stimmt nicht mit der Azure Bot-Registrierung ueberein, oder es wird manuell ohne korrekte Azure JWT-Tokens getestet.

Ueberpruefen Sie, ob alle drei Anmeldedaten genau mit den Werten im Azure Portal uebereinstimmen. Testen Sie Ihren Bot mit dem integrierten Web Chat von Azure (in der Bot-Ressource → Im Web Chat testen), um zu bestaetigen, dass der Bot funktioniert, bevor Sie Teams-spezifische Probleme beheben. Stellen Sie sicher, dass Ihre tenantId mit dem Verzeichnis uebereinstimmt, in dem der Bot registriert wurde.
Bot funktioniert nicht in privaten Kanaelen

Microsoft Teams hatte in der Vergangenheit eine eingeschraenkte Bot-Unterstuetzung in privaten Kanaelen. Seit Anfang 2026 rollt Microsoft erweiterte App-Unterstuetzung fuer private Kanaele aus, diese ist moeglicherweise aber noch nicht in allen Tenants verfuegbar.

Pruefen Sie, ob Ihr Tenant das Update fuer die App-Unterstuetzung in privaten Kanaelen erhalten hat. Falls noch nicht verfuegbar, verwenden Sie stattdessen Standard- (oeffentliche) Kanaele, Gruppenchats oder DMs. Apps muessen explizit zu jedem privaten Kanal hinzugefuegt werden — die Installation auf Team-Ebene gilt nicht automatisch fuer private Kanaele.