Compartir a través de


Trabajar con variables globales

Las variables almacenan las respuestas de sus clientes a las preguntas de su agente. Por ejemplo, puede guardar el nombre de un cliente en una variable llamada . El agente puede dirigirse al cliente por su nombre a lo largo de la conversación.

De forma predeterminada, el valor de una variable solo se puede usar en el tema donde se crea la variable. Sin embargo, es posible reutilizar el mismo valor en todos los temas. Por ejemplo, en un tema de Bienvenida, el bot solicita el nombre y el correo electrónico del cliente. En el tema Reserva de citas, desea que el agente recuerde lo que el cliente ha escrito y no vuelva a preguntar.

Una forma de reutilizar una variable es pasarla de un tema a otro. La otra forma es hacer que la variable tenga un alcance global, y eso es lo que cubre este artículo. Las variables globales se llaman así porque están disponibles en todos los temas de todo el agente. También se pueden configurar desde fuentes externas.

Las variables globales se aplican durante una sola sesión de usuario. Debe especificar qué variables son globales para distinguirlas de las variables de nivel de tema.

Creación de una variable global

Puede crear una variable global cambiando el alcance de una variable de tema.

Nota

El nombre de una variable global debe ser único en todos los temas.

  • Aplicación web
  • Clásico/Teams
  1. Cree una variable o utilice el panel de Variables para abrir una variable existente.

  2. En el panel de propiedades de variable, seleccione Global (cualquier tema puede acceder).

    Se agregará al nombre de la variable un prefijo para diferenciarla de las variables de nivel de tópico. Por ejemplo, ahora la variable se muestra como .

  3. Guarde el tema.

Uso de variables globales

  • Aplicación web
  • Clásico/Teams

Cuando compone un mensaje en un nodo Mensaje o Pregunta, seleccione el icono {x} para ver las variables disponibles para el tema. Las variables globales aparecen en la pestaña Personalizado junto con cualquier variable de tema. Las variables se enumeran en orden alfabético.

Buscar todos los temas mediante una variable global

Puede encontrar dónde se define una variable global y qué otros temas la utilizan. Esta característica puede ser útil si está trabajando en un agente nuevo, o si tiene múltiples variables y una ramificación de temas compleja.

  • Aplicación web
  • Clásico/Teams
  1. Seleccione la variable global deseada en el lienzo de creación o en el panel Variables.

  2. En el panel Propiedades de la variable, en la sección Referencia , seleccione Ver todas las referencias.

  3. Cambie a la pestaña Otros y seleccione cualquier tema en el que se utilice la variable para ir directamente a ese tema y nodo.

Eliminación de variables globales

Al eliminar una variable global utilizada en otros temas, las referencias a esa variable en los temas se marcarán como . Recibirá una advertencia sobre la eliminación de la variable global antes de poder confirmar la operación.

Los nodos que contienen referencias a la variable global eliminada le indicarán que contienen una variable desconocida.

Los temas con nodos que contienen referencias a variables globales eliminadas pueden dejar de funcionar. Asegúrate de eliminar o corregir todos los temas que estaban usando la variable eliminada antes de publicar tu agente.

Ciclo de vida de las variables globales

  • Aplicación web
  • Clásico/Teams

De forma predeterminada, el valor de una variable global persiste hasta que finaliza la sesión. El nodo Borrar valores de variables restablece los valores de las variables globales y se utiliza en la conversación de reinicio del sistema. Cuando una redirección desencadena ese tema (o cuando el usuario escribe una frase como "Empezar de nuevo"), se restablecen todas las variables globales.

Establecer variables globales desde orígenes externos

  • Aplicación web
  • Clásico/Teams

Para asegurarse de que el agente inicia una conversación con cierto contexto, puede utilizar una variable global y establecer su valor desde una fuente externa. Digamos que su sitio requiere que los usuarios inicien sesión. Si almacena el nombre de un usuario en una variable global y se lo pasa al agente, este podrá saludar a los clientes por su nombre antes de que empiecen a escribir su primera pregunta. Otro escenario de ejemplo es pasar el contexto de Dynamics 365 Customer Service a un agente para que pueda iniciar la conversación con el conocimiento de lo que el cliente quiere lograr.

Para evitar latencias no deseadas, puede especificar cuánto tiempo puede esperar el agente por un valor. También puede establecer un valor predeterminado para usar cuando la fuente externa no responda de manera oportuna.

Nota

