# Reconhecendo um usuário recorrente

Um bom bot faz os usuários sentirem como se estivessem conversando com outro humano. Então, quando um usuário já conversou com o bot e seu bot inicia a próxima conversa como se nunca tivesse encontrado esse mesmo usuário antes, a conversa fica muito menos natural e o bot parece bobo por não lembrar desse usuário.&#x20;

É por isso que nossa plataforma permite reconhecer e cumprimentar usuários que retornam de forma diferente, usando variáveis salvas de sessões anteriores.

{% hint style="info" %}
Nem todos os canais salvam variáveis da mesma forma.

O Facebook Messenger as salva indefinidamente, mas por padrão o Widget Web salva variáveis apenas durante a duração da sessão (a menos que a autenticação de usuários únicos esteja incorporada).
{% endhint %}

## Passo 1: Como converter sua introdução em um bloco Condição

A essa altura você já deve saber que toda conversa começa com o bloco de introdução bloco:

![O bloco de introdução inicia toda conversa](/files/d2fe5f7e61ee4e7e4dffed48010aa9c5c55c60c7)

Por padrão, o bloco de introdução é uma `mensagem do bot` onde você pode cumprimentar o usuário e iniciar a conversa:

![](/files/ba82bbb4c23a313b8069e98378ab1a40b2e23b24)

No entanto, em vez de cumprimentar o usuário imediatamente, você pode usar este bloco para primeiro verificar se o bot já conversou com esse usuário específico antes. Para isso, você pode transformar a mensagem de introdução do bot em uma mensagem de ir-para:

![Em 'Tipo', selecione 'ir para' para converter o bloco em uma Condição](/files/0be0c4e0d1bb879d23d477946f3be7e8abe0a860)

{% hint style="info" %}
Se você já escreveu algum texto no bloco de introdução, você o perderá ao converter a mensagem em um ir-para. Recomendamos criar uma nova mensagem do bot onde você copie o texto, para não perdê-lo.
{% endhint %}

## Passo 2: Como identificar um usuário que retorna

Usando a variável `known_user_flag`, o bot pode verificar se já falou com esse usuário específico antes e redirecioná-lo para uma introdução personalizada.

Para isso, você precisará criar uma 'declaração if':

* Se `known_user_flag` igual a `1`, o bot sabe que já houve uma conversa com esse usuário antes, caso contrário essa variável estaria vazia. Agora o usuário pode ser redirecionado para uma mensagem de introdução para usuários que retornam.
* Senão se `known_user_flag` não existe, o usuário é novo e deve ser redirecionado para uma introdução para novos usuários. Ao mesmo tempo, você deve definir o `known_user_flag` para `1` porque agora, o usuário não é mais novo.&#x20;

![Definindo a variável 'known\_user\_flag' para reconhecer um usuário que retorna](/files/040efd58e18deaf3f2a306296fed60b1a42f3605)

![Criando 2 introduções diferentes: uma para novos e outra para usuários que retornam](/files/c73c3263989605d14f910c49ba19b85ddd74f162)

## Passo 3: Como criar um fluxo personalizado, usando variáveis conhecidas

Usar uma introdução personalizada para usuários que retornam já cria uma ótima experiência do usuário:

![O bot parece inteligente porque reconhece o usuário](/files/6cf33ba798a17e11bd455f6d9d84a1da1fb6aa60)

No entanto, você pode levar a conversa para o próximo nível usando outras variáveis conhecidas de sessões anteriores.

Por exemplo, o bot Choo Choo pode reutilizar os valores 'origem' e 'destino' de conversas anteriores do usuário para sugerir uma nova jornada personalizada.

Antes de você poder usar quaisquer valores, primeiro será necessário verificar se algum já foi salvo:

![Configurando um ir-para para reconhecer valores salvos anteriormente](/files/32f5210418f1e6a69126f500636762f3a61735d3)

...e se esses valores realmente existirem, o bot precisa redirecionar para um diálogo específico, usando essas variáveis conhecidas:

![Que ótima experiência, esse bot sabe o que eu fiz da última vez!](/files/9e1c5e7d55855e20686195fe7b874dd0a81f34b4)

Dessa forma, variáveis salvas anteriormente podem criar uma experiência realmente personalizada para usuários que retornam e fazer seu bot parecer super, super inteligente 🤓


---

# 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.chatlayer.ai/chatlayer-documentation-pt-br/buildabot/tips-and-best-practices/how-to-recognize-a-returning-bot-user.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.
