# Mover um cliente após inatividade

Durante uma conversa com um cliente, pode surgir um problema em que ele não conclui a ação desejada ou fica travado no último bloco do funil, e o chatbot não responde às ações dele. Para evitar isso, você pode configurar uma transferência automática do cliente para outro bloco sem criar caminhos de movimentação duplicados.

## Como mover automaticamente um cliente pelo funil?

Como exemplo de movimentação automática de um cliente pelo funil, usaremos um fluxo simples de chatbot que pergunta ao usuário se ele irá participar de um evento:

<figure><img src="/files/247bfeabdbfd37957674d4aa23eda574a4e8cdaf" alt="" width="223"><figcaption><p>Fig. 1</p></figcaption></figure>

No exemplo (Fig. 1), você pode ver que o cliente avança mais pelo funil somente se clicar no botão “Sim!” enviado pelo penúltimo bloco. (Em outros casos, o gatilho para continuar pelo funil pode ser praticamente qualquer coisa, dependendo das condições do seu fluxo de chatbot.)

Neste exemplo (Fig. 1), a cliente Nastya decidiu não clicar no botão no chatbot, então a conversa ficou travada no penúltimo bloco do funil:

<figure><img src="/files/5b462eb4a58033e517abbad50a83aa784837fd19" alt="" width="494"><figcaption><p>Fig. 2</p></figcaption></figure>

Para resolver esse problema, você precisa seguir alguns passos simples no seu fluxograma: para continuar o diálogo com o cliente ou movê-lo pelo funil depois de certo tempo (por exemplo, após *n* minutos), desenhe uma seta adicional a partir do penúltimo bloco e defina o atraso de tempo após o qual o cliente avançará automaticamente para o próximo bloco no funil.

<figure><img src="/files/e0111fcb52366c743c3f6b3b601b9d33b8321fdd" alt=""><figcaption><p>Crie uma segunda seta levando ao bloco</p></figcaption></figure>

Agora, defina um temporizador com o intervalo de tempo desejado nas configurações da seta, para que o cliente avance automaticamente para o próximo bloco:

<figure><img src="/files/fbbd49eebe1f0212088e0418f7b50374b14ccdb0" alt="" width="563"><figcaption><p>Fig. 3</p></figcaption></figure>

Não se esqueça de ativar a opção **“Cancelar se o bloco for deixado”** (Fig. 3) para evitar que a mensagem seja enviada novamente após o término do temporizador, caso o cliente já tenha avançado para o próximo bloco (por exemplo, clicando em um botão).

<figure><img src="/files/b6701783576d8b670103eecf8d81d429d0be957a" alt="" width="563"><figcaption><p>Exemplo de transição automática</p></figcaption></figure>

O exemplo acima mostra que o bot move automaticamente o cliente pelo funil e envia a mensagem final — mesmo que ele não tenha clicado no botão. <br>

Agora, com a ajuda da segunda seta com o temporizador definido, o cliente será movido mais adiante no funil após um certo período de tempo.

## Como mover um cliente do último bloco para outro bloco?

No fluxograma (Fig. 4), você pode ver que o penúltimo bloco determina em qual bloco o seu cliente entrará, dependendo do botão que ele pressionar no bloco com duas ramificações:

<figure><img src="/files/aa8f204112270b8b42a34de47238eba516e73c50" alt="" width="563"><figcaption><p>Fig. 4. Fluxograma simples de chatbot</p></figcaption></figure>

Se o cliente clicar em um dos dois botões, ele ficará parado no último bloco e não poderá, por exemplo, retornar ao bloco anterior e escolher outra opção quando necessário. O chatbot simplesmente não responderá ao pressionamento de outro botão porque o usuário já avançou para o último bloco, que não permite mais movimentação pelo funil (veja o exemplo abaixo).

<figure><img src="/files/36f6b58aac3609fd3d3c0b3086832d9c19fadf8d" alt="" width="518"><figcaption><p>O cliente avançou para o último bloco, e o bot não responde a cliques repetidos nos botões.</p></figcaption></figure>

