# Disparador y tipo de coincidencia

## Tipo de coincidencia

Un **disparador** es algo que activa el bot, cambia estados o realiza otra acción. Las palabras del campo "Trigger" actúan como disparador del flujo de trabajo en el constructor para ejecutar el evento o la acción contenida dentro del bloque.

**Disparadores** controlan el flujo de la conversación. Se configuran en el campo "Trigger" dentro de un bloque condicional o en una flecha de conexión.

* **Formato:** Un disparador puede ser un símbolo, número, expresión regular o palabra clave específica.
* **Acción:** Cuando la entrada de un usuario coincide con un disparador definido, el bot ejecuta el flujo de trabajo asociado, como avanzar a un nuevo estado del embudo o activar una acción.

<div data-with-frame="true"><figure><img src="/files/48e4cabe9f81c2ba28112fa208eb0b5f28cd4e1e" alt=""><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/290cabee77ffd97ac3cf2a56c7c00efba0d0c171" alt=""><figcaption></figcaption></figure></div>

Por ejemplo, si necesitas crear un bloque para todas las posibles palabras de inicio de Messenger, puedes especificar la siguiente condición: start;start;get started;start

{% hint style="success" %}
En todos los tipos de comparación, **el punto y coma (;)** se usa para separar condiciones.
{% endhint %}

El chatbot responderá al disparador ejecutando la acción o evento especificado; por ejemplo, podría enviar un mensaje de bienvenida al cliente:

<div data-with-frame="true"><figure><img src="/files/018793fc3f4614a53bc5ecd75516d85177d473ff" alt="" width="563"><figcaption></figcaption></figure></div>

Para reconocer un disparador, necesitas definir el tipo de comparación (el **"Tipo de coincidencia"** campo). El tipo de coincidencia ayuda al chatbot a comparar la condición con el mensaje del cliente u otra acción (como hacer clic en un botón) y determinar qué evento activar a continuación.

En MaviBot, hay cinco tipos de coincidencia de condiciones:

1. Coincidencia difusa;
2. Coincidencia por palabra clave;
3. Coincidencia RegEx;
4. Coincidencia exacta;
5. Búsqueda semántica.

<div data-with-frame="true"><figure><img src="/files/2d067acc6e1d5d3a8ee4e0b7eca973980b14f724" alt="" width="563"><figcaption></figcaption></figure></div>

Echemos un vistazo más de cerca a cada uno de ellos.

### Coincidencia difusa

Este es el tipo principal de comparación, que permite al bot manejar faltas de ortografía, errores tipográficos, inexactitudes, letras faltantes y reordenamientos de letras. La condición se activa si la similitud entre cadenas es superior al 70%.

**Ejemplo:**\
Para la condición **"hello"**, las siguientes variaciones activarían una coincidencia: **"hlelo"**, **"hellp"**, **"helo"**, y así sucesivamente.

<div data-with-frame="true"><figure><img src="/files/0a25a4782c95421f5d15ecea5d245a16a66d0091" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/b699b6ca35e7014f2e45a26b628aa8901663be23" alt="" width="563"><figcaption></figcaption></figure></div>

Este tipo de comparación está más centrado en el usuario y tiene en cuenta el factor humano al procesar condiciones, ya que los errores tipográficos son bastante comunes.<br>

El **"Difusa"** el tipo de coincidencia es ideal para el bloque de bienvenida (inicial) en un flujo de chatbot, donde el cliente es quien inicia la conversación.

### Coincidencia por palabra clave

**Coincidencia por palabra clave** es un tipo de comparación muy potente que ayuda a crear un consultor con apariencia humana. Con este tipo de coincidencia, el bot responderá a cualquier mensaje del usuario que contenga al menos una de las palabras clave de la condición.

En otras palabras, si el cliente envía un mensaje que contiene una o más palabras clave de la condición, el flujo se activará según su configuración.

**Ejemplo:**\
Para la condición "hello;person," el siguiente mensaje la activaría:\
"Quiero saludar a esta maravillosa persona."

<div data-with-frame="true"><figure><img src="/files/e197a93c85d548cd6fe90b3ed328d34a355e8fa3" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/10e6d4982f02514cd373b5868efe738691c7f728" alt="" width="563"><figcaption></figcaption></figure></div>