Los agentes que se publican en el canal de Dynamics 365 Contact Center para casos de uso de IVR no admiten valores de tiempo de espera configurados para variables globales establecidas por orígenes externos.

  1. Cree un tema dedicado para contener la configuración de todas las variables destinadas a establecerse desde fuentes externas. Podría llamar a este tema "Establecer variables de contexto", por ejemplo. Este tema no sirve para ningún otro propósito, por lo que no es necesario que tenga frases desencadenadoras establecidas.

  2. Agregue un nodo de establecimiento del valor de variable a su tema dedicado.

  3. En Establecer variable, abra el selector de variable y seleccione Crear una nueva variable.

  4. Seleccione el nombre predeterminado de la nueva variable. Aparece el panel de Propiedades de variables.

  5. Reemplace el nombre predeterminado por uno que coincida exactamente con el nombre de la variable que se pasa desde el sistema externo.

  6. En Uso, seleccione Global (cualquier tema puede acceder) y Fuentes externas pueden establecer valores.

  7. En Referencia, seleccione los tres puntos (⋮) en la esquina superior derecha y seleccione Obtener valor de este nodo si está vacío.

  8. (Opcional) Establezca un retardo de tiempo de espera, en milisegundos. Este valor determina cuánto tiempo puede esperar el agente a que una fuente externa establezca la variable antes de agotar el tiempo de espera y continuar con el valor predeterminado establecido en el nodo Establecer valor de variable. Esta configuración es pertinente en escenarios en los que la variable depende de un proceso asincrónico o de larga duración, pero el agente debe respetar una latencia máxima para garantizar una buena experiencia de usuario.

    Para las variables procedentes de Omnicanal para Customer Service, sugerimos un valor de 10 segundos (10 000 ms) como tiempo de espera máximo.

  9. En el nodo Establecer valor de variable, introduzca el valor predeterminado que se utilizará si se alcanza el tiempo de espera. En tiempo de ejecución, el agente esperará valores con el mismo tipo de datos. Si desea que este valor predeterminado sea una cadena vacía, use como fórmula.

    Captura de pantalla de la configuración de una variable global que se establecerá desde un origen externo

  10. Para cualquier otro valor que espere que provenga de un sistema externo, agregue más nodos de Establecimiento de valor de variable a su tópico dedicado y configure las variables globales requeridas de la misma manera.

Así configurado, el agente está listo para realizar pruebas. Cuando se invoca el agente, en lugar de esperar indefinidamente a que se rellenen todas las variables, el agente puede comenzar a enviar inmediatamente cualquier mensaje que no dependa de las variables que se pasan. Cuando el agente intenta acceder a una variable que se está configurando externamente, se detiene hasta que llega el valor o se agota el tiempo de espera. Obtenga más información sobre cómo optimizar los agentes para minimizar la latencia.

Importante

Durante el flujo normal de una conversación, si su agente establece una variable que normalmente se obtendría de una fuente externa, prevalece el valor establecido internamente por su agente. Cualquier valor pasado en contexto es ignorado. Esta regla evita que el agente sobrescriba los valores establecidos intencionadamente en los temas.

Establecer variables globales en un agente incrustado

  • Aplicación web
  • Clásico/Teams

Si está incrustando su agente en una página web simple, puede añadir variables y sus definiciones a la URL del agente. O, si desea tener un poco más de control, puede usar un bloque de código para llamar y usar variables programáticamente.

El nombre de la variable en la cadena de consulta de la URL debe coincidir con el nombre de la variable global, sin el prefijo . Por ejemplo, una variable global se denominaría en la consulta.

En los ejemplos siguientes se utiliza una declaración básica para las variables. En un escenario de producción, puede pasar como parámetro de consulta o definición de variable otra variable que ya ha almacenado el nombre del usuario (por ejemplo, si tiene el nombre de usuario de un script de inicio de sesión).

Anexe las variables y sus definiciones a la URL del agente como parámetros de cadena de consulta con el formato .

Por ejemplo:

  • Tiene una variable global llamada .
  • La dirección URL de su agente es .
  • Para pasar el nombre de usuario al iniciar una conversación de agente en un sitio web, asocie la cadena de consulta como: .

El nombre de parámetro no distingue entre mayúsculas y minúsculas. también funcionaría en este ejemplo.

Añadir variables globales a un lienzo personalizado

También puede agregar la variable a un lienzo personalizado.

  • Aplicación web
  • Clásico/Teams
  1. En la sección de la página donde está su agente, defina las variables de la siguiente manera, sustituyendo [nombre_variable] por el nombre de la variable sin el prefijo y [definición] por la definición. Separe múltiples variables con comas ().

       const store = WebChat.createStore({}, ({ dispatch }) => next => action => {
         if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {
           dispatch({
              type: "WEB_CHAT/SEND_EVENT",
              payload: {
                name: "pvaSetContext",
                value: {
                   "variableName1": "variableDefinition1",
                   "variableName2": "variableDefinition2"
                }
              },
            });
          }
            return next(action);
        });
    
  2. En su sección, llame a cuando inserte su agente, tal como se muestra en el siguiente ejemplo en el que se invoca a justo antes de donde se invoca a (deberá sustituir por la identificación de su agente):

    const BOT_ID = "12345-5678";
    const theURL = "https://powerva.microsoft.com/api/botmanagement/v1/directline/directlinetoken?botId=" + BOT_ID;
    
    fetch(theURL)
        .then(response => response.json())
        .then(conversationInfo => {
            window.WebChat.renderWebChat(
                {
                    directLine: window.WebChat.createDirectLine({
                        token: conversationInfo.token,
                    }),
                    store,
                    styleOptions
                },
                document.getElementById('webchat')
            );
        })
        .catch(err => console.error("An error occurred: " + err));
    

Dependiendo de la configuración de la autenticación del agente, tendrá disponible un conjunto de variables globales asociadas con el proveedor de autenticación seleccionado. Para obtener detalles sobre qué conjunto de variables están disponibles y cómo usarlas, consulte Agregar autenticación de usuario a los temas.


  • Trabajar con variables
  • Personalizar la apariencia de un agente