Gruppenchats

Auf Kanälen für Microsoft Teams und Slack können Skills und digitale Assistenten für Gruppenchats verfügbar gemacht werden, in denen mehrere menschliche Teilnehmer mit einem digitalen Assistenten in derselben Unterhaltung zusammenarbeiten können.

Gruppenchats eignen sich besonders für Situationen, in denen ein Skill Aktionen ausführen oder Informationen für eine Gruppe menschlicher Teilnehmer bereitstellen soll. In einem Gruppenchat gilt Folgendes:

  • Alle Aspekte der Unterhaltung sind für alle Teilnehmer sichtbar.
  • Der Skill antwortet nur auf Nachrichten, in die der Benutzer eine Erwähnung des Microsoft-Bots oder der Slack-App aufnimmt, die den Skill darstellt. Das bedeutet, dass die menschlichen Teilnehmer in einem Gruppenchat Nachrichten untereinander austauschen können, ohne den Skill einzubeziehen. Beispiel: Sie möchten besprechen, welche Aktion vom Skill angefordert werden soll, bevor sie diese Anforderung stellen.
  • Standardmäßig vermittelt der Skill nicht zwischen Benutzern. Er antwortet auf Eingaben in der Reihenfolge, in der sie eingehen, als ob sie alle von derselben Person stammen würden. Beispiel: Wenn ein Benutzer einem anderen Benutzer widerspricht, versucht der Bot nicht, die die Meinungsverschiedenheit zu schlichten, es sei denn, es wurde Logik in einer benutzerdefinierten Komponente dazu programmiert. (Dazu wäre es aber wahrscheinlich erforderlich, dass Benutzer angemeldet sind, die der Bot explizit verfolgen kann.)
  • Jede Abfrage, die an einem Skill innerhalb eines Gruppenchats gesendet wird, basiert auf der Identität (und im Falle von Skills, die eine Authentifizierung erfordern, den entsprechenden Zugangsdaten) des Benutzers im Gruppenchat, der die Abfrage durchgeführt hat.

Sie können den Skill auch so einrichten, dass alle Teilnehmer eines Gruppenchats authentifiziert werden müssen.

Damit der Gruppenchat funktioniert, müssen Sie einen Microsoft Teams- oder Slack-Kanal einrichten.

Wenn Sie einen Microsoft Teams-Kanal verwenden, stellen Sie sicher, dass Sie die entsprechenden Botgeltungsbereiche ausgewählt haben, um den Gruppenchat zu aktivieren. Sie können Team und/oder Gruppenchat auswählen (die zweite Option betrifft eine benutzerdefinierte Gruppe).

Wenn Sie Slack als Kanal verwenden, stellen Sie sicher, dass die Slack-App die folgenden Ereignisabonnements enthält:

  • message.im
  • app_mention
  • message.mpim
  • message.channels

Nachdem ein Kanal für den Skill oder digitalen Assistenten eingerichtet wurde, der im Gruppenchat verwendet werden soll, können Benutzer den entsprechenden Microsoft-Bot oder die Slack-App zu einer Gruppe hinzufügen. In der Unterhaltung können sie den Bot oder die App mit einer Benutzererwähnung aufrufen.

Benutzerautorisierung in Gruppenchats

In Skills, die Sie für Gruppenchats einplanen, sollten Sie die Berechtigung benötigen, damit Benutzer Nachrichten senden können. Da mehrere Benutzer in einer Session auf den Skill zugreifen können, müssen Sie den Skill so konfigurieren, dass die Autorisierung für jeden Benutzer korrekt verarbeitet wird, und nicht nur für den Benutzer, der den Autorisierungsstatus zuerst vorfindet. Dazu verwenden Sie Folgendes:

  • Die Eigenschaft "Autorisierung erforderlich" für Statuswerte, in denen Sie die Autorisierung ersetzen möchten. Dadurch wird sichergestellt, dass ein Benutzer in diesem Status erst dann eine Nachricht in den Chat eingeben kann, wenn er autorisiert ist.
  • Das Ereignis "Benutzer autorisieren", um nicht autorisierte Benutzer an den entsprechenden Autorisierungsstatus zu leiten, wenn sie versuchen, eine Nachricht mit einem gesicherten Status in den Chat einzugeben.
  • Die Variable skill.system.event.value.authorizeUser.requestedState, um den Status zu identifizieren, bei dem ein nicht autorisierter Benutzer eine Nachricht im Chat eingibt (und somit den Status, zu dem er nach erfolgreicher Autorisierung umgeleitet werden sollte).
  • Die boolesche Eigenschaft system.message.channelConversation.groupConversation, auf die Sie verweisen können, wenn Sie bestimmen müssen, ob die Unterhaltung ein Gruppenchat ist.

