Chats de grupo

En los canales de Microsoft Teams y Slack, es posible hacer que las aptitudes y los asistentes digitales estén disponibles para los chats de grupo, donde varios participantes humanos pueden colaborar con un asistente digital en la misma conversación.

Los chats de grupo son adecuados para situaciones en las que necesita que una aptitud realice acciones o proporcione información para un grupo de participantes humanos. En un chat de grupo:

  • Todos los participantes pueden ver todos los aspectos de la conversación.
  • La aptitud solo responde a los mensajes en los que el usuario incluya una mención del bot de Microsoft o la aplicación Slack que representa la aptitud. Esto significa que los participantes humanos en un chat de grupo pueden intercambiar mensajes entre sí sin que se use la aptitud. Por ejemplo, puede que deseen hablar para acordar qué solicitar a la aptitud antes de realizar la solicitud.
  • Por defecto, la aptitud no mediará entre usuarios. Responderá a los datos introducidos en el orden de recepción como si todos procedieran de la misma persona. Por ejemplo, si un usuario contradice a otro usuario, el bot no intentará conciliar los dos, a menos que se haya programado alguna lógica en un componente personalizado para ello (pero probablemente tendría que haber conectado a usuarios a los que el bot podría realizar un seguimiento explícito).
  • Cualquier consulta realizada a una aptitud dentro de un chat de grupo se basa en la identidad (y, en el caso de aptitudes que requieren autenticación, las credenciales correspondientes) del usuario en el chat de grupo que haya realizado la consulta.

También puede configurar la aptitud para que exija la autenticación de todos los participantes en un chat de grupo.

Para que el chat de grupo funcione, debe configurar un canal de Microsoft Teams o Slack.

Si utiliza un canal de Microsoft Teams, asegúrese de haber seleccionado los ámbitos de bot adecuados para activar el chat de grupo. Puede seleccionar Equipo y/o Chat de grupo (el último de los cuales es un grupo definido por el usuario).

Si utiliza Slack como canal, asegúrese de que la aplicación Slack tenga las siguientes suscripciones a eventos:

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

Una vez que se configura un canal para que la aptitud o el asistente digital se utilicen en el chat de grupo, los usuarios pueden agregar el bot de Microsoft o la aplicación de Slack correspondiente a un grupo. En la conversación, pueden llamar al bot o a la aplicación con una mención de usuario.

Autorización de usuarios en chats de grupo

En las aptitudes que tienen como destino chats de grupo, puede que desee requerir autorización para que los usuarios envíen mensajes. Dado que varios usuarios pueden acceder a la aptitud en una sesión, debe configurar la aptitud para que gestione correctamente la autorización para cada usuario, no solo para el usuario que encuentre primero el estado de autorización. Para ello, utiliza:

  • La propiedad Requiere autorización en los estados en los que desea aplicar la autorización. Esto garantiza que un usuario no pueda introducir un mensaje en el chat cuando esté en ese estado hasta que ese usuario esté autorizado.
  • El evento Autorizar usuario para dirigir a los usuarios no autorizados al estado de autorización adecuado cuando intenten introducir un mensaje en el chat en un estado seguro.
  • La variable skill.system.event.value.authorizeUser.requestedState para identificar el estado en el que un usuario no autorizado introduce un mensaje en el chat (y, por lo tanto, el estado al que se debe redireccionar después de una autorización correcta).
  • La propiedad booleana system.message.channelConversation.groupConversation, a la que puede hacer referencia cuando necesite determinar si la conversación es un chat de grupo.

Aplicación de una autorización de usuario para chats de grupo

