Índice:
- Variables de contexto
- Variables de usuario
- Variables de configuración
- Variables del sistema
- Variables de servicio de Blip Desk
- Variables sensibles
Al construir tu aplicación en Builder, es posible que necesites almacenar valores en variables. Esto es esencial para crear flujos condicionales o, simplemente, para almacenar/recuperar valores durante la interacción del usuario.
En cualquier punto del flujo de la conversación, puedes recuperar el valor de cualquier variable definida previamente. En contrapartida, solo es posible almacenar valores en una variable en ubicaciones específicas de Builder, como:
- entrada de datos de los usuarios (en los bloques de control y contenido);
- resultados de solicitudes de API;
- resultado de ejecutar un script;
- pantalla de variables globales de configuración;
Una variable de Builder se compone exclusivamente de una secuencia de caracteres alfanuméricos (mayúsculas o minúsculas) y no se permiten caracteres especiales. Todas las variables distinguen entre mayúsculas y minúsculas. Hay cuatro tipos de variables en Builder, hablaremos en detalle de cada una de ellas:
Variables de contexto
En una conversación entre dos o más personas, construimos inconscientemente un contexto. Por ejemplo: en un encuentro casual entre dos amigos, María y Juan, uno de ellos comienza a hablar de su perro.
Al conocer a Juan, María:
- Hola, Juan, ¿cómo estás?
Juan rápidamente responde:
- Hola, María, muy bien y tú. Estoy muy feliz, me regalaron un perro.
Inmediatamente después del primer contacto, María comienza a hacerle preguntas a Juan sobre el perro que le regalaron.
- Qué increíble Juan, ¿cómo se llama?
Juan responde rápidamente:
- Se llama Toto.
Observa que, en el discurso de María, no hay una relación explícita entre la frase "¿cómo se llama?" y el perro de Juan. La relación entre el pronombre posesivo “suyo” y el perro de Juan es una información que obtenemos por el contexto de la conversación - los dos amigos saben que están hablando de Toto, el perro de Juan.
Las variables de contexto permiten el almacenamiento/recuperación de valores relacionados con los temas discutidos entre el usuario y el bot. Es posible almacenar valores en una variable de contexto a través de la entrada del usuario y los contenidos HTTP, además de acciones de solicitud HTTP, ejecución de script, definición de variables y procesamiento de comandos.
Para recuperar el valor de una variable de contexto, simplemente debes usar el siguiente patrón en cualquier punto del flujo de conversación:
{{context.NombreVariable}}
o tan solo
{{NombreVariable}}
donde:
NombreVariable representa el nombre de la variable de contexto deseada.
Variables de usuario
Cada usuario que habla con un bot integrado en Blip tiene una cuenta (Contact). Contact es una estructura que almacena atributos (información) del usuario en función del canal (aplicación de mensajería) que utiliza. Por ejemplo: cualquier usuario de Facebook Messenger que haga contacto con tu bot posee información básica y pública, como el nombre y la URL de la foto de perfil definida en su cuenta.
Las variables de usuario permiten utilizar cualquier información definida en la cuenta de los usuarios de forma sencilla. Para obtener detalles completos sobre cómo se almacena la información de contacto Blip, consulta la extensión del directorio en este enlace (https://docs.blip.ai/#directory).
Para recuperar el valor de una variable de usuario, simplemente usa el siguiente patrón en cualquier punto del flujo de conversación:
{{contact.NombreVariable}}
donde:
NombreVariable representa el nombre de la variable de contacto deseada.
Si deseas enviar un mensaje de salutación o bienvenida con el nombre del usuario que está interactuando con tu bot, usa la variable {{contact.name}} para esto. Por ejemplo:
"Hola, {{contact.name}}, ¡bienvenido!"
La siguiente tabla presenta todas las variables de contacto disponibles en Blip y una descripción de lo que representan. Los valores y la disponibilidad de los datos dependen del canal del usuario.
Nombre de las Variables |
Descripción |
name |
Nombre del contacto |
address |
Dirección del contacto |
city |
Ciudad del contacto |
|
Email del contacto. |
source |
Nombre del canal del contacto. |
phoneNumber |
Número de teléfono del contacto. |
photoUri |
URI de la foto pública do contato. |
cellPhoneNumber |
Teléfono celular del contacto. |
gender |
Género del contacto |
timezone |
Timezone (huso horario) del contacto relativo al GMT. |
culture |
Infomación cultural del contacto (en formato IETF). |
extras |
JSON genérico para almacenar strings (clave y valor). |
identity |
La identidad del contacto en el formato name@domain. Propiedad obligatoria |
group |
Indica el nombre del grupo al que pertenece el usuario. |
* Observación: algunos canales no proporcionan ninguna información de contacto que no sea su identificador, definido por la variable {{contact.identity}}.
Variables de configuración
Las variables de configuración permiten almacenar valores de configuración de uso general.
Imagina, por ejemplo, que el flujo de conversación realiza 10 acciones de solicitudes HTTP para la misma API de punto final https://minhaapi.com.
En este escenario, es posible crear, por ejemplo, una variable de configuración de punto final con el valor https://minhaapi.com y reutilizar esta variable en las 10 acciones del flujo. En el caso de que tu dirección de API cambie, simplemente debes cambiar el valor de la variable.
Para crear o cambiar el valor de cualquier variable de configuración, haz clic en la configuración de Builder, expande la opción Variables de Configuración[a] y agrega el nombre y valor de la variable (como se muestra en la imagen a continuación).
Para recuperar el valor de una variable de configuración, simplemente usa el siguiente patrón, en cualquier lugar del flujo de conversación:
{{config.NombreVariable}}
donde:
NombreVariable representa el nombre de la variable de configuración deseada.
Variables del sistema
Las variables del sistema le brindan mucha flexibilidad a quienes están desarrollando el bot. A través de ellas, es posible conocer información como los valores del calendario (fecha y hora), la última entrada del usuario, además de identificadores únicos, números y cadenas aleatorias.
Para recuperar el valor de una variable del sistema, simplemente utiliza, en cualquier punto del flujo de conversación, uno de los siguientes patrones:
{{nombre de la variable}}
donde:
NombreVariable representa el nombre de la variable de configuración deseada.
Si deseas enviar un número aleatorio a un cliente que está interactuando con tu bot, usa la variable {{random.integer}} para esto. Por ejemplo:
"Tu número aleatorio es: {{random.integer}}!"
La siguiente tabla presenta todas las variables del sistema disponibles en Blip, además de una descripción de lo que representan.
Nombre de la Variable |
Descripción |
application.domain |
Dominio en el que se ejecuta la aplicación del bot (generalmente 'msging.net')
|
application.identifier |
Identificador único de la aplicación bot
|
application.identity |
Identidad de la aplicación del bot (igual que 'identificador@dominio')
|
application.instance |
La instancia del nodo de la aplicación bot |
application.node |
El nodo de la aplicación del bot (igual que 'identificador@dominio/instancia')
|
calendar.datetime |
Fecha y hora actuales GMT-0 (MM/dd/aa HH:mm:ss).
|
calendar.date |
Fecha actual GMT-0 (en formato aaaa-MM-dd).
|
calendar.day |
Valor que representa el día del mes actual. |
calendar.month |
Valor que representa el mes actual.
|
calendar.year |
Valor que representa el año actual.
|
calendar.time |
Hora actual GMT-0 (en formato HH:mm).
|
calendar.hour |
Valor que representa la hora actual.
|
calendar.minute |
Valor que representa el minuto actual.
|
calendar.second |
Valor que representa los segundos actuales.
|
calendar.unixTime |
Fecha actual en formato Unix Timestamp
|
calendar.unixTimeMilliseconds |
Fecha actual en formato Unix Timestamp (milisegundos). |
calendar.dayOfWeek |
Valor que representa el día de la semana actual (donde 0 es domingo y 6 es sábado).
|
calendar.tomorrow.datetime |
Fecha de mañana y hora actual GMT-0
|
calendar.tomorrow.date |
Fecha de mañana GMT-0
|
calendar.tomorrow.day |
Valor que representa el día de mañana en el mes actual.
|
calendar.tomorrow.month |
Valor que representa el mes de la fecha de mañana
|
calendar.tomorrow.year |
Valor que representa el año de la fecha de mañana
|
calendar.tomorrow.time |
Hora actual en la fecha de mañana GMT-0.
|
calendar.tomorrow.hour |
Valor que representa la hora actual en la fecha de mañana
|
calendar.tomorrow.minute |
Valor que representa el minuto actualizado en la fecha de mañana
|
calendar.tomorrow.second |
Valor que representa los segundos actualizados en la fecha de mañana.
|
calendar.tomorrow.unixTimeMiliseconds |
La fecha de mañana en formato Unix Timestamp (milisegundos)
|
calendar.tomorrow.unixTime |
La fecha de mañana en formato Unix Timestamp
|
calendar.tomorrow.dayOfWeek |
Valor que representa el día de la semana de la fecha de mañana (donde 0 es el domingo y 6 es sábado)
|
calendar.yesterday.datetime |
Fecha de ayer y hora actual GMT-0
|
calendar.yesterday.date |
Fecha de ayer GMT-0
|
calendar.yesterday.day |
Valor que representa el día de ayer en el mes actual
|
calendar.yesterday.month |
Valor que representa el mes de la fecha de ayer
|
calendar.yesterday.year |
Valor que representa el año de la fecha de ayer
|
calendar.yesterday.time |
Hora actual en la fechad de ayer GMT-0
|
calendar.yesterday.hour |
La hora actual en la fecha de ayer
|
calendar.yesterday.minute |
El minuto actual en la fecha de ayer
|
calendar.yesterday.second |
Segundos actualizados en la fecha de ayer
|
calendar.yesterday.unixTime |
Fecha de ayer en formato Unix timestamp
|
calendar.yesterday.unixTimeMiliseconds |
Fecha de ayer en formato de unix timestamp (milisegundos)
|
calendar.yesterday.dayOfWeek |
Valor que representa el día de la semana a partir de la fecha de ayer (donde 0 es domingo y 6 es sábado)
|
input.content |
Contenido del mensaje enviado por el usuario
|
input.entity.?.id |
Identificador de la entidad reconocida (donde el signo ? debe reemplazarse por el nombre de la entidad)
|
input.entity.?.name |
Nombre de la entidad reconocida (donde el signo ? debe reemplazarse por el nombre de la entidad)
|
input.entity.?.value |
Valor de la entidad reconocida (donde el signo ? debe reemplazarse por el nombre de la entidad)
|
input.entity.?.name |
Nombre de la entidad reconocida (donde el signo ? debe reemplazarse por el nombre de la entidad)
|
input.intent.id |
Identificador de intención reconocida
|
input.intent.name |
Nombre de la intención reconocida
|
input.intent.score |
Confiabilidad vinculada a la intención reconocida
|
input.intent.answer |
Una de las respuestas vinculada a la intención reconocida
|
input.length |
Cantidad de contenidos en el mensaje enviado por el usuario
|
input.type |
Tipo de mensaje enviado por el usuario
|
input.message |
Sobre de mensaje recibido por el bot
|
input.message.from |
Nodo originador del mensaje recibido
|
input.message.fromidentity |
Identidad del originador del mensaje recibido
|
input.message.id |
ID del mensaje recibido
|
input.message.pp |
Nodo del originador del mensaje recibido, en caso de mensajes delegados
|
input.message.ppidentity |
Identidad del autor del mensaje recibido, en el caso de mensajes delegados
|
input.message.to |
Nodo receptor del mensaje recibido (generalmente el nodo de la aplicación del bot)
|
input.message.toidentity |
Identidad del destinatario del mensaje recibido (generalmente la identidad de la aplicación bot)
|
random.guid |
Identificador alfanumérico único
|
random.string |
Conjunto de caracteres (string) aleatorios
|
random.integer |
Número entero aleatorio
|
calendar.plus/minus 12345 (milisseconds seconds minutes hours days weeks months years dayOfWeek) |
Funciones de manipulación de fecha disponibles
|
state.id |
ID de bloque actual en flujo
|
state.name |
Nombre del bloque actual en el flujo
|
state.previous.id |
ID de bloque anterior en el flujo
|
state.previous.name |
Nombre del bloque anterior en el flujo
|
tunnel.destination |
Destinatario del túnel, que suele ser la identidad de la aplicación del bot. Disponible solo para mensajes de túnel (reenviado por un enrutador, por ejemplo).
|
tunnel.identity |
Identidad del túnel. Disponible solo para mensajes de túnel (reenviado por un enrutador, por ejemplo).
|
tunnel.originator |
Nodo originador del túnel, que es el identificador del cliente en el propietario del túnel. En un enrutador, es el identificador original del cliente. Disponible solo para mensajes de túnel (reenviado por un enrutador, por ejemplo).
|
tunnel.owner |
Identidad del propietario del túnel. En un enrutador, es la identidad de la aplicación del enrutador. Disponible solo para mensajes de túnel (reenviado por un enrutador, por ejemplo).
|
Observación: las variables del sistema son únicamente de lectura
Variables de servicio de Blip Desk
Las variables de asistencia de Blip Desk se pueden utilizar en respuestas listas para presentar información inherente al asistente. Por tanto, es posible conocer el nombre completo, email, identidad y número de teléfono del asistente. Descubre cómo aplicar estas variables en el artículo utilizando variables en las respuestas listas[b] para Blip Desk.
Nombre de la Variable |
Descripción |
agent.identity |
La identidad del agente en el formato nombre@dominio. |
agent.fullName |
El nombre del agente. |
agent.email |
El email del agente |
agent.phoneNumber |
El teléfono del agente.
|
agent.firstName
|
Solo el primer nombre del agente |
[b]https://help.blip.ai/docs/en/helpdesk/blipdesk/utilizando-variav-respostas
Variables sensibles
Las variables sensibles permiten almacenar valores secretos para su uso en Builder.
Imaginemos, por ejemplo, que en el flujo de conversación es necesario realizar una petición HTTP a una API en la que es necesario enviar un token de acceso.
En este escenario, es posible crear, por ejemplo, una variable sensible con el nombre Token y el valor del token deseado y reutilizar esta variable en solicitudes de flujo.
Luego de crear la variable, sus valores se suprimen para mayor seguridad de los datos. Si solo desea cambiar el valor, ingréselo nuevamente en el campo designado. Si desea cambiar el nombre de la clave, ajuste el nombre y también vuelva a ingresar el valor deseado.
Para crear o cambiar el valor de cualquier variable sensible, haga clic en la configuración del generador, expanda la opción Variables sensibles y agregue el nombre y el valor de la variable (como se muestra en la imagen a continuación).
Para utilizar información confidencial en el flujo, utilice: {{secret.nomeVariavel }}
Dónde:
variablename representa el nombre de la variable sensible deseada.
Para obtener más información, acceda a la discusión sobre el tema en nuestra comunidad o los videos en nuestro canal. 😃