Para poder condicionar el cambio de estado de un usuario, el Builder ofrece condiciones de salida. Una condición de salida está compuesta por una o más reglas y el identificador del bloque de destino, en caso de que se cumpla la condición.
El bloque de destino puede ser cualquiera de los bloques existentes en el flujo de conversación del bot. Cada regla se forma con hasta cuatro estructuras: fuente de datos, operador, nombre de una variable y un valor esperado.
Cuando se selecciona la fuente de datos del tipo Variable, también es necesario añadir el nombre de la variable que se analizará en la condición.
Fuente de Datos
Una condición puede utilizar hasta cuatro diferentes fuentes de datos para crear una regla. Estas son: entrada del usuario, valor de una variable, intención o entidad extraídos a partir de la última entrada del usuario.
Operador
Existen diferentes tipos de operadores para una regla. La tabla a continuación presenta todos los operadores y sus respectivas definiciones:
Nombre del operador | Descripción |
Existe | Verifica si en la fuente de datos existe algún valor, sea cual sea. |
Igual a | Verifica si la fuente de datos es exactamente igual al valor esperado. |
Diferente de | Verifica si la fuente de datos es diferente del valor esperado. |
Contiene | Verifica si la fuente de datos contiene el valor esperado. |
Empieza con | Verifica si la fuente de datos empieza con el valor esperado. |
Termina con | Verifica si la fuente de datos termina con el valor esperado. |
Mayor que | Verifica si la fuente de datos es mayor que el valor esperado. |
Menor que | Verifica si la fuente de datos es menor que el valor esperado. |
Mayor que o igual a | Verifica si la fuente de datos es mayor o igual al valor esperado. |
Menor que o igual a | Verifica si la fuente de datos es menor o igual al valor esperado. |
Parecido con | Verifica si la fuente de datos es parecida al valor esperado (Usando la función Levenshtein). |
Corresponde a regex | Verifica si la fuente de datos corresponde al patrón regex definido en el valor esperado. |
Valor Esperado
El valor esperado en la fuente de datos. Este valor puede ser texto, número o incluso el patrón de una regex.
Ejemplo: Imagina que, durante cualquier pregunta, un bot necesite cambiar el estado del usuario de acuerdo con su respuesta. Los valores esperados de respuesta son “sí” o “no”.
En esta situación, el bloque que tiene la pregunta tendrá dos condiciones de salida:
Condición 1
Fuente de datos: Entrada del usuario
Operador: Igual a
Valores: sí
Bloque de destino: 1 - Estado Sí
Condición 2
Fuente de datos: Entrada del usuario
Operador: Igual a
Valores: no
Bloque de destino: 2 - Estado No
Para visualizar mejor, consulta la siguiente imagen:
Ejemplo: Ejemplo: Imagina que, durante cualquier pregunta, un bot necesite cambiar el estado del usuario de acuerdo con una de sus variables de contexto. Considera que la variable {{plan}} representa el plan del usuario, que se estableció en algún estado anterior y puede tomar los valores “free” o “premium”.
En esta situación, el bloque que tiene la pregunta tendrá dos condiciones de salida:
Condición 1
Fuente de datos: Valor de la variable
Nombre de la variable: plan
Operador: Igual a
Valores: free
Bloque de destino: 1 - Estado Free
Condición 2
Fuente de datos: Valor de la variable
Nombre de la variable: plan
Operador: Igual a
Valores: premium
Bloque de destino: 2 - Estado Premium
Para visualizar mejor, consulta la siguiente imagen:
Observación:
- Una condición de salida se compone de una o más reglas. Todas las reglas de una condición deben ser verdaderas para que se active el bloque de destino correspondiente.
- Las condiciones de salida de un bloque del Builder se procesan secuencialmente, hasta que se cumple una condición verdadera. Es decir, es necesario registrar las condiciones ordenadas, desde las más específicas hasta la más genérica.
- Por defecto, todo bloque tiene una condición de salida estándar (Fallback) pre configurada. Aunque es posible cambiar la salida estándar de cualquier bloque, no es posible eliminarla.
Para más información, accede a la discusión sobre el tema en nuestra comunidad o a los vídeos en nuestro canal. 😃