---
title: "Microsoft Teams"
description: "Verbinden Sie einen Microsoft-Teams-Bot, damit Chats und Kanäle Beeuni-Sitzungen starten und fortsetzen können."
---

Microsoft Teams ist ein Kanal: Eine `@`-Erwähnung in einem Teams-Chat oder -Kanal startet eine [Sitzung](/docs/de/work/sessions), und der Agent antwortet direkt dort mit Live-Fortschritt. Es gelten dieselben Regeln für Sitzungen, Identität und Anmeldedaten wie für [Slack](/docs/de/connect/slack); auf dieser Seite erfahren Sie, was speziell für Teams gilt.

Jedes Projekt kann Teams verbinden. Es muss kein Feature-Flag aktiviert werden.

<a id="connect"></a>

## Verbinden

Es gibt zwei Möglichkeiten. Beide finden Sie auf der Seite **Connectors → Channels** des Projekts:

- **Mit einem Klick (verwaltet).** Ein **Teams-Tenant-Administrator** klickt auf **Add to Teams**, meldet sich an und erteilt die Zustimmung. Beeuni veröffentlicht die App automatisch im Teams-Katalog Ihrer Organisation — Sie müssen nichts erstellen oder einfügen. Anschließend wird in der Zeile **Add to Teams** angeboten (ein Deeplink zum Teams-Client), sodass jeder den Bot zu einem Chat oder Kanal hinzufügen kann. Informationen zum Aktualisieren der App, wenn Beeuni eine neuere Version veröffentlicht, finden Sie unter [App aktualisieren](#update-the-app).
- **Eigenen Bot verwenden.** Klicken Sie auf **Use your own Microsoft Teams app**, um einen Assistenten mit drei Schritten zu öffnen: Registrieren Sie einen Azure Bot, verbinden Sie ihn über seine App-ID, sein Clientgeheimnis und seine Mandanten-ID mit Beeuni, und laden Sie dann das generierte App-Paket herunter und laden Sie es in Teams hoch. Wählen Sie diese Option, wenn Sie Ihre eigene Bot-Registrierung verwalten.

  Die Reihenfolge ist wichtig. Beeuni erstellt das Manifest anhand **Ihrer** App-ID. Daher kann das Paket erst nach Schritt 2 generiert werden — der Assistent zeigt Ihnen den Messaging-Endpunkt, den Sie in Azure einfügen müssen, bevor er nach weiteren Angaben fragt.

Die CLI bietet dieselben Funktionen wie das Dashboard:

```bash
beeuni channels connect --platform teams      # prints the admin-consent URL
beeuni channels status --platform teams        # tenant, catalog, publish state, app version
beeuni channels disconnect --platform teams
```

<a id="update-the-app"></a>

## App aktualisieren

Beeuni ergänzt seine Teams-App mit der Zeit um Berechtigungen. App-Version 1.1.0 fügte `ChannelMessage.Read.Group` hinzu, die der Agent benötigt, um einen Kanal-Thread zu lesen. Version 1.3.0 fügte `ChatMessage.Read.Chat` hinzu, sodass eine Antwort in einem Gruppenchat eine Sitzung ohne Erwähnung fortsetzt. Eine Organisation mit Version 1.0.0 verweigert jeden Thread-Zugriff, und die Ablehnung, die der Agent erhält, nennt die Person, die das Problem beheben muss.

Zwei Personen aktualisieren die App, und zwar in dieser Reihenfolge:

1. **Ein Teams-Administrator veröffentlicht das Update.** Wenn der Katalog Ihrer Organisation eine ältere Version enthält, wird auf der Seite „Channels“ **Update the Beeuni app in Teams** angezeigt, und die Schaltfläche in der Teams-Zeile lautet **Publish app update**. Der Administrator klickt darauf und meldet sich bei Microsoft an. `beeuni channels status --platform teams` gibt beide Versionen aus, und `beeuni channels connect --platform teams` gibt den Anmeldelink aus.
2. **Ein Team-Besitzer aktualisiert die App in jedem Team, in dem Teams dies anbietet.** Öffnen Sie in Teams das Team und wählen Sie **⋯ → Manage team → Apps**. Wählen Sie bei der Beeuni-App **Update** und bestätigen Sie. Teams installiert Updates automatisch, sofern sie keine Berechtigung oder Nachrichtenaktion hinzufügen; in diesen Fällen muss ein Team-Besitzer tätig werden.

Beeuni speichert bei jeder Veröffentlichung die App-Version. Bei Installationen, die veröffentlicht wurden, bevor Beeuni Versionen speicherte, wird der Hinweis bis zur nächsten Veröffentlichung angezeigt.

<a id="chats-channels-and-mentions"></a>

## Chats, Kanäle und Erwähnungen

- **Persönlicher Chat:** Jede Nachricht erreicht den Bot.
- **Teamkanal / Gruppenchat:** Ein neuer Beitrag benötigt eine `@`-Erwähnung. Danach wird eine Antwort in einer Unterhaltung, für die der Bot bereits zuständig ist, **ohne** Erwähnung fortgesetzt — wie bei einem Slack-Thread. Dafür benötigt die App die Berechtigungen `ChannelMessage.Read.Group` (Kanäle) und `ChatMessage.Read.Chat` (Gruppenchats), denen der Tenant-Administrator beim Hinzufügen der App zustimmt. Wurde die App hinzugefügt, bevor diese Berechtigungen angefordert wurden, muss ein Team-Besitzer sie aktualisieren: siehe [App aktualisieren](#update-the-app).

Jeder Chat und jede Unterhaltung in einem Kanal hat eine eigene Sitzung. Die erste Nachricht erstellt sie; spätere Nachrichten setzen sie fort, auch nachdem die Sandbox angehalten und fortgesetzt wurde. Wenn ein Tenant mit mehr als einem Projekt verbunden ist, wird bei der ersten Nachricht ohne Zuordnung eine **Projektauswahl** angezeigt, und die Auswahl wird gespeichert. In einem Kanal wird die Auswahl nur bei einer Nachricht angezeigt, in der der Bot erwähnt wird. Bei einem Befehl zum Projekt, etwa `/models`, wird zuerst nach dem Projekt gefragt.

In einem Kanal startet jeder neue Beitrag eine eigene Sitzung. Ein persönlicher Chat oder Gruppenchat ist während seiner gesamten Laufzeit eine Unterhaltung und behält daher eine Sitzung bei, bis Sie `/new` senden. Senden Sie danach eine Nachricht (`/new summarize today's deploys`), um mit dieser Nachricht die neue Sitzung zu starten. Die vorherige Sitzung bleibt mit ihrem vollständigen Verlauf in Beeuni erhalten, und die Bestätigung enthält einen Link zu ihr.

<a id="conversation-names"></a>

## Namen von Unterhaltungen

Teams sendet IDs wie `19:…@thread.tacv2;messageid=…`. Auf der Seite „Channels“ und in `beeuni channels bindings` werden die in Teams angezeigten Namen verwendet:

| Unterhaltung | Name | Unter dem Namen |
|---|---|---|
| Ein Kanalbeitrag | `Team › Channel` | Der Titel der Sitzung, mit dem sich zwei Beiträge im selben Kanal unterscheiden lassen |
| Ein Gruppenchat | Der Titel des Chats | Gruppenchat |
| Ein persönlicher Chat | Die Person | Persönlicher Chat |

Eine Kanalnachricht enthält die Team-ID, aber nicht den Teamnamen. Deshalb ruft Beeuni die Team- und Kanalnamen von Teams ab und speichert sie. Ein Beitrag im Kanal „General“ eines Teams erhält seinen Namen, wenn er das nächste Mal auf der Seite „Channels“ angezeigt wird. Ein Beitrag in einem anderen Kanal erhält seinen Namen mit der nächsten Nachricht. Bis dahin wird **Channel thread** angezeigt.

<a id="who-may-join-a-session"></a>

## Wer einer Sitzung beitreten darf

Für jede Unterhaltung gilt eine Beitrittsrichtlinie, die Sie in Teams mit `/policy` oder auf der Seite „Channels“ festlegen können. Dort zeigt **N channels** in der Teams-Zeile alle Unterhaltungen an:

- **open** (Standard) — Jedes verknüpfte Projektmitglied kann einer hier gestarteten Sitzung beitreten.
- **approval** — Der Sitzungsbesitzer erhält für jede neue Person eine Karte zum Genehmigen oder Ablehnen.
- **owner** — Nur die Person, die die Sitzung gestartet hat.

Bei **approval** und **owner** ist die Sitzung auch in Beeuni nicht für das gesamte Projekt sichtbar: Nur der Besitzer, die in die Sitzung aufgenommenen Personen und Kontoadministratoren, die Sitzungen überwachen, können sie sehen. Eine Entscheidung auf einer Prüf- oder Genehmigungskarte setzt den Agenten unter jeder Richtlinie fort.

<a id="identity-linking"></a>

## Identitätsverknüpfung

Der Absender verknüpft sein Beeuni-Konto einmalig mit `/login`. Anschließend wird der Agent mit seinem Konto und dessen eigenen Anmeldedaten, Geheimnissen und verbundenen Apps ausgeführt. Ein nicht verknüpfter Absender oder jemand ohne Zugriff auf das Projekt erhält eine Karte zum Verbinden oder Anfordern des Zugriffs statt einer Sitzung.

Der Anmeldelink wird nur dort angezeigt, wo nur Sie ihn sehen können: in Ihrem Einzelchat mit dem Bot oder, in einem Kanal oder Gruppenchat, in einer Antwort mit dem Hinweis **Only you can see this message**. Der Link verknüpft die Person, für die er erstellt wurde, mit der Person, die ihn öffnet. Deshalb wird er niemals an einem für andere sichtbaren Ort angezeigt. Wenn Teams diese private Antwort ablehnt, sendet der Bot den Link an Ihren privaten Chat mit ihm und weist Sie im Gespräch darauf hin. Teams erlaubt dies nur, wenn Sie die App selbst hinzugefügt haben. Andernfalls fordert die Karte Sie auf, einen privaten Chat mit dem Bot zu öffnen und dort `/login` zu senden. Eine Nachricht, die Sie nicht verknüpft im Kanal gesendet haben, wird nach dem Verknüpfen ausgeführt, sofern Sie dies innerhalb von 10 Minuten tun. Wenn Sie die Verknüpfung im Browser abgeschlossen haben, bestätigt Ihr privater Chat mit dem Bot, mit welchem Beeuni-Konto Sie verknüpft sind.

Ein Anmeldelink kann einmal verwendet werden und läuft nach 10 Minuten ab. Ein Teams-Konto, das mit einem Beeuni-Konto verbunden ist, kann nicht mit einem anderen verbunden werden: Senden Sie zuerst `/logout`. Wenn Ihre Organisation eine Zwei-Faktor-Authentifizierung verlangt, fordert Beeuni vor der Verknüpfung den zweiten Faktor an. Der Chat läuft dann mit dem Faktor, mit dem Sie sich verbunden haben. Ein Link, der ohne diesen Faktor erstellt wurde, fordert Sie auf, die Verknüpfung erneut durchzuführen.

Wenn jemand ohne Zugriff danach fragt, erhalten alle Kontoinhaber und Admins die Anfrage in Beeuni. Wer Teams verknüpft hat, erhält sie außerdem im privaten Chat mit dem Bot, mit einer Schaltfläche **In Beeuni überprüfen**.

<a id="private-replies"></a>

## Private Antworten

In einem Kanal oder Gruppenchat ist das, was der Bot einer Person sagt, nur für diese Person sichtbar und mit **Nur du kannst diese Nachricht sehen** gekennzeichnet, wie die flüchtigen Nachrichten von Slack:

- die Antworten auf deine Befehle;
- die Karte zum Verknüpfen deines Kontos oder zum Anfordern des Zugriffs;
- warum deine Nachricht nicht ausgeführt wurde: die Beitrittsrichtlinie oder ein Agent, den du möglicherweise nicht verwenden darfst;
- unter **Genehmigung** die Genehmigungskarte des Inhabers mit den Optionen Approve / Deny sowie die Entscheidung an die anfragende Person.

Die Karte **Wird ausgeführt…**, die alle sehen, erscheint nur, wenn deine Nachricht ausgeführt werden darf. Teams löscht eine private Antwort nach 24 Stunden. Wenn Teams eine private Antwort ablehnt, veröffentlicht der Bot die Karte stattdessen für die gesamte Unterhaltung. Eine Ausnahme ist der Anmeldelink: Er wird dann an deinen privaten Chat mit dem Bot gesendet, niemals an die Unterhaltung.

<a id="roles-and-permissions"></a>

## Rollen und Berechtigungen

Ein Chat hat keine eigenen Beeuni-Anmeldedaten. Daher wird jede Aktion mit dem verknüpften Beeuni-Konto der Person ausgeführt, die sie vorgenommen hat, und mit der Projektrolle dieses Kontos. Kontoinhaber und Admins gelten als Projektmanager.

| Aktion | Wer darf sie ausführen? |
| --- | --- |
| Eine Nachricht senden, auf die der Agent antwortet | Ein verknüpftes Konto mit Zugriff auf das Projekt, vorbehaltlich der Beitrittsrichtlinie der Unterhaltung |
| Einen Lauf stoppen | Die Person, deren Nachricht beantwortet wird, oder jede Person, die für diese Sitzung zugelassen wurde und das Projekt weiterhin verwenden darf |
| `/new` in einem Gruppenchat | Ein verknüpftes Projektmitglied; unter `approval` oder `owner` eine Person, die für die aktuelle Sitzung zugelassen wurde |
| Projekt, Agent, Modell oder Richtlinie ändern | Ein Projektmanager; in einem persönlichen Chat mit dem Bot jedes Projektmitglied |
| Eine Überprüfung genehmigen oder ablehnen | Ein Projektmanager |
| Einen Connector-Aufruf genehmigen oder ablehnen | Ein Projektmanager oder die Person, die die Sitzung gestartet hat |
| Jemanden zu einer `approval`-Sitzung zulassen | Der Sitzungsinhaber |
| Zugriff anfordern | Jede verknüpfte Person; alle Kontoinhaber und Admins werden einmal benachrichtigt |

Eine Person, die von einem Agenten ausgeschlossen ist, kann in Teams wie in Beeuni keine Sitzung mit diesem Agenten starten.

<a id="commands"></a>

## Befehle

Gib diese Befehle in einem Chat mit dem Bot ein (in einem Kanal musst du ihn zuerst mit `@` erwähnen):

| Befehl | Funktion |
| --- | --- |
| `/help` | Befehle auflisten |
| `/login`, `/logout`, `/whoami` | Dein Beeuni-Konto verknüpfen, trennen oder anzeigen |
| `/status` | Effektives Projekt, Agent und Modell an diesem Ort sowie den laufenden Vorgang anzeigen |
| `/stop` | Den hier laufenden Vorgang stoppen |
| `/new [message]` | Eine neue Sitzung in diesem Chat starten (persönliche Chats und Gruppenchats) |
| `/models`, `/model <ref>` | Das Modell für diese Unterhaltung auswählen — siehe [Modelle und Schlüssel](#models-and-keys) |
| `/agents`, `/agent <name>` | Den Agenten für diese Unterhaltung auswählen |
| `/projects`, `/use <name>` | Verknüpfte Projekte auflisten oder dieses Projekt auf ein anderes verweisen lassen (nicht beim Bot eines Projekts) |
| `/policy [open\|approval\|owner]` | Anzeigen, wer an den hier gestarteten Sitzungen teilnehmen darf |
| `/unbind` | Die Verknüpfung dieser Unterhaltung mit ihrem Projekt trennen; mit der nächsten Nachricht wird erneut ein Projekt ausgewählt |
| `/home` | Die Projekte der Organisation und mögliche nächste Schritte anzeigen |

Bei jeder Nachricht öffnet **⋯ → In Beeuni öffnen** die Sitzung, zu der die Unterhaltung gehört. Wenn du die App für dich selbst hinzufügst, beginnt dein privater Chat mit dem Bot mit derselben Übersicht wie `/home`.

<a id="models-and-keys"></a>

## Modelle und Schlüssel

`/models` listet alle Modelle auf, die du hier ausführen kannst, genau wie die Modellauswahl im Web: Beeuni-Modelle und Modelle, die du über einen API-Schlüssel eines Anbieters oder ein ChatGPT-Abonnement erreichst. Bei jedem Modell wird angegeben, wie es bezahlt wird. Eine lange Liste lässt sich durchsuchen. Tippe auf ein Modell oder gib `/model <id>` ein; mit `/model default` wechselst du zurück zum Projektstandard.

Welche Schlüssel zählen, hängt vom Chat ab:

- **Ein persönlicher Chat mit dem Bot** — deine eigenen Schlüssel und dein ChatGPT-Abonnement sowie mit dem Projekt geteilte Schlüssel. Die Sitzungen sind nur für dich sichtbar.
- **Ein Gruppenchat oder Kanal** — nur Schlüssel, die mit dem gesamten Projekt geteilt werden. Der Chat wird gemeinsam genutzt, und ein persönlicher Schlüssel würde allen darin ermöglichen, das Abonnement einer Person zu nutzen. Wähle ein solches Modell stattdessen in einem persönlichen Chat aus.

Ein Modell, das Schlüssel verwendet, nutzt alle Schlüssel, die du für seinen Anbieter verwenden darfst. Bei Erreichen von Ratenlimits wechselt es zwischen ihnen. Die Auswahl gilt für die nächste Nachricht; der Chat behält seine Sitzung bei. Zum Ändern des Modells einer laufenden Sitzung ist ein verknüpftes Konto erforderlich. Bei der Richtlinie `owner` oder `approval` kann nur der Sitzungsinhaber das Modell ändern. Ein persönlicher Chat, dessen Sitzung gestartet wurde, bevor Sitzungen dort privat wurden, teilt diese Sitzung weiterhin mit dem Projekt: `/model` weist darauf hin, und `/new` startet eine private Sitzung. Siehe [Anbieterschlüssel und Mitgliederzugriff](/docs/de/project/models#provider-keys-and-member-access).

<a id="while-the-agent-works"></a>

## Während der Agent arbeitet

Der Agent antwortet in einer Karte: Sie zeigt zunächst seine Arbeitsschritte und anschließend die Antwort. Eine lange Antwort wird an einem Zeilenende abgeschnitten, als gekürzt gekennzeichnet und mit einem Link zur vollständigen Sitzung in Beeuni versehen. Eine weitere Nachricht wartet, bis der aktuelle Vorgang abgeschlossen ist, und erhält dann eine eigene Karte. Ein stiller Schritt beendet keinen Vorgang; nur der Abschluss durch die Laufzeit beendet ihn.

<a id="stopping-a-run"></a>

## Einen Vorgang stoppen

Während der Agent arbeitet, enthält seine Live-Karte eine Schaltfläche **Stop**. `/stop` bewirkt dasselbe, nachdem die Karte aus dem sichtbaren Bereich gescrollt ist. Beide beenden den Vorgang in der Laufzeit, nicht nur auf der Karte — bleibt ein Vorgang offen, wird die nächste Nachricht in der Unterhaltung davon übernommen, statt beantwortet zu werden.

Die Person, deren Nachricht beantwortet wird, kann den Vorgang stoppen. Das gilt auch für jede Person, die für diese Sitzung zugelassen wurde, solange sie das Projekt weiterhin verwenden darf. Eine unbeteiligte Person im Kanal kann das nicht, ebenso wenig eine Person, die für eine frühere Sitzung des Chats zugelassen wurde.

<a id="files"></a>

## Dateien

Der Agent sendet Dateien mit `teams send --file`. Bilder werden in persönlichen Chats, Gruppenchats und Kanälen direkt angezeigt. Bei zu großen Bildern wird in einem persönlichen Chat stattdessen eine OneDrive-Einwilligungskarte und in einem Kanal stattdessen eine Teamdatei verwendet; ein Gruppenchat kann keine zu großen Übertragungen empfangen. Andere Dateien werden in einem persönlichen Chat als Einwilligungskarte oder, wenn sie mit einem Team geteilt werden, als SharePoint-Link gesendet. Eingehende Dateien und eingefügte Bilder, auch Bilder im Text einer Kanalnachricht, stehen dem Agenten zum Herunterladen und Bearbeiten zur Verfügung.

- Ein in einen Kanal oder Gruppenchat eingefügtes Bild wird nur heruntergeladen, wenn der Agent diesen Thread oder Chat gemäß den Regeln unter [Einen Kanal lesen](#reading-a-channel) lesen darf. Andernfalls antwortet `teams download` mit `403`.
- Der Download wird bei 50 MB abgebrochen und antwortet mit `413`.
- `teams history` und `teams thread` listen die Inline-Bilder eines Beitrags auf (`images`, jeweils eine URL für `teams download`) sowie die Namen der über SharePoint geteilten Dateien (`files`). Der Agent kann keine SharePoint-Datei herunterladen.

Füge einen Screenshot ein und frage danach: Der Durchlauf wird auf einem Modell ausgeführt, das Bilder lesen kann, selbst wenn das Modell der Unterhaltung nur Text verarbeitet — die Modellauswahl der Sitzung bleibt unverändert. Ein Modell, das die Sitzung nicht mehr ausführen kann — etwa weil ein Schlüssel widerrufen wurde oder der Chat ein ChatGPT-Abonnement nicht nutzen darf — wird für diese Nachricht auf dieselbe Weise ersetzt, anstatt dass sie fehlschlägt.

<a id="questions-and-forms"></a>

## Fragen und Formulare

Der Agent fragt über Steuerelemente statt in Prosa. Eine Frage mit bis zu sechs Optionen
bekommt eine Schaltfläche pro Option. Bei mehreren Fragen, einer Frage mit mehreren
Auswahlmöglichkeiten oder einer längeren Liste wird ein Formular mit einem Feld für die eigene
Antwort angezeigt. Für Datumsangaben, Uhrzeiten, Zahlen und Ein-/Aus-Optionen werden passende
Eingabefelder verwendet. Deine Antwort erreicht den Agenten als deine
nächste Nachricht, gekennzeichnet mit der Frage, auf die sie antwortet. Du kannst jederzeit stattdessen
eine Antwort eingeben.

<a id="approvals"></a>

## Genehmigungen

Wenn ein Agent eine menschliche Entscheidung braucht, bevor er fortfährt — etwa für einen riskanten Schritt oder eine
Änderung, die er genehmigen lassen möchte — erstellt er ein Prüfelement. Wenn die Sitzung über diese Unterhaltung gestartet wurde, erscheint die Entscheidung hier als Karte: mit Titel, Zusammenfassung,
Risikostufe und **Genehmigen**, **Änderungen anfordern** und **Ablehnen** sowie einem Link
zu Beeuni.

Die Karte enthält optional ein Feedbackfeld. Was du eingibst, wird zusammen mit der
Entscheidung gespeichert und an den Agenten weitergegeben. So erfordert „Änderungen anfordern“ keine zweite Runde, um nachzufragen, was du gemeint hast. Das Feld ist bewusst optional — für ein einfaches
Genehmigen sollte keine Eingabe nötig sein.

Alle in der Unterhaltung sehen die Karte, aber handeln kann nur, wer ein verknüpftes
Beeuni-Konto mit Zugriff auf das Projekt hat.

<a id="posting-on-its-own"></a>

## Selbstständig posten

Zusätzlich zu Antworten an der Stelle, an der er gefragt wurde, kann der Agent in jedem Chat oder
Kanal posten, in dem der Bot für dieses Projekt bereits ist — etwa eine nächtliche Zusammenfassung, einen Alarm,
eine Übergabe. Er kann keine Unterhaltung erreichen, zu der er nie hinzugefügt wurde.

<a id="when-a-session-will-not-start"></a>

## Wenn eine Sitzung nicht gestartet werden kann

Beeuni erklärt, was nicht stimmt, statt dich zu bitten, es erneut zu versuchen, denn die meisten
Fehler beim Start lassen sich durch einen erneuten Versuch nicht beheben: eine Sandbox-Vorlage, die nicht mehr
existiert, ein nicht verknüpftes Konto, ein Projekt, auf das du nicht zugreifen kannst, oder ein Arbeitsbereich ohne Guthaben. Für jeden Fehler werden die nötige Behebung und der passende Befehl genannt.

Wenn der für die Unterhaltung festgelegte Agent gelöscht oder umbenannt wurde, erscheint der Fehler als Auswahlmenü: Wähle einen verfügbaren Agenten und sende dann deine Nachricht erneut. Die Liste enthält nur Agenten, auf die du Zugriff hast.

<a id="reading-a-channel"></a>

## Einen Kanal lesen

In einem Kanal empfängt der Bot nur Nachrichten, in denen er erwähnt wird. Daher befindet sich die Unterhaltung, nach der er gefragt wurde, nicht in seiner Sitzung. Wenn er diesen Kontext braucht, liest der Agent den Thread, in dem er erwähnt wurde, oder die letzten Beiträge des Kanals über die Berechtigung `ChannelMessage.Read.Group`, die die App beim Hinzufügen zu einem Team anfordert. Ein Team, das die App hinzugefügt hat, bevor diese Berechtigung angefordert wurde, muss sie aktualisieren: siehe [App aktualisieren](#update-the-app). In einem persönlichen Chat erreicht jede Nachricht bereits die Sitzung, daher gibt es nichts Älteres zu lesen.

Jedes Projekt, das mit demselben Microsoft-365-Mandanten verbunden ist, verwendet dieselbe App. Deshalb hält Beeuni jeden Lesezugriff auf die Unterhaltungen des jeweiligen Projekts beschränkt. In einem Kanal ist jeder neue Beitrag eine eigene Unterhaltung:

| Lesen | Zulässig, wenn |
| --- | --- |
| Ein Thread (`teams thread`) | Der Thread eine Unterhaltung dieses Projekts ist oder zu keinem Projekt gehört und der Kanal lesbar ist |
| Die letzten Beiträge eines Kanals (`teams history`) | Dieses Projekt eine Unterhaltung in dem Kanal hat. Beiträge, die eine Unterhaltung eines anderen Projekts beginnen, werden ausgelassen |
| Ein Kanal, in dem kein Projekt eine Unterhaltung hat | Kein anderes Projekt mit dem Mandanten verbunden ist |

Bei einem verweigerten Lesezugriff antwortet `403` mit dem Grund `conversation_not_in_project` und
einer Nachricht, in der der Kanal oder Thread genannt wird. Um in einem Mandanten mit mehreren Projekten
einen Kanal der ersten Art zu lesen, erwähne den Bot darin und wähle dieses Projekt aus.

`get_channel` und `list_channels` gelten für Standardkanäle. Ein privater oder
freigegebener Kanal wird nur angezeigt, wenn der Agent ihn gemäß den obigen Regeln lesen darf.
`get_team`, `list_members`, `get_user` und `list_teams` lesen das Mandantenverzeichnis
und sind nicht eingeschränkt.

<a id="limits"></a>

## Einschränkungen

Teams-Bots können keine Nachrichtenreaktionen hinzufügen oder Nachrichten durchsuchen — diese Slack-Funktionen
haben in Teams keine Entsprechung. Der Agent kann einen Kanal nur in einem Team lesen, zu dem die App hinzugefügt wurde, und nur gemäß den Regeln unter
[Kanal lesen](#reading-a-channel).