Nesse caso, você pode resolver o problema de duas maneiras:

1. Usando a **“Não Estado”** bloco — essa função mantém o cliente no bloco com as opções de botão, sem movê-lo para os próximos blocos.
2. Usando **botões de callback** — essa função move o cliente para os próximos blocos, mas ainda permite que ele altere sua escolha se não estiver satisfeito com o resultado.

### O bloco “Não Estado”

O bloco “Não Estado” é um bloco cinza. Diferente do bloco “Estado de Diálogo”, ele não tem condições, e os clientes não podem ser movidos diretamente para ele.

No nosso fluxo, o bloco “Não Estado” é perfeito porque o usuário não sairá do penúltimo bloco e poderá pressionar um botão diferente se não estiver satisfeito com sua primeira escolha.

Para configurar isso, vá até o construtor de funil e selecione o tipo de bloco **“Não Estado”** (não confunda com **“Não Estado com condição”**).

<figure><img src="/files/ed0ef8c44ff40c629607297334475895a06ec7f5" alt=""><figcaption><p>Fig. 5 bloco “Não Estado”</p></figcaption></figure>

Agora nosso fluxograma fica assim:

<figure><img src="/files/6b773c1652707ae6722c9f00bdbf315df8566ed7" alt="" width="563"><figcaption><p>Fig. 6</p></figcaption></figure>

Para testar se o fluxo funciona corretamente, abra o testador do bot. Lá, você verá que qualquer botão pode ser pressionado, independentemente da escolha anterior do cliente:

<figure><img src="/files/a0005cd636384c7301cc611d7d404d84ed0e892a" alt="" width="518"><figcaption></figcaption></figure>

### Botões de callback

Se você realmente precisar que o cliente avance mais pelo funil e faça transição para outros blocos, a funcionalidade do botão de callback ajudará.

Para isso, remova as setas que levam aos blocos finais no fluxograma e defina o tipo desses blocos como **“Verificação de condição primária”**:

<figure><img src="/files/014956a6b09ff5ebcdc356ce0ea6d08b46375649" alt="" width="563"><figcaption><p>Fig. 7. Fluxograma com blocos de “Verificação de condição primária”</p></figcaption></figure>

Vamos para as configurações do botão dentro do bloco:

<figure><img src="/files/f61f1e163d653625f9a4a2976daed008554af24f" alt=""><figcaption><p>Fig. 8. </p></figcaption></figure>

A janela de configurações do botão “Sim!” será aberta. Aqui, faça o seguinte:

* Selecione o tipo de botão **“Botão de callback”**
* No texto da mensagem de resposta, insira as palavras ou frases necessárias para o campo de condição em **“Verificação de condição primária”** .

<figure><img src="/files/e71e7a1bc51ab81c2af8999179bd3231d4fd9579" alt="" width="563"><figcaption><p>Fig. 9. Alterando as configurações do botão</p></figcaption></figure>

Configure o segundo botão da mesma forma (no nosso fluxo, este é o botão "Não").

{% hint style="warning" %}
Use textos/frases diferentes nos **campos de “texto da mensagem de resposta”** nas configurações dos botões dentro do mesmo projeto para evitar erros no chatbot.
{% endhint %}

Em seguida, vá para as configurações dos **Verificação da condição principal** blocos, onde você precisa inserir as palavras digitadas no **campos de “texto da mensagem de resposta”** campo, usando o tipo de correspondência **“Correspondência exata”**:

<figure><img src="/files/0492281e3b5f4d1246a94a7aea5ba099d7a24f9a" alt="" width="563"><figcaption><p>Fig. 10. Configurações do bloco "Verificação de condição primária"</p></figcaption></figure>

Configure o segundo bloco para o botão “Não” da mesma forma.

Dessa forma, você aprendeu como mover automaticamente um cliente pelo funil usando três métodos diferentes.

## Versão em vídeo do artigo

{% embed url="<https://youtu.be/vO5Q8aLKkrk>" %}


---

# 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/como-fazer.../mover-um-cliente-apos-inatividade.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.
