> For the complete documentation index, see [llms.txt](https://docs.chatlayer.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/buildabot/flow-logic/dialog-state/user-input-bot-dialog.md).

# Coletar entrada

Adicionar um **Coletar entrada** bloco por [arrastando e soltando-o](https://docs.chatlayer.ai/buildabot/bot-navigation/bot-builder/flows/canvas-functionalities#drag-and-drop) no seu fluxo.

<figure><img src="/files/95b467270996a8fcef8464f3b8fcb7ca03e9541e" alt="" width="144"><figcaption><p>Aba Coletar entrada.</p></figcaption></figure>

Um **Coletar entrada** obtém informações do usuário, verifica-as e as salva como uma [variável](https://docs.chatlayer.ai/bot-answers/settings/secure-variables-gdpr).

<figure><img src="/files/86d4338f054bdff0d58e06a811401016a60c0758" alt=""><figcaption><p>Como um bloco Coletar entrada se parece na tela.</p></figcaption></figure>

Um **Coletar entrada** normalmente fará 3 coisas:

* definindo [qual tipo de entrada](#input-types) você está visualizando
* [verificando se a resposta do usuário corresponde a](#check-if-a-response-matches)
* [configur](#configuration)[ando](#configuration) o comportamento do seu bot depois disso

## Adicionar um passo de pergunta

Um Coletar entrada deve claramente pedir ao usuário por alguma entrada.&#x20;

<figure><img src="/files/fd519be37bb0d531b0663694ce43ce8af679a23e" alt="" width="375"><figcaption><p>Faça uma pergunta ao usuário.</p></figcaption></figure>

## Capturar resposta do usuário como

O **Coletar entrada** primeiro verifica se a entrada corresponde a um [tipo de entrada](#input-types).

<figure><img src="/files/8dce76615c1c93d6ff1bb1e171a65994ac5ff80b" alt="" width="375"><figcaption><p>Verifique se a entrada do usuário corresponde.</p></figcaption></figure>

{% hint style="info" %}
Para [voicebots](/chatlayer-documentation-pt-br/voz/phone-and-voice.md), certifique-se de usar o **voiceMessage** tipo de entrada.
{% endhint %}

Se sim, o **Coletar entrada** salva essa entrada sob uma [**variável de destino**](#when-the-user-response-matches).

<figure><img src="/files/6453193aed53217ebd675890a2ca7ad2fc4f92ff" alt="" width="375"><figcaption><p>Salvar a entrada que corresponde em uma variável.</p></figcaption></figure>

## Tipos de entrada

**Coletar entrada** blocos têm 3 tipos de reconhecimento de entrada:

* [**Geral**](#general-input-type) tipos de entrada para verificar se a entrada segue um formato desejado.
* [**Sistema**](#system-entities-input-type) tipos de entrada para verificar se a entrada segue uma entidade integrada do Chatlayer.
* [**Entidade**](/chatlayer-documentation-pt-br/nlp/natural-language-processing-nlp/detect-information-with-entities.md) tipos de entrada para verificar a entrada do usuário com uma [entidade](/chatlayer-documentation-pt-br/navegacao/natural-language-processing-nlp/synonym-entities.md).

{% hint style="warning" %}
Chatlayer extrai dados das entradas dos usuários. Por exemplo, se um plugin de entrada tem um tipo de **data** e a entrada é 'Preciso estar em Paris *em dois dias*,' o parser identificará 'em dois dias' como a data. Ele a converte para o formato DD-MM-YYYY e armazena o resultado na sessão do usuário.
{% endhint %}

{% hint style="danger" %}
Por favor, note que o número de [entidades do sistema ](/chatlayer-documentation-pt-br/nlp/natural-language-processing-nlp/detect-information-with-entities/system-entities.md)que você pode usar dentro de um **Coletar entrada** bloco é limitado. As entidades do sistema que você pode usar dentro desses blocos são: **sys.email**, **sys.phone\_number**, **sys.url**, **sys.number**, e **sys.time**.
{% endhint %}

### Entrada Geral

O **Geral** o tipo de entrada verifica se a entrada segue um formato desejado.

<details>

<summary>Qualquer</summary>

O **Qualquer** tipo de entrada aceitará todos os valores de string como entrada.&#x20;

É importante saber que intenções e entidades são processadas antes dos parsers. Isso pode ser útil para extrair automaticamente certas partes de uma frase como resposta a uma pergunta. Nós fornecemos um ótimo exemplo disso em nosso [tutorial](/chatlayer-documentation-pt-br/comece-rapidamente/leadzy-tutorial/3.-collect-and-display-user-input.md).

</details>

<details>

<summary>Data</summary>

O **Data** o tipo de parser de entrada irá analisar a resposta como uma data. Sentenças como 'próxima segunda-feira' são automaticamente convertidas para um objeto de data DD-MM-YYYY. Formatos suportados (também em outras linguagens NLP suportadas) são:

* *22-04-2018*
* *22-04*
* *22 abr*
* *22 abril 18*
* *vinte e dois de abril de 2018*
* *ontem*
* *hoje*
* *agora*
* *ontem à noite*
* *amanhã, amnh*
* *em duas semanas*
* *em 3 dias*
* *próxima segunda*
* *próxima sexta da semana*
* *última/passada segunda*
* *última/passada semana*
* *dentro/em 5/cinco dias*
* *Sexta/SEX*

</details>

<details>

<summary>Imagem</summary>

O **Imagem** o tipo de formato permite verificar se um usuário carregou uma imagem ou outro arquivo (como pdf).&#x20;

A imagem será salva como um array. Se você escolher `{img}` como variável, isso significa que você deve usar `{img[0]}` para recuperar a URL da primeira imagem salva.&#x20;

Para o widget de chat (canal web), recomendamos usar o [passo de envio de arquivo](/chatlayer-documentation-pt-br/buildabot/flow-logic/dialog-state/message-components.md#file-upload) .

Para salvar um anexo do usuário em qualquer ponto do fluxo, use a `defaultOnFileUpload` variável. Essa variável irá armazenar a URL do anexo enviado pelo usuário, independentemente de onde ele está na conversa.

</details>

<details>

<summary>Localização</summary>

O **Localização** o parser envia a entrada do usuário para um serviço da Google Geocoding API. Quando um endereço ou localização correta é reconhecido, a plataforma Chatlayer criará automaticamente um objeto que contém todos os dados geográficos relevantes.&#x20;

<img src="/files/d12a6bca609abcb58407c5eb853e71cd766d6077" alt="Check the user location." data-size="original">

Olhe para o bloco acima. Quando o usuário responde à pergunta "Onde você trabalha?" com uma localização válida, essa informação será armazenada como uma `variável userLocationInformed` (você pode renomear essa variável se necessário).&#x20;

Abaixo está um exemplo que mostra como a `variável userLocationInformed` variável seria armazenada quando o usuário responde com 'Chatlayer.ai':

```javascript
{
    fullAddress: "Oudeleeuwenrui 39, 2000 Antwerpen, Belgium",
    latitude: 51.227317,
    longitude: 4.409155999999999,
    streetNumber: "39",
    streetName: "Oudeleeuwenrui",
    city: "Antwerpen",
    country: "Belgium",
    zipcode: "2000",
}
```

Para mostrar o endereço como um endereço completo (rua, número, código postal e cidade) você precisa adicionar algumas informações extras à variável: `.fullAddress`

Então, no exemplo acima, o bot pode exibir a localização inteira usando a seguinte variável:`{userLocationInformed.fullAddress}`

Uma mensagem do bot contendo as seguintes informações:

`Obrigado, devo enviar seu pacote para {userLocationInformed.fullAddress}?`

Exibirá a seguinte mensagem ao usuário:

`Obrigado, devo enviar seu pacote para Oudeleeuwenrui 39, 2000 Antwerpen, Belgium?`

</details>

<details>

<summary>Idioma</summary>

Este tipo de entrada irá analisar e validar línguas suportadas pelo NLP.

* Inglês: (en-us): 'engels', 'English', 'en', 'anglais'
* Holandês (nl-nl): 'nederlands', 'Dutch', 'ned', 'nl', 'vlaams', 'hollands', 'be', 'ned', 'néerlandais', 'belgisch'
* Francês (fr-fr): 'French', 'français', 'frans', 'fr', 'francais'
* Chinês (zh-cn): 'Chinese', 'cn', 'zh', 'chinees'
* Espanhol (es-es): 'Spanish', 'español', 'es', 'spaans'
* Italiano (it-it): 'Italian', 'italiaans', 'italiano', 'it
* Alemão (de-de): 'German', 'duits', 'de', 'deutsch
* Japonês (ja-jp): 'Japanese', 'japans', 'jp', '日本の
* Português do Brasil (pt-br): 'Brazil Portugese', 'Portugese', 'portugees', 'braziliaans portugees', 'português'

</details>

<details>

<summary>voiceMessage</summary>

Use o **voiceMessage** tipo de entrada para salvar mensagens do canal de voz como texto. Configure a duração máxima e o tempo de conclusão para essas mensagens.

<img src="/files/7e152a854f926b1b09811bba65e87af4366adb87" alt="" data-size="original">

</details>

<details>

<summary>Horas</summary>

Este tipo de entrada irá analisar e validar marcações de tempo.

</details>

### Entrada de entidade do sistema

O **Coletar entrada** o parser pode verificar se a entrada fornecida é consistente com o formato de um dos seguintes [entidades do sistema](/chatlayer-documentation-pt-br/nlp/natural-language-processing-nlp/detect-information-with-entities/system-entities.md). Sempre que uma entidade do sistema é escolhida no menu 'Verificar se a resposta corresponde', você pode dar à variável um nome que funcione para você.

<figure><img src="/files/b206c053f39ca68ae787ca98191fd606e6f77144" alt="" width="375"><figcaption><p>Renomeie a variável que corresponde ao parser de entidade do sistema.</p></figcaption></figure>

<details>

<summary>🆕 Reconhecimento de entidade do sistema baseado em LLM</summary>

Seu bot agora é capaz de reconhecer entidades do sistema dependendo do contexto da conversa, usando tecnologia LLM.

Por enquanto, este recurso está disponível apenas para [entidades do sistema](/chatlayer-documentation-pt-br/nlp/natural-language-processing-nlp/detect-information-with-entities/system-entities.md).

Por exemplo:

1. Vá para o seu bot [**Configurações**](/chatlayer-documentation-pt-br/navegacao/settings.md).
2. Em **IA Generativa**, clique no interruptor ao lado de **Ativar recursos de IA generativa**.
3. Ativar **Reconhecimento de entidade baseado em LLM**.&#x20;

<img src="/files/178fe79fc377a504dcb0261270df30b2b7ed7fee" alt="" data-size="original">

4. Clique **Salvar**.
5. Volte para o seu [**Fluxos**](/chatlayer-documentation-pt-br/navegacao/bot-builder/flows.md).
6. Crie um **Coletar entrada** que verifica o número de passageiros e verifica se corresponde a uma entrada @sys.number.&#x20;

![](/files/b55da48a23333779e2e25547a2a9abf9bf4aab77)

7. Exiba essa variável no próximo bloco.
8. Teste o bot: o bot agora reconhece sentenças mais complexas como o número correto de pessoas!

<img src="/files/97d250ce7cd2a24529f95cd78d2a6258aa712802" alt="" data-size="original">

</details>

### Entrada de entidade

Depois de você criar uma [entidade](/chatlayer-documentation-pt-br/navegacao/natural-language-processing-nlp/synonym-entities.md), você pode verificar se a entrada do usuário corresponde a ela.

{% hint style="info" %}
Saiba mais sobre quais [tipo de entidade](/chatlayer-documentation-pt-br/nlp/natural-language-processing-nlp/detect-information-with-entities.md) se adequa ao seu caso de uso.
{% endhint %}

## Verifique se a entrada corresponde

Um bloco Coletar entrada verifica se a resposta do usuário corresponde a uma variável já conhecida:&#x20;

* Se a variável ainda não tiver um valor, o bot fará a pergunta escrita no bloco Coletar entrada. Neste ponto, ou:
  * [O valor corresponde](#if-a-response-matches), e a variável é preenchida.
  * [O valor não corresponde](#if-a-response-does-not-match), e as perguntas de fallback são feitas.
  * O usuário não responde, e você decide [detectar esse silêncio](#no-response).
* Se a variável já tiver um valor, o bot automaticamente pulará o bloco Coletar entrada.

### Quando a resposta do usuário corresponde

Se a resposta for correspondida no momento em que o Coletar entrada é acionado, ela será salva corretamente sob o nome de variável especificado no [debugger](/chatlayer-documentation-pt-br/buildabot/emulator.md).

{% hint style="warning" %}
Se o bloco Coletar entrada for pulado, isso ocorre porque a variável já é conhecida. Variáveis podem ser conhecidas por vários motivos:

* O usuário respondeu a essa pergunta antes.
* Uma entidade anterior foi detectada com o mesmo nome de variável.
* O usuário está autenticado e a variável foi definida automaticamente.
  {% endhint %}

### 🆕 Quando a resposta do usuário não corresponde

Quando o usuário fornece uma resposta inválida, o bot deve informar ao usuário que sua resposta foi inválida.&#x20;

#### Retentativas

Configure quantas vezes você quer que o bot faça a pergunta novamente. Tipicamente, isso apenas pedirá para reformular.

<figure><img src="/files/0d04d93b95cce6c883bfa8748b7a362e8b51a153" alt="" width="375"><figcaption><p>Configure Retentativas dentro dos blocos Coletar entrada.</p></figcaption></figure>

#### Fallback

Configure uma mensagem de fallback para onde redirecionar o usuário quando o usuário já tiver usado todas as suas retentativas. Tipicamente, isso levaria a ajuda do suporte ao cliente, por exemplo.

<figure><img src="/files/dc6a1a6432c2b350bf845e667bf8b25969956072" alt="" width="375"><figcaption><p>Configure um fallback após X retentativas.</p></figcaption></figure>

#### Sem resposta

Você pode configurar o bot para detectar quando um usuário permanece em silêncio por um período especificado. Isso aciona um bloco específico quando nenhuma resposta é recebida dentro do prazo definido ou até um horário predeterminado.

Você pode definir quanto tempo leva para o novo bloco ser acionado no campo de duração (em minutos ou em um horário específico). A duração do silêncio pode ser de 1 minuto até 1440 minutos (24 horas).

<figure><img src="/files/595816d2fd4b2f6e93e6b154ae4d4cbe3ecfd652" alt="" width="375"><figcaption><p>Você pode selecionar entre 'aguardar por' ou 'aguardar até' a resposta do usuário antes de acionar um bloco</p></figcaption></figure>

## Capturar resposta do usuário como

A parte inferior do seu bloco Coletar entrada pode ser configurada para que você tenha certeza de detectar a resposta que está procurando.&#x20;

<figure><img src="/files/33f3264446618003f436e4553373aafc7d07eb4c" alt="" width="375"><figcaption></figcaption></figure>

#### Desativar NLP

Os usuários podem sair do Coletar entrada se uma intenção for reconhecida. Para bots com um modelo NLP muito pequeno, isso pode acionar um falso positivo. A caixa de seleção 'desativar NLP' permite que você desative o modelo NLP enquanto estiver no Coletar entrada, o que garante que o que quer que o usuário diga seja salvo como entrada.

#### Para variável de data: Sempre passado - sempre futuro

Quando você decide verificar uma `data` variável, o Chatlayer analisa a expressão do usuário para corresponder a um formato de data padrão. Se a data que você pede deve sempre estar no presente ou futuro, você pode usar essas opções. Um usuário dizendo “quinta-feira”, por exemplo, será mapeado para a quinta-feira passada ou próxima.

&#x20;


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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/flow-logic/dialog-state/user-input-bot-dialog.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.
