OpenClaw Microsoft Teams Kanal
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.
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
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.
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.
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.
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.
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
{
"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
Azure Bot-Einrichtung & App-Registrierung
{
"channels": {
"msteams": {
"appId": "<APP_ID>",
"appPassword": "<APP_PASSWORD>",
"tenantId": "<TENANT_ID>"
}
}
}Teams App Manifest & RSC-Berechtigungen
DM-Richtlinien
{
"channels": {
"msteams": {
"dmPolicy": "allowlist",
"allowFrom": [
"user@org.com",
"40a1a0ed-4ff2-4164-a219-55518990c197"
]
}
}
}Gruppenchat- & Kanalverwaltung
{
"channels": {
"msteams": {
"groupPolicy": "allowlist",
"groupAllowFrom": ["user@org.com"],
"teams": {
"My Team": {
"channels": {
"General": {
"requireMention": true
}
}
}
}
}
}
}Antwortstile & Threading
{
"channels": {
"msteams": {
"replyStyle": "thread",
"teams": {
"19:abc...@thread.tacv2": {
"channels": {
"19:xyz...@thread.tacv2": {
"replyStyle": "top-level"
}
}
}
}
}
}
}Dateiverarbeitung & SharePoint
{
"channels": {
"msteams": {
"sharePointSiteId": "YOUR_SHAREPOINT_SITE_ID",
"mediaAllowHosts": ["*.microsoft.com", "*.sharepoint.com"],
"mediaAuthAllowHosts": ["graph.microsoft.com"]
}
}
}Adaptive Cards & Umfragen
Teams-ID-Extraktion
Microsoft Teams Konfigurationsreferenz
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | Microsoft Teams-Kanal aktivieren oder deaktivieren |
| appId | string | "" | Azure Bot App ID (Microsoft App ID). Alternativ kann die Umgebungsvariable MSTEAMS_APP_ID verwendet werden |
| appPassword | string | "" | Azure Bot Client Secret. Alternativ kann die Umgebungsvariable MSTEAMS_APP_PASSWORD verwendet werden |
| tenantId | string | "" | Azure AD Tenant ID fuer Single-Tenant-Authentifizierung. Alternativ kann die Umgebungsvariable MSTEAMS_TENANT_ID verwendet werden |
| webhook.port | number | 3978 | Port fuer den Webhook-Listener, der Bot Framework-Events empfaengt |
| webhook.path | string | "/api/messages" | Webhook-Endpunktpfad fuer eingehende Bot Framework-Nachrichten |
| dmPolicy | string | "pairing" | Steuert, wer dem Bot DMs senden kann. Optionen: pairing, allowlist, open, disabled |
| allowFrom | string[] | [] | AAD Object IDs, UPNs oder Anzeigenamen, die dem Bot DMs senden duerfen (wenn dmPolicy auf allowlist gesetzt ist) |
| groupPolicy | string | "allowlist" | Zugriffskontrolle fuer Gruppen/Kanaele. Optionen: allowlist, open, disabled |
| groupAllowFrom | string[] | [] | Erlaubte Absender in Gruppenchats. Greift auf allowFrom zurueck, wenn nicht gesetzt |
| teams | object | {} | Pro-Team- und Pro-Kanal-Konfigurationsueberschreibungen (replyStyle, requireMention, tools) |
| requireMention | boolean | true | @Erwaehnung in Kanaelen und Gruppenchats erfordern. Auf false setzen mit RSC-Berechtigungen, um auf alle Nachrichten zu antworten |
| replyStyle | string | "thread" | Antwortstil-Layout. Optionen: thread (klassische Posts), top-level (Slack-aehnliche Threads) |
| configWrites | boolean | true | /config set|unset-Befehle zur Laufzeitaenderung von Kanaleinstellungen erlauben |
| textChunkLimit | number | — | Maximale Zeichen pro ausgehender Nachricht vor dem Aufteilen |
| chunkMode | string | "length" | Strategie zum Aufteilen von Text. Optionen: length (harter Schnitt), newline (absatzorientiert) |
| sharePointSiteId | string | "" | SharePoint-Site-ID fuer Gruppenchat-/Kanal-Datei-Uploads |
| mediaAllowHosts | string[] | MS/Teams domains | Erlaubte Hosts fuer das Herunterladen von Medienanhaengen |
| mediaAuthAllowHosts | string[] | Graph + Bot Framework | Hosts, die Authorization-Header beim Herunterladen von Medien erhalten |
| dmHistoryLimit | number | 50 | Anzahl der letzten DM-Nachrichten, die als KI-Kontext pro Unterhaltung einbezogen werden |
| historyLimit | number | 50 | Maximale Kanal-/Gruppennachrichten, die als KI-Kontext einbezogen werden |
Microsoft Teams-Kanal aktivieren oder deaktivieren
Azure Bot App ID (Microsoft App ID). Alternativ kann die Umgebungsvariable MSTEAMS_APP_ID verwendet werden
Azure Bot Client Secret. Alternativ kann die Umgebungsvariable MSTEAMS_APP_PASSWORD verwendet werden
Azure AD Tenant ID fuer Single-Tenant-Authentifizierung. Alternativ kann die Umgebungsvariable MSTEAMS_TENANT_ID verwendet werden
Port fuer den Webhook-Listener, der Bot Framework-Events empfaengt
Webhook-Endpunktpfad fuer eingehende Bot Framework-Nachrichten
Steuert, wer dem Bot DMs senden kann. Optionen: pairing, allowlist, open, disabled
AAD Object IDs, UPNs oder Anzeigenamen, die dem Bot DMs senden duerfen (wenn dmPolicy auf allowlist gesetzt ist)
Zugriffskontrolle fuer Gruppen/Kanaele. Optionen: allowlist, open, disabled
Erlaubte Absender in Gruppenchats. Greift auf allowFrom zurueck, wenn nicht gesetzt
Pro-Team- und Pro-Kanal-Konfigurationsueberschreibungen (replyStyle, requireMention, tools)
@Erwaehnung in Kanaelen und Gruppenchats erfordern. Auf false setzen mit RSC-Berechtigungen, um auf alle Nachrichten zu antworten
Antwortstil-Layout. Optionen: thread (klassische Posts), top-level (Slack-aehnliche Threads)
/config set|unset-Befehle zur Laufzeitaenderung von Kanaleinstellungen erlauben
Maximale Zeichen pro ausgehender Nachricht vor dem Aufteilen
Strategie zum Aufteilen von Text. Optionen: length (harter Schnitt), newline (absatzorientiert)
SharePoint-Site-ID fuer Gruppenchat-/Kanal-Datei-Uploads
Erlaubte Hosts fuer das Herunterladen von Medienanhaengen
Hosts, die Authorization-Header beim Herunterladen von Medien erhalten
Anzahl der letzten DM-Nachrichten, die als KI-Kontext pro Unterhaltung einbezogen werden
Maximale Kanal-/Gruppennachrichten, die als KI-Kontext einbezogen werden
Microsoft Teams Häufig gestellte Fragen
Microsoft Teams Fehlerbehebung
Graph API-Berechtigungen wurden nicht erteilt oder die Administratorzustimmung fehlt. Der Bot empfaengt einen Inhalts-Stub anstelle der tatsaechlichen Datei.
Der Bot erfordert standardmaessig eine @Erwaehnung in Kanaelen und Gruppenchats, oder RSC-Berechtigungen sind nicht konfiguriert.
Teams cached App-Metadaten aggressiv. Das alte Manifest wird noch verwendet.
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.
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.