Discussions de groupe
Sur les canaux pour Microsoft Teams et Slack, il est possible de rendre les briques et les assistants numériques disponibles pour les discussions de groupe, où plusieurs participants humains peuvent collaborer avec un assistant numérique dans la même conversation.
Les discussions de groupe sont utiles lorsque vous avez besoin qu'une brique effectue des actions ou fournissent des informations pour un groupe de participants humains. Dans une discussion de groupe :
- Tous les aspects de la conversation sont visibles par tous les participants.
- La brique répond uniquement aux messages dans lesquels l'utilisateur inclut une mention du bot Microsoft ou de l'application Slack représentant la brique. De ce fait, les participants humains à une discussion de groupe peuvent échanger des messages entre eux sans impliquer la brique. Par exemple, ils peuvent avoir une discussion pour convenir de la demande à formuler à la brique avant de soumettre cette demande.
- Par défaut, la brique ne sert pas de médiateur entre les utilisateurs. Elle répond aux demandes saisies dans leur ordre de réception, comme si elles provenaient toutes de la même personne. Par exemple, si un utilisateur contredit un autre utilisateur, le bot n'essaie pas de les mettre d'accord, sauf si une logique a été programmée dans un composant personnalisé à cette fin (mais elle aurait probablement besoin d'utilisateurs connectés que le bot pourrait suivre explicitement).
- Toute requête envoyée à une brique dans une discussion de groupe est basée sur l'identité (et, dans le cas de briques nécessitant une authentification, sur les informations d'identification correspondantes) de l'utilisateur participant à la discussion de groupe qui est à l'origine de la requête.
Vous pouvez également configurer la brique de sorte que tous les participants à une discussion de groupe doivent s'authentifier.
Pour que la discussion de groupe fonctionne, vous devez configurer un canal Microsoft Teams ou Slack.
Si vous utilisez un canal Microsoft Teams, assurez-vous que vous avez sélectionné les portées de bot appropriées pour activer la discussion de groupe. Vous pouvez sélectionner Equipe et/ou Discussion de groupe (groupe défini par l'utilisateur dans ce cas).
Si vous utilisez Slack en tant que canal, assurez-vous que l'application Slack comprenne les abonnements d'événement suivants :
message.im
app_mention
message.mpim
message.channels
Une fois qu'un canal est configuré pour la brique ou l'assistant numérique à employer dans la discussion de groupe, les utilisateurs peuvent ajouter l'application Slack ou le bot Microsoft correspondant à un groupe. Dans la conversation, ils peuvent appeler le bot ou l'application avec une mention utilisateur.
Autorisation utilisateur dans les discussions de groupe
Dans les briques que vous ciblez pour les discussions de groupe, vous pouvez demander aux utilisateurs d'envoyer des messages. Etant donné que plusieurs utilisateurs peuvent accéder à la brique dans une session, vous devez configurer la brique afin qu'elle gère correctement l'autorisation pour chaque utilisateur, et pas seulement pour l'utilisateur qui fait face à l'état d'autorisation pour la première fois. Pour ce faire, utilisez les éléments suivants :
- Propriété Requires Authorization (Nécessite une autorisation) sur les états dans lesquels vous souhaitez appliquer l'autorisation. Cela garantit qu'un utilisateur ne peut pas saisir de message dans la discussion lorsqu'il est dans un tel état tant qu'il n'y est pas autorisé.
- L'événement Autoriser l'utilisateur permet de diriger les utilisateurs non autorisés vers l'état d'autorisation approprié lorsqu'ils tentent de saisir un message dans la discussion dans un état sécurisé.
- Variable
skill.system.event.value.authorizeUser.requestedState
permettant d'identifier l'état dans lequel un utilisateur non autorisé saisit un message dans la discussion (et, par conséquent, l'état vers lequel il doit être redirigé une fois l'autorisation accordée). - Propriété booléenne
system.message.channelConversation.groupConversation
, à laquelle vous pouvez vous référer lorsque vous devez déterminer si la conversation est une discussion de groupe.
Application de l'autorisation utilisateur pour les discussions de groupe
Voici la procédure générale d'application de l'autorisation pour chaque utilisateur dans une discussion de groupe :
- En supposant que vous voulez appliquer l'authentification pour la plupart des états de la brique, configurez cette dernière comme un tout pour qu'elle nécessite une autorisation par défaut. Pour ce faire, procédez comme suit :
- Cliquez sur
pour ouvrir le menu latéral, sélectionnez Développement > Briques, puis sélectionnez votre brique.
- Dans la barre de navigation de gauche de la brique, cliquez sur
.
- Cliquez sur l'onglet Configuration.
- Définissez la propriété Autorisation requise sur
true
.
Cette opération 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 chaque état.
- Cliquez sur
- Pour tous les états qui ne nécessitent pas d'autorisation, définissez la propriété Requires Authorization sur
false
. Par exemple :Remarque
Vous pouvez également définir la propriété Autorisation requise de la brique surfalse
, puis définir la propriété Autorisation requise de chaque état surtrue
. - Ajoutez un composant OAuth Account Link ou OAuth 2.0 Account Link dans le flux de dialogue pour l'authentification utilisateur.
Utilisez des variables de niveau utilisateur pour stocker le jeton d'accès et l'ID d'utilisateur authentifié. Sinon, les informations d'autorisation de chaque utilisateur qui rejoint la discussion remplacent celles de l'utilisateur précédent l'ayant rejointe.
Pour la transition
pass
, utilisez la variable systèmeskill.system.event.value.authorizeUser.requestedState
afin de rétablir l'état dans lequel l'utilisateur a tenté d'entrer dans la conversation. - Ajoutez les états pour l'échec d'autorisation. Par exemple, vous pouvez avoir des états distincts pour les cas suivants :
- Lorsque l'échec de l'autorisation se produit dans une discussion de groupe. Dans ce cas, l'utilisateur risque de ne pas pouvoir s'authentifier, mais la conversation peut continuer avec les autres participants.
- Lorsque l'échec de l'autorisation se produit dans une discussion individuelle, auquel cas la conversation peut simplement se terminer.
Remarque
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
- Dans la section Mappages d'événements de la configuration du flux, mettez en correspondance l'événement Autoriser l'utilisateur avec l'état d'authentification de l'utilisateur.
Cet événement est déclenché lorsqu'un utilisateur qui n'est pas encore autorisé tente de rejoindre la conversation et atteint un état nécessitant une autorisation.
Activer les messages sans mention utilisateur dans les discussions de groupe Slack
Il est possible de configurer des canaux Slack pour permettre l'envoi de messages à l'application Slack sans mention 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 de l'utilisateur d'être transmis à l'assistant numérique dans les discussions de groupe Slack :
- Lors de la création du canal ou de la modification ultérieure de sa configuration, définissez le commutateur Autoriser les messages sans mention d'application dans la discussion de groupe sur ON.
Autoriser les utilisateurs à empêcher l'envoi de messages à l'application Slack
Dans les canaux Slack où vous avez activé l'envoi de messages sans qu'un utilisateur n'ait mentionné l'application Slack à l'assistant numérique, il peut arriver que l'utilisateur veuille empêcher l'envoi de ces messages à l'assistant numérique. Dans ce cas, vous pouvez lancer le mode "ambient" pour empêcher l'envoi des messages à l'assistant numérique via l'application Slack. Pour ce faire, vous indiquez une action de postback system.startAmbientMode
dans la définition du flux de dialogue.
Le postback pour initier 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 a sélectionné cette option, les messages suivants de l'utilisateur ne seront pas envoyés à l'assistant numérique tant que l'utilisateur n'aura pas à nouveau saisi une mention utilisateur de l'application Slack dans un message.
De même, vous pouvez ajouter une action de postback system.stopAmbientMode
dans la définition de flux de dialogue pour mettre fin au mode ambiant.
Connaissances requises pour les utilisateurs sur les discussions de groupe
Lorsque vous créez une brique destinée à une discussion de groupe, vous devez vous assurer que les utilisateurs de cette brique connaissent les points suivants :
- Pour impliquer la brique (ou l'assistant numérique) dans la discussion de groupe, adressez-vous à l'application Slack ou au bot Microsoft Teams correspondant avec une mention utilisateur (
@bot_name
).Remarque
Pour les canaux Slack, vous pouvez également envoyer des messages à l'application Slack sans mention de l'utilisateur. Reportez-vous à Activation des messages sans mention utilisateur dans les discussions de groupe Slack. - Pour chaque message entré auquel le bot est censé répondre, vous devez inclure la mention utilisateur du bot.
- Si votre message est destiné uniquement aux autres participants humains, n'incluez pas de mention utilisateur pour le bot. Le bot ignore ces messages.
- Dans les discussions de groupe Slack, les discussions doivent être tenues dans le fil dans lequel le bot a été impliqué pour la première fois dans la conversation. Si un participant répond en dehors du fil de la conversation, il crée une autre conversation, indépendante de la précédente.
- Lorsqu'un participant à la discussion de groupe formule une demande au bot, le bot sait quel est l'utilisateur à l'origine de la demande. Par conséquent, le cas échéant, la réponse à la demande est basée sur l'identité et les informations d'identification du demandeur. Si un autre participant formule ensuite une demande, la réponse à cette demande repose sur l'identité et les informations d'identification de ce deuxième participant.
- Tous les utilisateurs ayant rejoint une discussion de groupe peuvent voir toutes les réponses du bot. Il incombe aux participants à la discussion de groupe de ne pas obtenir de la part du bot des informations que les autres participants ne sont pas censés connaître.