Claux en groupe

Sur les canaux pour Microsoft Teams et Slack, il est possible de mettre à disposition des compétences et des assistants numériques pour des clavardages en groupe, dans lesquels plusieurs participants humains peuvent collaborer avec un assistant numérique dans une même conversation.

Les clavardages en groupe sont utiles dans les situations où vous avez besoin d'une compétence pour effectuer des actions ou fournir des informations pour un groupe de participants humains. Dans un clavardage en groupe :

  • Tous les aspects de la conversation sont visibles à tous les participants.
  • La compétence ne répond qu'aux messages dans lesquels l'utilisateur mentionne le robot Microsoft ou l'application Slack qui représente la compétence. Cela signifie que les participants humains à un clavardage en groupe peuvent échanger des messages entre eux sans impliquer la compétence. Par exemple, ils voudront peut-être avoir une discussion pour s'entendre à l'avance sur ce qu'il faut demander à la compétence.
  • Par défaut, la compétence ne sert pas médiateur pas entre les utilisateurs. Elle répond aux entrées de l'ordre reçu comme si elles venaient toutes de la même personne. Par exemple, si un utilisateur contredit un autre utilisateur, le robot n'essaie pas de réconcilier les deux, à moins qu'une logique n'ait été programmée dans un composant personnalisé pour le faire (mais il faudrait probablement que les utilisateurs soient connectés pour que le robot puisse assurer le suivi explicitement).
  • Toute interrogation soumise à une compétence dans un clavardage en groupe est basée sur l'identité de l'utilisateur du groupe qui a soumis l'interrogation (et, dans le cas de compétences nécessitant une authentification, sur les données d'identification correspondantes) .

Vous pouvez également configurer la compétence pour exiger l'authentification de tous les participants à un clavardage en groupe.

Pour que le clavardage en groupe fonctionne, vous devez configurer un canal Microsoft Teams ou Slack.

Si vous utilisez un canal Microsoft Teams, assurez-vous d'avoir sélectionné les portées de robot appropriés pour activer le clavardage en groupe. Vous pouvez sélectionner Team (Équipe) et/ou Group Chat (Clavardage en groupe) (ce dernier est un groupe défini par l'utilisateur).

Si vous utilisez le canal Slack, assurez-vous que l'application Slack comporte les abonnements d'événement suivants :

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

Une fois qu'un canal est configuré pour utiliser la compétence ou l'assistant numérique dans le clavardage en groupe, les utilisateurs peuvent ajouter le robot Microsoft ou l'application Slack correspondants à un groupe. Dans la conversation, ils peuvent appeler le robot ou l'application avec une mention utilisateur.

Autorisation d'utilisateur dans les clavardages en groupe

Dans les compétences que vous ciblez pour les clavardages en groupe, vous voudrez peut-être exiger l'autorisation des utilisateurs d'envoyer des messages. Puisque plusieurs utilisateurs peuvent accéder à la compétence dans une session, vous devez configurer la compétence pour qu'elle traite correctement l'autorisation de chaque utilisateur, sans se limiter à la première autorisation valide. Pour ce faire, utilisez :

  • La propriété Requires Authorization sur les états pour lesquels vous souhaitez appliquer l'autorisation. Ainsi, un utilisateur ne pourra pas entrer un message dans le clavardage tant qu'il n'aura pas une autorisation.
  • L'événement Autoriser l'utilisateur pour diriger les utilisateurs non autorisés vers l'état d'autorisation approprié lorsqu'ils tentent d'entrer un message dans le clavardage à un état sécurisé.
  • La variable skill.system.event.value.authorizeUser.requestedState pour identifier l'état auquel un utilisateur non autorisé entre un message dans le clavardage (et, par conséquent, l'état vers lequel il devrait être redirigé après avoir été autorisé).
  • La propriété booléenne system.message.channelConversation.groupConversation à laquelle vous pouvez vous référer lorsque vous devez déterminer si la conversation est un clavardage en groupe.

Appliquer l'autorisation d'utilisateur pour les clavardages en groupe

