Widget-Tab
Widget-Tab
Betten Sie das ElevenLabs-Agent-Widget für Click-to-Talk in einen Microsoft Teams-Tab ein.
Überblick
Hosten Sie eine kleine HTML-Seite, die das Agent-Widget lädt, und stellen Sie sie als Teams-Tab bereit. Benutzer öffnen den Tab und sprechen im Teams-Client mit dem Agenten — ohne Telefonnummer oder Telefonie. Dies ist der schlankste Ansatz; verwenden Sie ihn für interne Self-Service-Assistenten und Demos.

So funktioniert es
Das Widget ist eine Webkomponente. Teams rendert die contentUrl eines Tabs in einer Webview (iframe), sodass das Widget genau wie auf einer Website läuft — einschließlich Mikrofonaufnahme, sofern die Seite in Teams eingebettet werden darf und Medienberechtigung erhält.
Teams führt kein rohes <script> aus, das in einen Chat, eine Nachricht oder eine Loop-Seite eingefügt wurde. Das Widget-Skript muss auf einer Seite liegen, die Sie hosten und die Teams dann als Tab einbettet.
Anforderungen
- Ein öffentlicher ElevenLabs-Agent mit deaktivierter Authentifizierung (Tab „Erweitert“ in den Agent-Einstellungen). Widgets erfordern dies.
- Ein HTTPS-Host für eine einzelne statische HTML-Datei (Vercel, Netlify, Cloudflare Pages, Azure Static Web Apps usw.).
- Die Berechtigung in Ihrem Tenant, eine benutzerdefinierte Teams-App hochzuladen (Teams Admin Center → Apps verwalten → Upload benutzerdefinierter Apps), falls Sie die Option für benutzerdefinierte Tabs verwenden.
Schritt 1 — Widget-Seite erstellen
Erstellen Sie agent-widget.html mit der Widget-Einbettung und Ihrer Agent-ID:
Stellen Sie die Seite auf Ihrem HTTPS-Host bereit und prüfen Sie zuerst, ob sie geladen wird und das Mikrofon in einem normalen Browser funktioniert.
Wenn Ihr Workspace eine Datenresidenz verwendet, fügen Sie das Attribut server-location des Widgets hinzu, damit es sich mit Ihrer Region verbindet — unterstützte Werte finden Sie unter Widget-Anpassung.
Testen Sie die Seite eigenständig in einem Browser, bevor Sie Teams konfigurieren. Wenn das Mikrofon dort nicht funktioniert, funktioniert es auch nicht in der Teams-Webview.
Schritt 2 — Zu Teams hinzufügen
Sie haben zwei Optionen, in aufsteigender Reihenfolge der Zuverlässigkeit für Sprache.
Option A — Website-Tab (am schnellsten, möglicherweise nur als Link)
Wählen Sie in einem Chat oder Kanal + Tab hinzufügen → Website, fügen Sie Ihre HTTPS-URL ein und speichern Sie.
Der integrierte Tab Website öffnet die Seite manchmal als externen Link, statt sie einzubetten — und selbst bei Einbettung kann der Mikrofonzugriff in der Teams-Desktop-Webview blockiert sein. Wenn Sprache nicht funktioniert, verwenden Sie Option B.
Option B — Benutzerdefinierte Tab-App (für Sprache empfohlen)
Eine kleine benutzerdefinierte Teams-App deklariert die Seite als statischen Tab und fordert Medienberechtigung an. Dadurch funktioniert das Mikrofon in Teams zuverlässig.
Manifest erstellen
Erstellen Sie manifest.json. Ersetzen Sie your-domain.com durch Ihren Host und legen Sie eine eindeutige GUID für id fest:
Die wichtigen Felder für Sprache sind devicePermissions: ["media"] (Mikrofon) und die Auflistung jeder Domain, die die Seite verwendet, in validDomains (unpkg.com für das Widget-Skript, *.elevenlabs.io für den Agenten).
App paketieren
Fügen Sie neben dem Manifest eine color.png (192×192) und outline.png (32×32, transparent) hinzu. Packen Sie dann das Manifest und die beiden Icons im Stammverzeichnis des Archivs als ZIP:
Hochladen und öffnen
In Teams: Apps → Ihre Apps verwalten → App hochladen → Benutzerdefinierte App hochladen, wählen Sie voice-agent.zip aus. Öffnen Sie dann den Tab Voice Agent und gewähren Sie Mikrofonzugriff, wenn Sie dazu aufgefordert werden.
Teams-Administratoren können die Client-Oberfläche überspringen und die App über PowerShell in der gesamten Organisation veröffentlichen — sie erscheint dann für alle unter Apps → Für Ihre Organisation erstellt:
Wenn keine Aufforderung erscheint, öffnen Sie das Dropdown-Menü des Tabs und wählen Sie App-Berechtigungen, um Mikrofonzugriff manuell zu gewähren:

Schritt 3 — Teams das Einbetten der Seite erlauben
Ihr Host muss Teams erlauben, die Seite per iframe einzubetten. Wenn Sie Response-Header steuern können, setzen Sie:
Wenn Teams die Seite weiterhin in einem Browser öffnet, statt sie einzubetten, wird die Seite für die iframe-Einbettung blockiert — korrigieren Sie die CSP / X-Frame-Options auf Ihrem Host.
Fehlerbehebung
Der Tab öffnet die Seite in einem Browser, statt sie einzubetten
Die Seite wird für iframe-Einbettung blockiert. Entfernen Sie alle X-Frame-Options: DENY/SAMEORIGIN und setzen Sie die oben gezeigte frame-ancestors-CSP, um die Teams-Domains zu erlauben. Die benutzerdefinierte Tab-App (Option B) ist außerdem zuverlässiger als der integrierte Website-Tab.
Das Widget wird geladen, aber das Mikrofon funktioniert nicht
Dies liegt an der Berechtigungsebene der Teams-Webview. Verwenden Sie die benutzerdefinierte Tab-App mit "devicePermissions": ["media"] und gewähren Sie der App in Teams Mikrofonberechtigung (Tab-Dropdown → App-Berechtigungen). Teams im Web und Teams auf dem Desktop verhalten sich unterschiedlich — testen Sie beides. Bieten Sie alternativ einen Link „Im Browser öffnen“ an.
Das Widget erscheint nie
Prüfen Sie, ob der Agent öffentlich ist und die Authentifizierung deaktiviert wurde (Agent-Einstellungen unter Erweitert) und ob unpkg.com und *.elevenlabs.io in validDomains des Manifests enthalten sind.