Benutzerautorisierung für Gruppenchats erzwingen

Allgemeine Schritte zum Erzwingen der Autorisierung für jeden Benutzer in einem Gruppenchat:

  1. Wenn Sie die Authentifizierung für den Großteil der Statuswerte des Skills erzwingen möchten, konfigurieren Sie den Skill als Ganzes so, dass standardmäßig eine Autorisierung erforderlich ist. Führen Sie hierzu die folgenden Schritte aus:
    1. Klicken Sie auf Symbol zum Öffnen des Seitenmenüs, um das Seitenmenü zu öffnen, wählen Sie Entwicklung > Skills und dann Ihren Skill aus.
    2. Klicken Sie in der linken Navigationsleiste des Skills auf Symbol "Einstellungen".
    3. Klicken Sie auf die Registerkarte Konfiguration.
    4. Setzen Sie die Eigenschaft Autorisierung erforderlich auf true.

    Dadurch wird der Standardwert für die Eigenschaft "Autorisierung erforderlich" für alle Status im Dialogablauf festgelegt. Dieser Wert kann für einzelne Statuswerte außer Kraft gesetzt werden.

  2. Setzen Sie für Statuswerte, für die keine Autorisierung erforderlich ist, die Eigenschaft Autorisierung erforderlich auf false. Beispiel:
    Hinweis

    Alternativ dazu können Sie die Eigenschaft Autorisierung erforderlich des Skills auf false setzen und dann die Eigenschaft Autorisierung erforderlich für einzelne Statuswerte auf true setzen.
  3. Fügen Sie im Dialogablauf für die Benutzerauthentifizierung eine Komponente OAuth Accountlink oder OAuth 2.0 Accountlink hinzu.

    Verwenden Sie benutzerbezogene Variablen, um das Zugriffstoken und die authentifizierte Benutzer-ID zu speichern. Andernfalls würden die Autorisierungsinformationen jedes Benutzers, der dem Chat beitritt, die Autorisierungsinformationen des vorherigen Benutzers, der dem Chat beigetreten ist, außer Kraft setzen.

    Verwenden Sie für den pass-Übergang die Systemvariable skill.system.event.value.authorizeUser.requestedState, um den Benutzer in den Status zurückzukehren, in dem er versucht hat, der Unterhaltung beizutreten.

  4. Fügen Sie die Statuswerte für einen Autorisierungsfehler hinzu. Beispiel: Sie haben für die folgenden Fälle unterschiedliche Status:
    • Wenn die nicht erfolgreiche Autorisierung in einem Gruppenchat erfolgt. In diesem Fall kann sich der Benutzer möglicherweise nicht authentifizieren, aber die Unterhaltung kann mit den anderen Teilnehmern fortgesetzt werden.
    • Wenn die nicht erfolgreiche Autorisierung in einem Chat mit einer Einzelperson erfolgt. In diesem Fall kann die Unterhaltung einfach enden.
      Hinweis

      In diesem Fall können Sie die benutzerdefinierte Kanaleigenschaft ephemeral verwenden, um die Nachricht nur dem Benutzer anzuzeigen, der diese Antwort auslöst.
      responseItems:
        - type: "text"
          text: "Sorry ${profile.firstName}, you are not authorized to use this skill"
          channelCustomProperties:
            - channel: "slack"
              properties:
                ephemeral: true
  5. Ordnen Sie im Abschnitt Ereignismappings der Ablaufkonfiguration das Ereignis "Benutzer autorisieren" dem Benutzerauthentifizierungsstatus zu.

    Dieses Ereignis wird ausgelöst, wenn ein noch nicht autorisierter Benutzer versucht, der Unterhaltung beizutreten, und einen Status erreicht, der eine Autorisierung erfordert.

Nachrichten ohne Benutzermeldung in Slack-Gruppenchats aktivieren