Puedes incluir una gran cantidad de palabras clave en la condición. Esto permite al chatbot reconocer lo que el cliente necesita en ese momento y activar el evento apropiado configurado dentro del bloque.

<div data-with-frame="true"><figure><img src="/files/5e42158df1deb073ed82d00dfe7aedb2dc4bafa9" alt="" width="375"><figcaption></figcaption></figure></div>

Como se ve en el ejemplo anterior, el bot responderá a cualquier mensaje que contenga al menos una de las palabras clave de la condición.\
Este tipo de coincidencia también usa el campo **"Ignorar disparadores"** (mensajes que no deben activar una respuesta).

<div data-with-frame="true"><figure><img src="/files/338d5f2460705010cec27e2ecd0d36aa68c62ed2" alt="" width="375"><figcaption></figcaption></figure></div>

Este campo funciona de forma similar al campo de condición, pero con el efecto opuesto: si el mensaje del usuario contiene alguna palabra del **"Ignorar disparadores"** campo, la condición no se activará.

En consecuencia, si se cumple la condición en el **"Ignorar disparadores"** campo, la condición general no funcionará.

### Variabilidad

Puedes añadir un disparador adicional separado por punto y coma, pero ¿qué pasa si necesitas coincidir con una de varias opciones de palabra?

Por ejemplo, para gestionar frases como "Mi internet no funciona," "Mi computadora no funciona," o "Mi computadora se averió," con un solo disparador.

Obviamente, enumerar todas las variaciones de palabras clave una por una no es práctico. Por eso se creó la sintaxis OR. Para especificar una de varias palabras clave equivalentes, colócalas todas dentro de paréntesis y sepáralas con una barra vertical (`|`).

Por ejemplo, el disparador `(tar plan|tariff) (pereit|podklyuch|menit|pomen)` coincidirá con preguntas como:\
"Hola, ¿cómo conecto un nuevo plan?"\
"¿Cómo cambio mi plan de precios?"

<div data-with-frame="true"><figure><img src="/files/0c7a4bde6937ce4b1664bd86e578939bed4d7487" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/1f2e61071ef5a45ce32eaeb5db313f8b3efa9b54" alt="" width="563"><figcaption></figcaption></figure></div>

Desglosemos el disparador:\
`(tar plan | tariff)` significa que la cadena debe contener **"tar" Y "plan" O "tariff"**\
Y al mismo tiempo una de las palabras: **"cambiar" O "conectar" O "modificar" O "reemplazar"**.

Aquí hay otros ejemplos intuitivos:

* `change password (cab|pa)`\
  ("cab" y "pa" son abreviaturas de "cabinet" y "personal account")
* `(forgot|reset|restore|remember|accepts|fits|incorrect|not the right|don’t remember) password`
* `(can’t|unable to) (restore|change) password`
* `login in contract; (lost|loss|where is|don’t know|where|can’t find|no) contract`
* `(suspend|blocked|block|disconnect) (services|internet|inet|charged); (saved|save) day; put on pause; leaving`
* `auto payment; payment; pay; recurring payment; connect payment`

### Coincidencia exacta

Con este tipo de comparación, el bot activará el evento solo si el mensaje del cliente coincide exactamente con la condición.

{% hint style="info" %}
La comparación no distingue entre mayúsculas y minúsculas, lo que significa que si la condición es "hello" y el usuario escribe "HELLO," la condición seguirá activándose. Esto debe tenerse en cuenta.
{% endhint %}

Este tipo de comparación es adecuado para usar en configuraciones como conexiones, cuando un cliente hace clic en un botón o pasa de una mini landing page al chatbot con una etiqueta de sitio especificada.

1. **Para clics en botones:**\
   Por ejemplo, en las condiciones, especificamos los nombres de los botones que, al hacer clic en ellos, deben llevar al cliente al bloque correspondiente.

<div data-with-frame="true"><figure><img src="/files/de9dc41340d71cb8f6051fa8d53a8c23a86461e7" alt="" width="375"><figcaption></figcaption></figure></div>

A continuación, crearemos los bloques a los que se debe dirigir al cliente después de hacer clic en el botón tras el primer bloque. Deben ser cuatro:

<div data-with-frame="true"><figure><img src="/files/ba3123100715641a74ed71ab929b88da1c90a316" alt=""><figcaption></figcaption></figure></div>

Luego, en la configuración de la flecha, introducimos el nombre del botón y establecemos el tipo de coincidencia en **"Coincidencia exacta."**

<div data-with-frame="true"><figure><img src="/files/ff40e7a80e6332b1e035323febf8ff57c0ad0a2d" alt=""><figcaption></figcaption></figure></div>

Ahora puedes probar el bot:

<div data-with-frame="true"><figure><img src="/files/3824f2a043ef7617230be2f09da5951ccc5f851b" alt="" width="563"><figcaption></figcaption></figure></div>

Como puedes ver, el bot procesa correctamente la condición y la selección de coincidencia exacta al usar botones.

2. Usar una etiqueta de sitio en el embudo:

En este caso, el principio es similar al uso de botones; sin embargo, la condición y el tipo de coincidencia se configuran directamente dentro del propio bloque condicional.

Aquí, la etiqueta se toma de la pestaña **Sitios** , donde has instalado la etiqueta para la página web:

<div data-with-frame="true"><figure><img src="/files/85cf4a71734cd6dc981025d3b9237d97809e0f01" alt="" width="563"><figcaption></figcaption></figure></div>

La etiqueta en la condición del bloque se especifica **directamente en el campo CONDITION del bloque sin usar las palabras "TAG" ni ninguna otra etiqueta.**

<div data-with-frame="true"><figure><img src="/files/7792e3eb6d6dc90223b5556425e1922e3ef134dd" alt="" width="375"><figcaption></figcaption></figure></div>