Voici les étapes générales d'application de l'autorisation pour chaque utilisateur dans un clavardage en groupe :

  1. En supposant que vous vouliez appliquer l'authentification pour la majorité des états de la compétence, configurez cette dernière dans son ensemble pour exiger une autorisation par défaut. Pour ce faire :
    1. Cliquez sur icône d'ouverture du menu latéral pour ouvrir le menu latéral, sélectionnez Development > Skills (Développement > Compétences) et ouvrez votre compétence.
    2. Dans la barre de navigation gauche de la compétence, cliquez sur icône des paramètres.
    3. Cliquez sur l'onglet Configuration.
    4. Réglez la propriété Requires Authorization à true.

    Cette action définit la valeur par défaut de la propriété Requires Authorization pour tous les états du flux de dialogue. Cette valeur peut être remplacée pour des états individuels.

  2. Pour les états qui ne nécessitent pas d'autorisation, réglez la propriété Requires Authorization (Exige une autorisation) à false. Par exemple :
    Note

    Vous pouvez également régler la propriété Requires Authorization (Autorisation requise) de la compétence à false, puis régler la propriété Requires Authorization (Autorisation requise) à des états individuels à true.
  3. Ajoutez un composant OAuth Account Link ou OAuth 2.0 Account Link dans le flux de dialogue pour l'authentification de l'utilisateur.

    Utilisez des variables de portée utilisateur pour stocker le jeton d'accès et l'ID utilisateur authentifié. Sinon, les informations d'autorisation de chaque utilisateur qui rejoint le clavardage remplaceraient celles de l'utilisateur qui l'a rejoint précédemment.

    Pour la transition pass, utilisez la variable de système skill.system.event.value.authorizeUser.requestedState pour renvoyer l'utilisateur à l'état où il a tenté d'entrer dans la conversation.

  4. Ajoutez les états pour l'échec de l'autorisation. Par exemple, vous pouvez avoir des états distincts pour les cas suivants :
    • Emplacement de l'échec de l'autorisation dans un clavardage en groupe. L'utilisateur ne peut pas s'authentifier, mais la conversation peut se poursuivre avec les autres participants.
    • Lorsque l'échec de l'autorisation se produit dans un clavardage individuel, la conversation se termine simplement.
      Note

      Dans ce cas, vous pouvez utiliser la propriété de canal personnalisé ephemeral pour afficher le message uniquement à l'utilisateur qui déclenche cette réponse.
      responseItems:
        - type: "text"
          text: "Sorry ${profile.firstName}, you are not authorized to use this skill"
          channelCustomProperties:
            - channel: "slack"
              properties:
                ephemeral: true
  5. Dans la section Mappages d'événement de la configuration du flux, mappez l'événement Autoriser l'utilisateur à l'état d'authentification de l'utilisateur.

    Cet événement est déclenché lorsqu'un utilisateur non autorisé essaie de rejoindre la conversation et atteint un état nécessitant une autorisation.

Activer les messages sans mention d'utilisateur dans les clavardages de groupe Slack

Il est possible de configurer des canaux Slack pour permettre l'envoi de messages à l'application Slack sans mention d'utilisateur de l'application Slack. Ce comportement pourrait être particulièrement utile pour les canaux Slack où il y a beaucoup d'utilisateurs et ils ne savent pas tous qu'ils auraient besoin d'une mention utilisateur pour que l'application Slack réponde. Un canal de support utilisateur en est un exemple.

Pour permettre aux messages sans mention d'utilisateur d'être transmis à l'assistant numérique dans les clavardages de groupe Slack :

  • Lors de la création du canal ou de la modification ultérieure de sa configuration, réglez le commutateur Autoriser les messages sans mention d'application dans le clavardage en groupe à ON.

Permettre aux utilisateurs d'empêcher l'envoi de messages à l'application Slack

Dans les canaux Slack où vous avez activé les messages sans mention d'utilisateur de l'application Slack à envoyer à l'assistant numérique, il peut y avoir des cas où l'utilisateur souhaite empêcher l'envoi de ces messages à l'assistant numérique. Dans ce cas, vous pouvez lancer le "mode ambiant" pour empêcher les messages d'être envoyés à l'assistant numérique au moyen de l'application Slack. Pour ce faire, vous spécifiez une action de republication system.startAmbientMode dans la définition du flux de dialogue.

La republication pour lancer le mode ambiant peut ressembler à ce qui suit :

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"

Une fois que l'utilisateur sélectionne cette option, les messages suivants de l'utilisateur ne seront pas envoyés à l'assistant numérique tant que l'utilisateur n'aura pas de nouveau entré une mention utilisateur de l'application Slack dans un message.

De même, vous pouvez ajouter une action de republication system.stopAmbientMode dans la définition du flux de dialogue pour mettre fin au mode ambiant.

Ce que les utilisateurs doivent savoir sur les clavardages en groupe

Lorsque vous créez une compétence qui est destinée à fonctionner dans un clavardage en groupe, vous devez vous assurer que les utilisateurs de la compétence sont conscients des éléments suivants :

  • Pour impliquer la compétence (ou l'assistant numérique) au clavardage en groupe, vous vous adressez au robot Microsoft Teams ou à l'application Slack correspondante à l'aide d'une mention utilisateur (@bot_name).
    Note

    Pour les canaux Slack, vous avez également la possibilité d'envoyer des messages à l'application Slack sans mention d'utilisateur. Voir Activer les messages sans mention d'utilisateur dans les clavardages de groupe Slack.
  • Chaque fois que vous entrez un message pour lequel vous attendez une réponse du robot, vous devez inclure la mention utilisateur de ce dernier.
  • Si votre message n'est destiné qu'aux autres participants humains, n'incluez pas de mention utilisateur pour le robot. Le robot ignorera de tels messages.
  • Les clavardages en groupe Slack doivent être maintenus dans le fil où le robot a été introduit pour la première fois dans la conversation. Si quelqu'un répond en dehors du fil de la conversation, une nouvelle conversation est créée indépendante de la précédente.
  • Lorsqu'un participant au clavardage en groupe soumet une demande au robot, celui-ci sait qui en est l'auteur. Par conséquent, la réponse à la demande est fondée sur l'identité et les données d'identification du demandeur. Si un participant différent soumet alors une demande, la réponse à cette dernière est basée sur l'identité et les données d'identification de ce deuxième participant.
  • Tous les utilisateurs ayant rejoint le clavardage en groupe peuvent voir toutes les réponses du robot. Il incombe aux participants de ne pas demander au robot des informations que les autres participants ne sont pas censés voir.