Es ist möglich, Slack-Kanäle so zu konfigurieren, dass Nachrichten ohne Benutzererwähnungen der Slack-App an die Slack-App gesendet werden können. Dieses Verhalten könnte besonders für Slack-Kanäle nützlich sein, bei denen es viele Benutzer gibt, und sie wissen nicht alle, dass sie eine Benutzerangabe benötigen würden, damit die Slack-App antworten kann. Ein User Support Channel ist ein solches Beispiel.

So aktivieren Sie die Übergabe von Nachrichten ohne Erwähnung durch Benutzer an den digitalen Assistenten in Slack-Gruppenchats:

  • Wenn Sie den Kanal erstellen oder später die Konfiguration des Kanals ändern, setzen Sie den Schalter Nachrichten ohne App-Achtung im Gruppenchat zulassen auf EIN.

Benutzer können verhindern, dass Nachrichten an die Slack-App gesendet werden

In Slack-Kanälen, in denen Sie Nachrichten aktiviert haben, ohne dass ein Benutzer die Slack-App erwähnt hat, die an den digitalen Assistenten gesendet werden soll, kann es Fälle geben, in denen der Benutzer verhindern möchte, dass diese Nachrichten an den digitalen Assistenten gesendet werden. In diesem Fall können Sie den Umgebungsmodus initiieren, um zu verhindern, dass die Nachrichten über die Slack-App an den digitalen Assistenten gesendet werden. Dazu geben Sie in der Dialogablaufdefinition eine Postback-Aktion system.startAmbientMode an.

Der Postback zum Initiieren des Umgebungsmodus könnte ungefähr wie folgt aussehen:

responseItems:
  - type: "text"
    text: "Do you want to stop chatting with the skill?"
    name: "stopMessages"
    actions:
      - label: "Stop chatting with the skill"
        type: "postback"
        payload:
          action: "system.startAmbientMode"
        name: "stop"

Wenn der Benutzer diese Option auswählt, werden die folgenden Nachrichten des Benutzers erst an den digitalen Assistenten gesendet, wenn der Benutzer erneut eine Erwähnung der Slack-App in einer Nachricht eingibt.

Ebenso können Sie eine system.stopAmbientMode-Postback-Aktion in der Dialogablaufdefinition hinzufügen, um den Umgebungsmodus zu beenden.

Was Benutzer über Gruppenchats wissen müssen

Wenn Sie einen Skill erstellen, der in einem Gruppenchat verwendet werden soll, müssen Sie sicherstellen, dass Benutzer des Skills über Folgendes informiert sind:

  • Um den Skill (oder digitalen Assistenten) in den Gruppenchat einzubinden, adressieren Sie den entsprechenden Microsoft Teams-Bot oder die Slack-App mit einer Benutzererwähnung (@bot_name).
    Hinweis

    Bei Slack-Kanälen haben Sie auch die Möglichkeit, Nachrichten ohne Erwähnung durch einen Benutzer an die Slack-App zu senden. Siehe Nachrichten ohne Benutzermeldung in Slack-Gruppenchats aktivieren.
  • Für jede von Ihnen eingegebene Nachricht, auf die der Bot antworten soll, müssen Sie die Benutzererwähnung des Bots aufnehmen.
  • Wenn die Nachricht nur für die anderen menschlichen Teilnehmer bestimmt ist, schließen Sie keine Benutzererwähnung für den Bot ein. Der Bot ignoriert diese Nachrichten.
  • In Slack-Gruppenchats müssen die Chats im Thread gespeichert werden, in dem der Bot erstmals in die Unterhaltung eingeführt wurde. Wenn jemand außerhalb des Threads der Unterhaltung antwortet, wird eine neue Unterhaltung erstellt, die von der vorherigen unabhängig ist.
  • Wenn ein Teilnehmer am Gruppenchat eine Anforderung an den Bot stellt, ist dem Bot bewusst, welcher Benutzer die Anforderung gestellt hat. Daher basiert die Antwort auf die Anforderung gegebenenfalls auf der Identität und den Zugangsdaten des Anforderers. Wenn dann ein anderer Teilnehmer eine Anforderung sendet, basiert die Antwort auf diese Anforderung auf der Identität und den Zugangsdaten dieses zweiten Teilnehmers.
  • Alle Benutzer, die erfolgreich einem Gruppenchat beigetreten sind, können alle Antworten des Bots sehen. Es liegt in der Verantwortung der Teilnehmer im Gruppenchat, keine Informationen vom Bot anzufragen, die andere Teilnehmer nicht sehen dürfen.