Fragmento Estado de la sesión del bot

La información de esta página de ayuda aplica tanto a Studio como a Desktop Studio.

El fragmento Bot Session State es obligatorio en el script cuando se usan acciones que tienen la propiedad botSessionState. Esto incluye acciones como Textbot Exchange y Voicebot Exchange (de aquí en adelante, ambas acciones se denominan simplemente Exchange). La propiedad botSessionState debe configurarse correctamente para que los agentes virtualesClosed Una aplicación de software que maneja las interacciones del cliente en lugar de un agente humano en vivo. funcionen según lo esperado. Para ello, debe crear este fragmento en su script y configurar las acciones correctamente como se muestra en las secciones siguientes.

La propiedad botSessionState debe configurarse con la variable que contiene el identificador único para la conversación entre el contacto y el agente virtual. El proveedor de agentes virtuales la asigna automáticamente. El identificador evita que se cree una sesión nueva con cada turno de la conversación y ayuda al agente virtual a mantener el contexto entre los turnos.

El proveedor crea el identificador cuando comienza la conversación y lo pasa al script con la primera respuesta. El script almacena el identificador en la variable nombrada en la propiedad botSessionStateVarName (out) de la acción Intercambiar. Por último, el script transmite el identificador de la propiedad botSessionStateVarName (out) del turno anterior a la propiedad botSessionState.

Sus scripts nunca se deben escribir en esta propiedad ni en su variable. Se debe configurar su script correctamente para usar el identificador de estado de la sesión del bot.

Este fragmento es obligatorio a menos que use Google Dialogflow CX, donde puede establecer un ID de conversación personalizado en el fragmento Custom Payload que cumple el mismo propósito que el fragmento Bot Session State. Se usa un ID de conversación personalizado al Transferir contactos de una instancia de CX a otra. Si no utiliza ninguno de los dos ID, se genera un nuevo ID de sesión para cada turno de la conversación y su agente virtual no mantendrá el contexto de la conversación. Si esto sucede, no se generan errores, pero el sistema no funcionará según lo esperado.

Configuración del script

Cuando utiliza una acción Exchange, se requiere un mínimo de dos instancias de la acción en el script. La propiedad botSessionState de cada una de las acciones Exchange debe configurarse de forma diferente:

  • The first instance of the Exchange action is located right after the Begin action at the start of the script. Configure it as follows: 
    • botSessionState: Esto debe estar vacío.
    • botSessionStateVarName (out): Configure con el nombre de la variable donde desea que el script almacene el identificador.
  • The second Exchange action is located later in the script. Configure it as follows: 
    • botSessionState: Configure con la variable utilizada en botSessionStateVarName (out) en la primera instancia de la acción Exchange. La variable debe contener el identificador del estado de la sesión del bot en formato JSON.
    • botSessionStateVarName (out): Configure con el nombre de la variable donde desea que el script almacene el identificador.
  • The third and any subsequent instances of the Exchange action are optional. If your script includes these instances, configure them as follows: 
    • botSessionState: Configure con la variable utilizada en botSessionStateVarName (out) en la instancia anterior de la acción Exchange. La variable debe contener el identificador del estado de la sesión del bot en formato JSON. El identificador del estado de la sesión del bot normalmente no cambia entre turnos. Sin embargo, en caso de que cambiara, la acción debe configurarse para capturar el cambio.
    • botSessionStateVarName (out): Configure con el nombre de la variable donde desea que el script almacene el identificador.

Es necesaria esta configuración para todos los agentes virtuales.

Verificar que la Propiedad botSessionState esté configurada correctamente

Puede usar un rastreo de script para confirmar que esta propiedad esté configurada correctamente.

  1. Ejecute un rastreo de script en una interacción entre el agente virtual y un contacto. Puede usar un rastreo o capturar un rastreo de un ANI o DNIS específico (solo para interacciones de voz).
  2. En la ventana de rastreo, haga clic en la línea que corresponde a la primera acción Virtual Agent Hub (Voicebot Exchange o Textbot Exchange).
  3. En la lista de variables, verifique la variable botSessionState. Su valor debe ser nulo (vacío).
  4. En la ventana de rastreo, haga clic en la siguiente línea del rastreo después de la primera acción Virtual Agent Hub.
  5. Anote el valor de la variable botSessionState.
  6. En la ventana de rastreo, haga clic en la línea del rastreo que corresponda a cualquier acción Virtual Agent Hub posterior.
  7. Verifique el valor de la variable botSessionState. Debe ser el mismo que en el paso 5.

Convertir el identificador de estado de sesión del bot a JSON

El contenido de la variable utilizada en la propiedad botSessionStateVarName (out) debe convertirse a JSON y pasarse a la propiedad botSessionState de la segunda acción Exchange en su script. Para hacer esto, puede incluir código en una acción de Snippet o puede configurar la propiedad directamente. Ambos enfoques son aceptables. Sin embargo, la ventaja de crear una variable en un Snippet para contener el objeto convertido es que facilita ver dónde está sucediendo la conversión.

Use una Acción de fragmento

  1. Configure la propiedad botSessionStateVarName (out) de la acción Exchange con el nombre de la variable que contendrá el identificador de estado de sesión. Por ejemplo, botSessionState.
  2. Agregue la siguiente línea al Snippet que se ubica antes de la acción de Intercambio en su script:

    ASSIGN botSessionStateOut = botSessionStateOut.asJSON()

    Use el nombre de la variable que use en su script.

  3. Configure la propiedad botSessionState en la acción Exchange con el nombre de la variable que utilizó en la declaración ASSIGN. Por ejemplo, botSessionStateOut.

Convertir en Propiedad

Si convierte la variable en la propiedad botSessionState, use la variable botSessionStateVarName (out) con la función asJSON(). Por ejemplo:

  • botSessionStateVarName (out): botSessionState
  • botSessionState: botSessionState.asJSON()

Transferir contactos de un Agente virtual a otro

Para configurar la transferencia de contactos entre agentes virtuales, debe configurar correctamente los id de estado de sesión del bot. Cada agente virtual debe tener su propio id de estado de sesión del bot único. Esto ayuda a que cada agente virtual mantenga el contexto de la conversación en la que participa.

  • Agente virtual 1: configure las variables de estado de sesión del bot como se describió anteriormente en esta página.

  • Agente virtual 2: Configurado de la misma manera, utilizando una variable diferente en botSessionStateVarName (out) para contener el id de estado de sesión del bot. Asegúrese de que, en la primera llamada a este agente virtual, la propiedad botSessionState esté vacía. El primer turno de la conversación devuelve un id de estado de sesión del bot único a la variable en botSessionStateVarName (out).
  • Todos los agentes virtuales posteriores: Configúrelos de la misma manera que el agente virtual 2, utilizando una variable única para el id de estado de sesión del bot.

Este método funciona con todos los proveedores de agentes virtuales admitidos, a menos que esté transfiriendo entre dos agentes virtuales de Google Dialogflow CX. En este caso, se requiere un método diferente.