A continuación, se muestran los pasos generales para aplicar la autorización para cada usuario de un chat de grupo:

  1. Suponiendo que desea aplicar la autenticación para la mayoría de los estados de la aptitud, configure la aptitud como un todo para que requiera autorización por defecto. Para ello:
    1. Haga clic en icono para abrir el menú lateral para abrir el menú lateral, seleccione Desarrollo > Aptitudes y elija la aptitud.
    2. En la navegación izquierda de la aptitud, haga clic en icono Configuración.
    3. Haga clic en el separador Configuración.
    4. Defina la propiedad Necesita autorización en true.

    Al hacerlo, se define el valor por defecto de la propiedad Requires Authorization para todos los estados del flujo de diálogo. Este valor se puede sustituir en los distintos estados.

  2. Para los estados que no requieren autorización, establezca la propiedad Requiere autorización en false. Por ejemplo:
    Nota

    También puede definir la propiedad Necesita autorización de la aptitud en false y, a continuación, definir la propiedad Necesita autorización en los distintos estados en true.
  3. Agregue un componente OAuth Account Link o OAuth 2.0 Account Link en el flujo de diálogo para la autenticación de usuarios.

    Utilice variables de ámbito de usuario para almacenar el token de acceso y el ID de usuario autenticado. De lo contrario, la información de autorización de cada usuario que se une al chat sustituiría la información de autorización del usuario anterior que se unió al chat.

    Para la transición pass, utilice la variable del sistema skill.system.event.value.authorizeUser.requestedState para devolver al usuario al estado en el que intentó entrar en la conversación.

  4. Agregue los estados de fallo de autorización. Por ejemplo, puede tener estados separados para los siguientes casos:
    • Cuando la autorización con fallos se produce en un chat de grupo. En este caso, es posible que el usuario no pueda autenticarse, pero la conversación puede continuar con los demás participantes.
    • Cuando la autorización con fallos se produce en un chat individual, en cuyo caso la conversación puede simplemente finalizar.
      Nota

      En este caso, puede utilizar la propiedad de canal personalizado ephemeral para mostrar el mensaje solo al usuario que está disparando esa respuesta.
      responseItems:
        - type: "text"
          text: "Sorry ${profile.firstName}, you are not authorized to use this skill"
          channelCustomProperties:
            - channel: "slack"
              properties:
                ephemeral: true
  5. En la sección Asignaciones de eventos de la configuración del flujo, asigne el evento Autorizar usuario al estado de autenticación del usuario.

    Este evento se dispara cuando un usuario sin autorización intente unirse a la conversación y alcance un estado que requiera autorización.

Activar mensajes sin mención de usuario en chats de grupo de Slack

Es posible configurar canales de Slack para permitir el envío de mensajes a la aplicación de Slack sin menciones de usuario de la aplicación de Slack. Este comportamiento podría ser particularmente útil para los canales de Slack donde hay muchos usuarios y no todos saben que necesitarían una mención de usuario para que la aplicación Slack responda. Un canal de soporte de usuario es uno de estos ejemplos.

Para permitir que los mensajes sin mención de usuario se transfieran al asistente digital en los chats de grupo de Slack:

  • Al crear el canal o modificar posteriormente la configuración del canal, defina el conmutador Permitir mensajes sin mención de aplicación en chat de grupo en Activado.

Permitir a los usuarios evitar que los mensajes se envíen a la aplicación Slack

En los canales de Slack en los que ha activado que se envíen mensajes sin que el usuario mencione la aplicación de Slack al asistente digital, puede haber casos en los que el usuario desee evitar que esos mensajes se envíen al asistente digital. En este caso, puede iniciar el "modo ambiente" para evitar que los mensajes se envíen al asistente digital a través de la aplicación Slack. Para ello, especifique una acción de devolución system.startAmbientMode en la definición del flujo de diálogo.

La devolución para iniciar el modo ambiente puede tener un aspecto similar al siguiente:

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"

Una vez que el usuario selecciona esta opción, los siguientes mensajes del usuario no se enviarán al asistente digital hasta que el usuario vuelva a introducir una mención de usuario de la aplicación Slack en un mensaje.

Del mismo modo, puede agregar una acción de devolución system.stopAmbientMode en la definición del flujo de diálogo para finalizar el modo ambiente.

Lo que los usuarios deben saber sobre los chats de grupo

Al crear una aptitud destinada a usarse en un chat de grupo, debe asegurarse de que los usuarios de la aptitud sean conscientes de lo siguiente:

  • Para implicar a la aptitud (o asistente digital) en el chat de grupo, se dirige al bot de Microsoft Teams o a la aplicación Slack correspondiente con una referencia de usuario (@bot_name).
    Nota

    Para los canales de Slack, también tiene la opción de enviar mensajes a la aplicación de Slack sin ninguna mención del usuario. Consulte Activación de mensajes sin mención de usuario en chats de grupo de Slack.
  • Para cada mensaje que introduzca de cuyo bot espere una respuesta, debe incluir la mención del usuario del bot.
  • Si su mensaje está dirigido solo a los demás participantes humanos, no incluya una mención de usuario para el bot. El bot ignorará esos mensajes.
  • En los chats del grupo Slack, los chats deben retenerse en el hilo en el que el bot haya accedido por primera vez a la conversación. Si alguien responde fuera del hilo de la conversación, crea una nueva conversación independiente de la anterior.
  • Cuando un participante en el chat de grupo realiza una solicitud del bot, el bot es consciente del usuario que ha realizado la solicitud. Por lo tanto, si procede, la respuesta a la solicitud se basa en la identidad y las credenciales del solicitante. Si un participante diferente realiza una solicitud, la respuesta a esa solicitud se basa en la identidad y las credenciales de ese segundo participante.
  • Todos los usuarios que se hayan unido correctamente a un chat de grupo pueden ver todas las respuestas del bot. Es responsabilidad de los participantes en el chat de grupo no obtener información del bot que no deberían ver otros participantes.