Las variables deben configurarse durante la construcción del bot. A continuación, se presentan algunas de las principales formas de generar las variables.
Mensaje del Usuario
Cada respuesta del usuario genera automáticamente una variable predefinida #{answer}, como se muestra en la imagen a continuación.
La pantalla anterior es un Mensaje del Sistema, pero observe que automáticamente Zenvia Bots permite que se inserte debajo un Mensaje del Usuario esperando la respuesta.
También es posible seleccionar solo el paso (step) de Mensaje del Usuario para insertarlas de forma individual.
Variables en el Componente de Control
Control de variables: Durante la construcción del flujo, en cualquier punto entre el paso inicial y final, se puede agregar el componente de variables, cuya función se limita a declarar y asignar valores a las variables. Estas variables pueden utilizarse en otros componentes o lógicas en el flujo.
- Título: título para el control de variables (opcional).
- Nombre: nombre de la variable.
- Expresión: valor que se asignará a la variable o expresión que definirá el valor.
Variables en los Componentes Inteligentes
Componentes como los de captura de correo electrónico o nombre, por ejemplo, generan variables específicas para las funciones que se almacenan con nombres diferentes y predefinidos, sin necesidad de crear un Mensaje del Usuario por separado.
Has echado un vistazo a nuestra documentación detallada sobre los componentes y estas variables? ¡Mira aquí y encontrarás toda la información sobre cómo gestionar las variables!
Variables en las Llamadas de API
Al realizar integraciones más complejas (llamadas de API REST Json), el usuario puede extraer variables del tipo #{response} o utilizar Expression Language para convertir alguna característica dentro del objeto personalizado en una variable personalizada, como se muestra en la imagen a continuación:
Accede aquí a la documentación de nuestro componente Json API.
En términos generales y simplificados, la llamada de API GET en el endpoint, tras una respuesta positiva del usuario (por ejemplo, el usuario dice "sí, eso es"), debe devolver el siguiente JSON:
{
"id": "d6abdc1e-530f-41f2-bdf4-24548f1b7108-f6406966",
"lang": "pt-br",
"sessionId": "12345",
"timestamp": "2019-10-11T19:32:33.904Z",
"result": {
"source": "agent",
"resolvedQuery": "sí",
"action": "",
"actionIncomplete": false,
"score": 1.0,
"parameters": {},
"contexts": [
{
"name": "shop",
"lifespan": 4,
"parameters": {}
}
],
"metadata": {
"intentId": "2a55ae72-54c6-42a5-9b1a-1cfc7afd7c4e",
"intentName": "RespuestaPositiva",
"webhookUsed": "false",
"webhookForSlotFillingUsed": "false",
"isFallbackIntent": "false"
},
"fulfillment": {
"speech": "",
"messages": [
{
"lang": "pt-br",
"type": 0,
"speech": ""
}
]
}
},
"status": {
"code": 200,
"errorType": "success"
}
}
De toda esta información, nos interesa solo "intentName", que es una variable dentro del array "metadata", que, a su vez, se encuentra dentro de "result", en el nivel más alto de la respuesta general de la API.
De esta manera, para extraer este valor y convertirlo en una variable de plataforma, le damos un nombre (por ejemplo, "CaptureIntent") y escribimos la expresión language "response.result.metadata.intentName".
Este atributo se puede utilizar, por ejemplo, para que el componente de "toma de decisiones" dirija al usuario del bot hacia un flujo específico a partir del procesamiento del lenguaje natural, con la expresión "captureIntent=="RespuestaPositiva".
Con estos tres recursos mencionados anteriormente, un usuario debería ser capaz de generar variables consistentes para crear experiencias conversacionales ricas en información que luego puedan convertirse en informes eficientes.
Variables declaradas en Json (código)
Todas las opciones anteriores reflejan la creación de variables en Zenvia Bots de manera más sencilla en la pantalla, para aquellos que están diseñando la estructura.
Sin embargo, la acción del sistema detrás del proceso está completamente vinculada al código y la estructura del flujo: ¡el Json!
Puedes definir perfectamente que a partir de un punto específico del flujo, se crearán diversas variables para ayudarte en informes futuros, en llamadas de API o para aplicar reglas específicas durante la automatización.
Recuerda, las variables también pueden tener muchos sinónimos en la aplicación de Zenvia Bots, como: etiqueta, identificador, variante, dato, información, entre otros.
En el ejemplo siguiente, hay un viaje simple, donde digamos que a partir de una pregunta para continuar en 4 viajes diferentes, el flujo necesita conocer el perfil de la persona para detallar algo en el informe. El canal es WhatsApp y la respuesta es simplemente el número 1, 2, 3 o 4.
Si el usuario ingresa 1, en el Json se crea una nueva variable con la información de que el perfil es igual a la cadena (texto) "alumno".
¿Cómo se creó? ¿Automáticamente? No.
El Json estándar del paso (step) era:
{
"id": "step039",
"type": "sendChatActivity",
"contents": [
{
"type": "text/plain",
"payload": {
"text": "[Enter message content according to the following condition: 1]"
}
}
],
"properties": {
"from": "#{session['chatFrom']}"
}
}
Incluyendo la variable manualmente, queda así:
{
"id": "step039",
"type": "sendChatActivity",
"variables": {
"perfil": "alumno"
},
"contents": [
{
"type": "text/plain",
"payload": {
"text": "[Enter message content according to the following condition: 1]"
}
}
],
"properties": {
"from": "#{session['chatFrom']}"
}
}
💡Consejo:Siempre declara la variable después del tipo en el Json. Además, no olvides la sangría y también las comas, llaves y comillas dobles.