# Gatilho e tipo de correspondência

## Tipo de correspondência

Um **gatilho** é algo que ativa o bot, altera estados ou executa outra ação. As palavras no campo "Trigger" atuam como um gatilho para o fluxo no construtor executar o evento ou a ação contida no bloco.

**Gatilhos** controlam o fluxo da conversa. Eles são configurados no campo "Trigger" dentro de um bloco condicional ou em uma seta de conexão.

* **Formato:** Um gatilho pode ser um símbolo, número, expressão regular ou palavra-chave específica.
* **Ação:** Quando a entrada de um usuário corresponde a um gatilho definido, o bot executa o fluxo associado, como avançar para um novo estado do funil ou disparar uma ação.

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

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

Por exemplo, se você precisar criar um bloco para todas as possíveis palavras de início do messenger, você pode especificar a seguinte condição: start;start;get started;start

{% hint style="success" %}
Em todos os tipos de comparação, **o ponto e vírgula (;)**\
&#x20;é usado para separar condições.
{% endhint %}

O chatbot responderá ao gatilho executando a ação ou o evento especificado; por exemplo, ele pode enviar uma mensagem de boas-vindas ao cliente:

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

Para reconhecer um gatilho, você precisa definir o tipo de comparação (o **"Tipo de correspondência"** campo). O tipo de correspondência ajuda o chatbot a comparar a condição com a mensagem do cliente ou outra ação (como um clique em botão) e determinar qual evento disparar em seguida.

No MaviBot, há cinco tipos de correspondência de condição:

1. correspondência aproximada;
2. correspondência por palavra-chave;
3. correspondência RegEx;
4. correspondência exata;
5. busca semântica.

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

Vamos dar uma olhada mais detalhada em cada um deles.

### Correspondência aproximada

Este é o principal tipo de comparação, permitindo que o bot lide com erros de ortografia, digitação, imprecisões, letras faltando e rearranjos de letras. A condição é acionada se a similaridade entre as strings for maior que 70%.

**Exemplo:**\
Para a condição **"hello"**, as seguintes variações acionariam uma correspondência: **"hlelo"**, **"hellp"**, **"helo"**, e assim por diante.

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

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

Esse tipo de comparação é mais focado no usuário e leva em conta o fator humano ao processar condições, já que erros de digitação são bastante comuns.<br>

O **"Aproximada"** tipo de correspondência é ideal para o bloco de boas-vindas (inicial) em um fluxo de chatbot, onde o cliente é quem inicia a conversa.

### Correspondência por palavra-chave

**Correspondência por palavra-chave** é um tipo de comparação muito poderoso que ajuda a criar um consultor com aparência humana. Com esse tipo de correspondência, o bot responderá a qualquer mensagem do usuário que contenha pelo menos uma das palavras-chave da condição.

Em outras palavras, se o cliente enviar uma mensagem contendo uma ou mais palavras-chave da condição, o fluxo será acionado de acordo com suas configurações.

**Exemplo:**\
Para a condição "hello;person," a seguinte mensagem a acionaria:\
"Quero cumprimentar essa pessoa maravilhosa."

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

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

Você pode incluir um grande número de palavras-chave na condição. Isso permite que o chatbot reconheça o que o cliente precisa no momento e acione o evento apropriado configurado dentro do bloco.

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

Como visto no exemplo acima, o bot responderá a qualquer mensagem que contenha pelo menos uma das palavras-chave na condição.\
Esse tipo de correspondência também usa o campo **"Ignorar gatilhos"** (mensagens que não devem disparar uma resposta).

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

Esse campo funciona de forma semelhante ao campo de condição, mas com o efeito oposto: se a mensagem do usuário contiver quaisquer palavras do **"Ignorar gatilhos"** campo, a condição não será acionada.

Assim, se a condição no **"Ignorar gatilhos"** campo for atendida, a condição geral não funcionará.

### Variabilidade

Você pode adicionar um gatilho adicional separado por ponto e vírgula, mas e se você precisar corresponder a uma de várias opções de palavra?

Por exemplo, para lidar com frases como "Minha internet não está funcionando," "Meu computador não está funcionando," ou "Meu computador quebrou," com um único gatilho.

Obviamente, listar todas as variações de palavras-chave uma por uma não é prático. É por isso que a sintaxe OR foi criada. Para especificar uma entre várias palavras-chave equivalentes, coloque todas entre parênteses e separe-as com uma barra vertical (`|`).

Por exemplo, o gatilho `(tar plan|tariff) (pereit|podklyuch|menit|pomen)` vai corresponder a perguntas como:\
"Olá, como eu conecto um novo plano?"\
"Como eu altero meu plano de preços?"

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

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

Vamos analisar o gatilho:\
`(tar plan | tariff)` significa que a string deve conter **"tar" E "plan" OU "tariff"**\
E ao mesmo tempo uma das palavras: **"switch" OU "connect" OU "change" OU "replace"**.