{% hint style="info" %}
Para obtener más detalles sobre cómo configurar el disparador del bot usando una etiqueta instalada en el sitio web, consulta el artículo **"Crear un sitio web y configuración básica**[**"** en el **"Etiqueta"** sección.](/doc/es/websites/sitios/builder.md#tag)
{% endhint %}

El chatbot también responderá y ejecutará el evento configurado dentro de los ajustes del bloque.

### Coincidencia RegEx

La coincidencia RegEx es un tipo de condición que permite al bot comprobar el formato de los datos introducidos (por ejemplo, verificar que el usuario haya introducido un número de teléfono y no otra cosa).

Durante la recopilación de datos, los usuarios a menudo introducen información diferente de la solicitada. Aquí hay un ejemplo típico de un flujo de validación de número de teléfono. Si el usuario introduce algo que no sea un número de teléfono válido, el bot le pedirá que lo intente de nuevo.

<div data-with-frame="true"><figure><img src="/files/6e497d1b7c9a5f0831946eeaac631cc9cd10e39e" alt=""><figcaption></figcaption></figure></div>

Desde el bloque que solicita el número de teléfono, salen dos conexiones:

1. Una conexión **sin disparador**
2. Otra conexión con un **disparador regex** para validar un número de teléfono

^(\\+)?((\d{2,3}) ?\d|\d)((\[ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$

La conexión con disparador añade el número de teléfono a la solicitud y solo se activará cuando se detecte un número de teléfono válido. La segunda conexión se activará en todos los demás casos, ya que tiene menor prioridad.

{% hint style="info" %}
La lista completa de expresiones regulares útiles se puede encontrar en [el artículo con el mismo nombre](/doc/es/chatbot/functions/regex.md).
{% endhint %}

### Búsqueda semántica

El **"**&#x42;úsqueda semántic&#x61;**"** opción se basa en inteligencia artificial: un verdadero avance para tu chatbot.

Cómo funciona:

* El disparador contiene palabras o frases que representan el **SIGNIFICADO** que la IA identificará en el mensaje del cliente.
* El sistema (chatbot) procesa el mensaje del cliente buscando el significado incrustado en la condición dentro de la entrada del cliente.
* Luego, el bot activa el evento correspondiente en el bloque.

En otras palabras, al especificar ciertas frases o valores en la condición, la IA compara cada condición con el mensaje del cliente y activa el evento relevante en el bloque (por ejemplo, enviar un mensaje, etc.).

Ejemplo:

Especificamos frases y palabras clave concretas para que la IA las detecte en el mensaje del cliente y active el evento relevante dentro del bloque.

En nuestro caso, el disparador incluye frases relacionadas con "cerrar cuentas o contratos."

<div data-with-frame="true"><figure><img src="/files/c6ca245bf35319ae2cdee019a758c966235bdd41" alt=""><figcaption></figcaption></figure></div>

Al usar la **"**&#x42;úsqueda semántic&#x61;**"** opción, el bot debe encontrar en el mensaje del cliente palabras o frases que sean similares en significado a las especificadas en la condición:

<div data-with-frame="true"><figure><img src="/files/443700818e61c90bbb72a13f670e4e6d128b122c" alt="" width="563"><figcaption></figcaption></figure></div>

Cada vez que el bot procesa un mensaje del cliente, activa correctamente el evento requerido definido en el bloque.

**Cómo escribir un disparador**\
El disparador se introduce en el campo correspondiente igual que otras condiciones para cualquier tipo de coincidencia: separadas por punto y coma (;).

<div data-with-frame="true"><figure><img src="/files/6f30c0c02a5801c7c7f57ee586a6298fbfc4a685" alt=""><figcaption></figcaption></figure></div>

Es mejor especificar frases o palabras en el campo del disparador de la forma más precisa y concisa posible.

{% hint style="success" %}
Una condición concisa, clara y precisa para el bloque ayuda al chatbot a activar correctamente el evento contenido dentro del bloque.

Cuanto más complejas, vagas y extensas sean las frases incluidas en la condición, más tiempo tardará la IA en procesar los mensajes del cliente, lo que puede provocar un comportamiento incorrecto de tu flujo.
{% endhint %}

{% hint style="warning" %} <mark style="color:rojo;">**¡Ten en cuenta!**</mark>&#x20;

Un disparador debe **NOT** consistir en una sola palabra: aunque las condiciones deben ser concisas, deben reflejar el significado que el bot está buscando.

Si el modelo compara dos palabras únicas diferentes, no coincidirán. Por ejemplo, en lugar de usar la palabra "invoice," usa la condición "pago de la factura mensual." Esta condición cumplirá mejor los requisitos previstos y proporcionará al modelo de IA los criterios necesarios para la coincidencia semántica.
{% endhint %}

Así, al usar la **"**&#x42;úsqueda semántic&#x61;**"** opción, la IA analizará varias posibilidades para entender el significado del mensaje del cliente y, según la coincidencia, el chatbot activará el evento apropiado.

## Constructor de activadores

Trigger es una función única y especializada diseñada para crear rápidamente disparadores dentro de los bloques correspondientes para responder a callbacks entrantes de varios canales, sistemas de pago y otras integraciones.

En consecuencia, el constructor de disparadores solo está disponible para los bloques que admiten disparadores:

<div data-with-frame="true"><figure><img src="/files/9d65667c07cefe6d2727759c6b59baa88291ea2a" alt="" width="375"><figcaption></figcaption></figure></div>

Para usar el constructor de disparadores, abre la configuración del bloque, donde verás el botón correspondiente ubicado justo encima del campo de condición:

<div data-with-frame="true"><figure><img src="/files/1d15b31b7378d20d2a4d9efb5108a49a587edf13" alt=""><figcaption></figcaption></figure></div>

Después de hacer clic en el botón correspondiente, se abrirá una ventana para trabajar con condiciones:

<div data-with-frame="true"><figure><img src="/files/8e0bd870beaa27ad224023bb7600d5455fcd7cd8" alt=""><figcaption></figcaption></figure></div>

### Disparadores de MaviBot

<div data-with-frame="true"><figure><img src="/files/02ade6f279dbf5df40901ccf6f4623a31c53eb76" alt=""><figcaption></figcaption></figure></div>

El **"Disparadores de MaviBot"** pestaña del constructor de disparadores incluye todas las condiciones del sistema que se almacenan y están disponibles para su uso en varias secciones de MaviBot.

**Disparadores predeterminados**\
Esta funcionalidad funciona de forma similar a las condiciones anidadas dentro de un bloque: aquí especificas condiciones que están **NOT** preconstruidas en el sistema. Puede ser una etiqueta de embudo, una etiqueta de sitio o cualquier otra condición que exista solo en tu proyecto.

**Variables**

<div data-with-frame="true"><figure><img src="/files/31acc178f6b3a3f37ef304bc675319dbf6eba112" alt=""><figcaption></figcaption></figure></div>

Los disparadores con variables son bastante fáciles de configurar.

**Paso 1.** Introduce el nombre de la variable en el campo correspondiente.

**Paso 2.** Elige el parámetro de comparación.

<div data-with-frame="true"><figure><img src="/files/a89309f6b13aec4c031dc501bad2eed9fe278019" alt="" width="563"><figcaption></figcaption></figure></div>

En otras palabras, especifica con qué quieres comparar tu variable: un valor específico u otra variable.

<div data-with-frame="true"><figure><img src="/files/84d7a4152e827b6abdd00dbe30b7e4a34570823c" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/9f74a361bb363fed89af0bf3bdac6ab14a312e84" alt="" width="563"><figcaption></figcaption></figure></div>

Paso 3. Selecciona el tipo de comparación.

<div data-with-frame="true"><figure><img src="/files/5a730b8aca5774b16679032f20f46f121e99fbe8" alt="" width="563"><figcaption></figcaption></figure></div>

Cada comparación tiene su significado: igual a (==); distinto de (!=); estrictamente mayor que (>); mayor o igual que (>=); estrictamente menor que (<); menor o igual que (<=).

Ejemplo:

<div data-with-frame="true"><figure><img src="/files/884cfa75d10a54e8fadfc0c87edcbdf27503919e" alt="" width="563"><figcaption></figcaption></figure></div>

En el ejemplo, el valor de la variable se establece para que sea mayor o igual que 21. ¿Qué significa esto?\
Significa que el evento dentro del bloque solo se activará para los clientes que pertenezcan al grupo de edad "adulto", es decir, los que tengan 21 años o más.

La expresión **"edad >= 18"** es equivalente a **"edad > 17."**

La condición **"edad > 17"** también se activará solo para quienes sean estrictamente mayores de 17, es decir, a partir de 18 años en adelante.

#### Secciones de MaviBot

<div data-with-frame="true"><figure><img src="/files/79fa6ee50d6f50e7360a6becc278bffa53e16e9f" alt=""><figcaption></figcaption></figure></div>

En las condiciones de las secciones de MaviBot, hay callbacks típicos —notificaciones del sistema— sobre diversos eventos en el proyecto.

Para activar un evento dentro de un bloque basado en notificaciones del sistema, establece el callback requerido en el campo de condición, luego selecciona el tipo de coincidencia y haz clic en el **"Añadir condición"** botón:

Después de eso, la condición aparecerá en los campos correspondientes dentro del bloque.

{% hint style="success" %}
Si el bloque ya contiene una condición, al hacer clic en el **"Añadir condición"** botón se añadirá la nueva condición **después** de la existente. Si necesitas reemplazar la condición anterior por una nueva, haz clic en **"Reemplazar condición."**
{% endhint %}

### Mensajeros

<div data-with-frame="true"><figure><img src="/files/88c8d7c79d41d578cca29e545ce72b7fc23ddeb3" alt="" width="563"><figcaption></figcaption></figure></div>

El constructor de condiciones en canales ayuda no solo a rastrear reacciones a publicaciones o posts, sino también a activar eventos dentro de los bloques para la respuesta del chatbot.

### Pago

<div data-with-frame="true"><figure><img src="/files/df8bd06111e4e4082f578d433b5a8bd583b58d92" alt="" width="563"><figcaption></figcaption></figure></div>

Paso 1. Para configurar condiciones para sistemas de pago, asegúrate de haber conectado la integración correspondiente; de lo contrario, no podrás usar el constructor de condiciones con el sistema requerido.

Paso 2. A continuación, haz clic en el sistema de pago que necesites.

Paso 3. Selecciona el callback apropiado.

Paso 4. Luego introduce el importe del pago en el campo correspondiente y haz clic en **"Añadir condición."** El último paso es escribir el mensaje apropiado en la configuración del bloque:

{% hint style="success" %}
Las otras secciones del constructor de condiciones se configuran de manera similar a las secciones tratadas aquí.\
¡Te deseamos éxito!
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/es/chatbot/builder/setting/trigger/type.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