Aqui estão outros exemplos intuitivos:

* `change password (cab|pa)`\
  ("cab" e "pa" são abreviações de "cabinet" e "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`

### Correspondência exata

Com esse tipo de comparação, o bot disparará o evento apenas se a mensagem do cliente corresponder exatamente à condição.

{% hint style="info" %}
A comparação não diferencia maiúsculas de minúsculas, ou seja, se a condição for "hello" e o usuário digitar "HELLO," a condição ainda será acionada. Isso deve ser levado em conta.
{% endhint %}

Esse tipo de comparação é adequado para uso em configurações como conexões quando um cliente clica em um botão ou faz a transição de uma mini landing page para o chatbot com uma tag de site especificada.

1. **Para cliques em botões:**\
   Por exemplo, nas condições, especificamos os nomes dos botões que, quando clicados pelo cliente, devem levá-lo ao bloco correspondente.

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

Em seguida, criaremos os blocos para os quais o cliente deve ser direcionado após clicar no botão após o primeiro bloco. Devem ser quatro:

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

Depois, nas configurações da seta, inserimos o nome do botão e definimos o tipo de correspondência como **"Correspondência exata."**

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

Agora você pode testar o bot:

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

Como você pode ver, o bot processa corretamente a condição e a seleção de correspondência exata ao usar botões.

2. Usando uma tag de site no funil:

Nesse caso, o princípio é semelhante ao uso de botões; porém, a condição e o tipo de correspondência são definidos diretamente dentro do próprio bloco condicional.

Aqui, a tag é obtida da aba **Sites** aba, onde você instalou a tag para a página do site:

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

A tag na condição do bloco é especificada **diretamente no campo CONDITION do bloco, sem usar as palavras "TAG" ou qualquer outro rótulo.**

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

{% hint style="info" %}
Para mais detalhes sobre como configurar o gatilho do bot usando uma tag instalada no site, consulte o artigo **"Criando um site e configurações básicas**[**"** no campo **"Tag"** seção.](/doc/pt/websites/sites/builder.md#tag)
{% endhint %}

O chatbot também responderá e executará o evento configurado dentro das configurações do bloco.

### Correspondência RegEx

Correspondência RegEx é um tipo de condição que permite ao bot verificar o formato dos dados inseridos (por exemplo, para confirmar que o usuário digitou um número de telefone e não outra coisa).

Durante a coleta de dados, os usuários frequentemente inserem informações diferentes do que foi solicitado. Aqui está um exemplo típico de fluxo de validação de número de telefone. Se o usuário inserir algo diferente de um número de telefone válido, o bot pedirá que ele tente novamente.

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

Do bloco que solicita o número de telefone, saem duas conexões:

1. Uma conexão **sem gatilho**
2. Outra conexão com um **gatilho regex** para validar um número de telefone

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

A conexão com um gatilho adiciona o número de telefone à solicitação e só será acionada quando um número de telefone válido for detectado. A segunda conexão será acionada em todos os outros casos, pois tem prioridade menor.

{% hint style="info" %}
Uma lista completa de expressões regulares úteis pode ser encontrada em [o artigo com o mesmo nome](/doc/pt/chatbot/functions/regex.md).
{% endhint %}

### Busca semântica

O **"**&#x42;usca semântic&#x61;**"** opção é baseada em inteligência artificial — um verdadeiro avanço para o seu chatbot.

Como funciona:

* O gatilho contém palavras ou frases que representam o **SIGNIFICADO** que a IA identificará na mensagem do cliente.
* O sistema (chatbot) processa a mensagem do cliente buscando o significado incorporado na condição dentro da entrada do cliente.
* O bot então dispara o evento correspondente no bloco.

Em outras palavras, ao especificar certas frases ou valores na condição, a IA verifica cada condição em relação à mensagem do cliente e dispara o evento relevante no bloco (por exemplo, enviar uma mensagem, etc.).

Exemplo:

Especificamos frases e palavras-chave específicas para a IA detectar na mensagem do cliente e disparar o evento relevante dentro do bloco.

No nosso caso, o gatilho inclui frases relacionadas a "encerrar contas ou contratos."

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

Ao usar a **"**&#x42;usca semântic&#x61;**"** opção, o bot deve encontrar palavras ou frases na mensagem do cliente que sejam semelhantes em significado às especificadas na condição:

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

Cada vez que o bot processa a mensagem de um cliente, ele aciona corretamente o evento necessário definido no bloco.

**Como escrever um gatilho**\
O gatilho é inserido no campo correspondente, assim como outras condições para qualquer tipo de correspondência: separadas por ponto e vírgula (;).

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

É melhor especificar frases ou palavras no campo de gatilho da forma mais precisa e concisa possível.

{% hint style="success" %}
Uma condição concisa, clara e precisa para o bloco ajuda o chatbot a disparar corretamente o evento contido no bloco.

Quanto mais complexas, vagas e extensas forem as frases incluídas na condição, mais tempo a IA levará para processar as mensagens do cliente, o que pode levar ao comportamento incorreto do seu fluxo.
{% endhint %}

{% hint style="warning" %} <mark style="color:vermelho;">**Por favor, observe!**</mark>&#x20;

Um gatilho deve **NOT** consistir em apenas uma palavra: embora as condições precisem ser concisas, elas devem refletir o significado que o bot está procurando.

Se o modelo comparar duas palavras únicas diferentes, elas não corresponderão. Por exemplo, em vez de usar a palavra “invoice,” use a condição “pagamento da fatura mensal.” Essa condição atenderá melhor aos requisitos pretendidos e fornecerá ao modelo de IA os critérios necessários para a correspondência semântica.
{% endhint %}

Assim, usando a **"**&#x42;usca semântic&#x61;**"** opção, a IA analisará várias possibilidades para entender o significado da mensagem do cliente e, com base na correspondência, o chatbot disparará o evento apropriado.

## Construtor de gatilhos

O Trigger é um recurso exclusivo e especializado, projetado para a criação rápida de gatilhos dentro dos blocos correspondentes para responder a callbacks recebidos de vários canais, sistemas de pagamento e outras integrações.

Assim, o construtor de gatilhos está disponível apenas para blocos que suportam gatilhos:

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

Para usar o construtor de gatilhos, abra as configurações do bloco, onde você verá o botão correspondente localizado logo acima do campo de condição:

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

Depois de clicar no botão correspondente, será aberta uma janela para trabalhar com condições:

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

### gatilhos do MaviBot

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

O **aba "Gatilhos do MaviBot"** no construtor de gatilhos inclui todas as condições do sistema que estão armazenadas e disponíveis para uso em várias seções do MaviBot.

**Gatilhos padrão**\
Essa funcionalidade funciona de forma semelhante às condições aninhadas dentro de um bloco: aqui você especifica condições que são **NOT** pré-inseridas no sistema. Isso pode ser uma tag de funil, uma tag de site ou qualquer outra condição que exista apenas no seu projeto.

**Variáveis**

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

Gatilhos com variáveis são bem fáceis de configurar.

**Passo 1.** Digite o nome da variável no campo apropriado.

**Passo 2.** Escolha o parâmetro de comparação.

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

Em outras palavras, especifique com o que você quer comparar sua variável: um valor específico ou outra variável.

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

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

Passo 3. Selecione o tipo de comparação.

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

Cada comparação tem seu significado: igual a (==); diferente de (!=); estritamente maior que (>); maior ou igual a (>=); estritamente menor que (<); menor ou igual a (<=).

Exemplo:

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

No exemplo, o valor da variável é definido como maior ou igual a 21. O que isso significa?\
Significa que o evento dentro do bloco será acionado apenas para clientes que pertencem à faixa etária "adulta" — ou seja, aqueles que têm 21 anos ou mais.

A expressão **"idade >= 18"** é equivalente a **"idade > 17."**

A condição **"idade > 17"** também será acionada apenas para aqueles estritamente maiores que 17, ou seja, a partir de 18 anos ou mais.

#### Seções do MaviBot

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

Nas condições das seções do MaviBot, há callbacks típicos — notificações do sistema — sobre vários eventos no projeto.

Para acionar um evento dentro de um bloco com base em notificações do sistema, defina o callback necessário no campo de condição, depois selecione o tipo de correspondência e clique no **"Adicionar condição"** botão:

Depois disso, a condição aparecerá nos campos correspondentes dentro do bloco.

{% hint style="success" %}
Se o bloco já contiver uma condição, clicar no **"Adicionar condição"** botão adicionará a nova condição **após** a existente. Se você precisar substituir a condição antiga por uma nova, clique em **"Substituir condição."**
{% endhint %}

### Mensageiros

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

O construtor de condições nos canais ajuda não apenas a acompanhar reações a posts ou publicações, mas também a acionar eventos dentro dos blocos para a resposta do chatbot.

### Pagamento

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

Passo 1. Para configurar condições para sistemas de pagamento, certifique-se de ter conectado a integração correspondente; caso contrário, você não conseguirá usar o construtor de condições com o sistema necessário.

Passo 2. Em seguida, clique no sistema de pagamento de que você precisa.

Passo 3. Selecione o callback apropriado.

Passo 4. Depois, insira o valor do pagamento no campo correspondente e clique em **"Adicionar condição."** A última etapa é escrever a mensagem apropriada nas configurações do bloco:

{% hint style="success" %}
As outras seções do construtor de condições são configuradas de forma semelhante às seções abordadas aqui.\
Desejamos sucesso!
{% 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/pt/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.
