# 3. Coletar e exibir a entrada do usuário

No Chatlayer, coletar respostas dos seus usuários pode ser feito de 3 maneiras:

* usando cliques em botões, que são melhores para perguntas fechadas, ou seja, perguntas com um conjunto limitado de respostas possíveis.
* usando blocos Collect input, que são melhores para perguntas abertas, ou seja, perguntas com um conjunto de respostas possíveis aberto.
* usando entidades.

{% hint style="success" %}
&#x20;[Entidades](https://docs.chatlayer.ai/understanding-users/natural-language-processing-nlp/synonym-entities) são um recurso especial de NLP para detectar informações dentro da mensagem do usuário. Você descobrirá mais sobre elas em outro tutorial.
{% endhint %}

Nesta lição, você aprenderá como usar cliques em botões e blocos Collect input para salvar informações que podem ser reutilizadas mais tarde.

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FvgGsqwTgsVElWoE9jxdb%2FChooChoo%20tutorial%20rework.jpg?alt=media&#x26;token=5607ad24-edd8-4ead-a60b-62fea043417e" alt=""><figcaption><p>O que será construído nesta lição.</p></figcaption></figure>

## Etapa 6: Obter respostas por cliques em botões

Uma maneira fácil e rápida de obter entrada dos seus usuários é adicionar botões ao seu chatbot.

Vamos criar um bloco que pergunta se o usuário é um cliente novo, o que dará então uma resposta diferente.

### Adicionar botões

Para adicionar botões ao seu bot:

1. Vá para o seu canvas.
2. Arraste e solte um **Mensagem** bloco para sua tela de fluxo.

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2Fz8kcaRCMX6LeXWo4Fpom%2FScreenshot%202024-03-07%20at%2009.31.54.png?alt=media&#x26;token=2be6dd05-f0c3-416a-a133-dc7ab1e08a97" alt="" width="375"><figcaption><p>Adicione um bloco Message ao seu canvas.</p></figcaption></figure>

3. O bloco abre no lado direito da tela. Adicione um **Botões** passo ao seu bloco clicando nele.

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2Fh3CKu83zhniraPNGmbgP%2FScreenshot%202024-02-06%20at%2012.57.50.png?alt=media&#x26;token=e7e23fd2-08fb-4195-82e1-ce51c6f37bb1" alt="" width="375"><figcaption><p>Adicione um passo Buttons ao seu bloco.</p></figcaption></figure>

4. Como um **Mensagem de texto**, adicione: *É a sua primeira vez comprando conosco?*
5. Abaixo disso, clique em **Adicionar botão**.
6. Clique em **Ir para**.

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FhTwkzqz4wAbUALVQR6Gp%2FScreenshot%202024-03-07%20at%2008.43.03.png?alt=media&#x26;token=283139fc-7f28-46b8-880f-df54bede1e20" alt="" width="375"><figcaption><p>Adicione um botão Go-to ao seu bloco.</p></figcaption></figure>

{% hint style="success" %}
Um [Botão Go-to](https://docs.chatlayer.ai/bot-answers/go-to-connections#go-tos-in-buttons) é um botão que, quando clicado, vai para outro bloco na conversa.
{% endhint %}

7. Em **Título**, adicione *Sou novo*.
8. Em **Ir para**, crie um **Mensagem** bloco chamado 'Welcome new user'. É um espaço reservado ao qual voltaremos mais tarde no tutorial.
9. Repita o mesmo passo para criar outro botão chamado *Eu já sou cliente* que vai para um novo bloco que você chamará *Welcome returning user.*

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FiaMOPKp2V1iP0jNolF8w%2FScreenshot%202024-03-07%20at%2008.49.53.png?alt=media&#x26;token=3fe69217-1e64-4b58-823c-107ae658261b" alt="" width="375"><figcaption><p>Preencha seus botões com um título e um Go-to.</p></figcaption></figure>

10. **Salvar** suas alterações.

Seus botões foram criados! Vamos definir o que acontece quando eles forem clicados agora.

### Definir respostas após cliques

Hora de modificar elementos no seu canvas para que o bloco certo leve à resposta certa.

{% hint style="info" %}
Seu canvas oferece maneiras flexíveis e múltiplas de navegar nele. Saiba tudo sobre isso [aqui](https://docs.chatlayer.ai/bot-answers/bot-canvas/canvas-functionalities).
{% endhint %}

#### Alterar o nome e o conteúdo de um bloco

1. No canvas, clique duas vezes no último bloco que você criou para alterar seu nome:
   * Chame-o de *Verificar tipo de usuário*.
   * Clique no **ícone de** marca de seleção para salvá-lo.

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FmVAByC9ExQMEMQ5WyDwO%2FScreenshot%202024-03-07%20at%2009.34.49.png?alt=media&#x26;token=badc7c4a-8f8d-48b1-896f-bb4987497c28" alt=""><figcaption><p>Altere o nome do seu bloco diretamente no canvas.</p></figcaption></figure>

2. Abra **Welcome returning user** e altere seu conteúdo para: *Ótimo ver você novamente!*
3. Abra **Welcome new user** e altere seu conteúdo para: *Bem-vindo então! Hoje é seu dia de sorte: temos 5% de desconto extra para novatos!*

As alterações devem ficar assim no seu canvas:

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FOHWb1y2ywcIn6rsA8tgH%2FScreenshot%202024-03-07%20at%2008.55.10.png?alt=media&#x26;token=489b3ba2-f55e-476c-a759-1afea9fbc902" alt="" width="375"><figcaption><p>Cada botão clicado aciona um bloco diferente.</p></figcaption></figure>

Bom, seu usuário agora pode clicar em um botão e receber uma resposta correspondente. Vamos garantir que essa pergunta siga os passos anteriores da conversa.

#### Desenhar conexões Go-to

1. Desenhe uma conexão Go-to entre **Yes to discount** e **Verificar tipo de usuário** mantendo o mouse pressionado a partir do nó inferior do seu **Yes to discount** bloco.

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2Fa8HpF2at4dpoBsqm48fd%2FScreenshot%202024-03-07%20at%2009.00.15.png?alt=media&#x26;token=ac13e7e7-5704-4e52-804b-053b78d8b073" alt=""><figcaption><p>Desenhe conexões Go-to a partir do seu canvas.</p></figcaption></figure>

{% hint style="success" %}
Um [conexão Ir-para](https://docs.chatlayer.ai/bot-answers/go-to-connections) entre o bloco A e o bloco B significa que o bloco B acontecerá logo após o bloco A na conversa. Conexões Go-to são representadas como setas simples no seu canvas.
{% endhint %}

2. Teste seu bot. Se tudo funcionar bem, sua conversa deve ficar assim:

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FCO9umYNolxRVI9xySCig%2FScreenshot%202024-03-07%20at%2009.11.10.png?alt=media&#x26;token=95799b0e-a386-430b-b0fa-09a555b87195" alt="" width="280"><figcaption><p>Teste o fluxo dos seus botões.</p></figcaption></figure>

Você adicionou botões ao seu bot com sucesso para responder perguntas fechadas. Agora, vamos aprender como fazer perguntas mais abertas.

## Etapa 7: Usar blocos Collect input

Lembre-se, nosso projeto Bee bot é um bot de geração de leads. Chegamos à parte do fluxo do bot em que você coletará os dados das pessoas para uso futuro.

No Chatlayer, você pode coletar respostas abertas durante a conversa usando blocos Collect input.

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2F44eDozRzl78TYTckpkYy%2FScreenshot%202024-02-06%20at%2014.17.35.png?alt=media&#x26;token=6606c68b-42f4-4008-a946-23ae4b97ef50" alt="" width="134"><figcaption><p>O bloco Collect input.</p></figcaption></figure>

{% hint style="success" %}
[Coletar entrada](https://docs.chatlayer.ai/bot-answers/dialog-state/user-input-bot-dialog) blocos são úteis para obter entrada do seu usuário, verificar e salvar como uma variável que você pode reutilizar mais tarde.
{% endhint %}

### Adicionar um bloco Collect input

1. No seu canvas, arraste e solte um **Coletar entrada** bloco.

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FcGm0vIQznhKe1Wk84fHM%2FScreenshot%202024-03-07%20at%2009.39.20.png?alt=media&#x26;token=33e76e02-4abf-47c0-8527-a1d30df74534" alt=""><figcaption><p>Adicione um bloco Collect input ao seu canvas.</p></figcaption></figure>

2. O bloco abre no lado direito.
3. Sob seu **Configurações**, altere seu nome para *Perguntar nome*.

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FvMAyXbCUMMTlpvJOF1Qv%2FScreenshot%202024-03-07%20at%2009.39.56.png?alt=media&#x26;token=5d35646f-4abb-492c-9def-b4d08492c643" alt="" width="330"><figcaption><p>Altere o nome de um bloco nas suas Configurações.</p></figcaption></figure>

4. Volte à configuração do bloco e adicione um **Passo Text**.
5. Preencha-o com a seguinte mensagem: *Qual é o seu nome?*
6. Em **Verifique se a resposta corresponde**, escolha **qualquer**.
7. Em **Variável de destino**, crie uma nova variável que você chamará `userName`.

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FDv7nbiAgV9DrWZN75jii%2FScreenshot%202024-03-07%20at%2009.40.56.png?alt=media&#x26;token=146c61ba-031f-4034-a1ff-9d238b945e22" alt="" width="323"><figcaption><p>Verifique se a resposta de um Collect input corresponde a uma variável.</p></figcaption></figure>

8. Em **Ir para**, crie o próximo bloco que será um **Coletar entrada** bloco chamado *Perguntar email*.

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FjgD7C49Iw0wl8HWFIK27%2FScreenshot%202024-02-06%20at%2014.30.41.png?alt=media&#x26;token=75ada538-8fa5-49e5-93f6-6101cdfe6ee8" alt="" width="375"><figcaption><p>Criar um Collect input a partir de um Go to.</p></figcaption></figure>

9. **Salvar** suas alterações.
10. Desenhe uma conexão Go-to entre **Welcome new user** e **Perguntar nome**.
11. Desenhe uma conexão Go-to entre **Welcome returning user** e **Perguntar nome**.

Neste estágio, seu canvas deve ficar assim:

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FD4t9niqbE526dABKI1Ns%2FScreenshot%202024-03-07%20at%2009.45.44.png?alt=media&#x26;token=1051ea3d-aed3-4f1f-b609-d8a0cc991f02" alt=""><figcaption><p>Como seu canvas deve estar neste estágio.</p></figcaption></figure>

## Etapa 8: Reutilizar uma variável na conversa

Para que o usuário se sinta ouvido, gostaríamos de reutilizar o nome que acabamos de coletar no bloco anterior. Para isso, reutilizaremos a variável {userName}.

{% hint style="success" %}
[página de Variáveis](https://docs.chatlayer.ai/bot-answers/settings/secure-variables-gdpr) são usados para armazenar qualquer informação que o bot saiba sobre um usuário. Eles podem ser reutilizados dentro do texto usando chaves {}. Saiba mais sobre variáveis [aqui](https://docs.chatlayer.ai/bot-answers/settings/secure-variables-gdpr).
{% endhint %}

Para reutilizar uma variável dentro do texto:

1. Abra seu **Perguntar email** bloco.
2. Altere seu conteúdo para que pergunte *Ótimo {userName}, e seu e-mail?*
3. Em **Verifique se a resposta corresponde**, selecione **@sys.email.**

{% hint style="info" %}
O Chatlayer oferece [pré-definidas](https://docs.chatlayer.ai/bot-answers/dialog-state/user-input-bot-dialog#system-entities-input-type) entidades para reconhecer e-mails, números de telefone ou URLs. Elas fornecem uma forma que economiza tempo para construir seus blocos Collect input!
{% endhint %}

4. Em Variável de destino, crie {userEmail}.

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FEgG9MBpDfc9SYq9osMnr%2FScreenshot%202024-03-07%20at%2010.00.10.png?alt=media&#x26;token=8df5bf1b-7c3a-4218-900a-907417c8a514" alt="" width="325"><figcaption><p>Salve o e-mail do usuário em uma variável.</p></figcaption></figure>

5. Como um Go-to, crie um bloco placeholder chamado **Próximo bloco**.

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FQSMbLNuLzT76fQWELGZP%2FScreenshot%202024-03-07%20at%2010.00.38.png?alt=media&#x26;token=ddec85d5-9088-4377-a206-e838ded18825" alt="" width="334"><figcaption><p>Crie o próximo bloco a partir do Go to.</p></figcaption></figure>

6. **Salvar** suas alterações.
7. Preencha seu **Próximo bloco** com um texto placeholder como *Este é um bloco seguinte*.
8. **Salvar** suas alterações.

O que você criou deve ficar assim no seu canvas:

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2Fe9L183F6FJj8zHYWLBMC%2FScreenshot%202024-03-07%20at%2010.30.39.png?alt=media&#x26;token=6f33f05b-9a1e-4604-a9f8-31ff9c98ad85" alt=""><figcaption><p>Como seu canvas deve estar neste estágio.</p></figcaption></figure>

O que acontece depois que implementamos algo? Testes, claro!

### Teste seu Collect input

Você pode testar seu bot de qualquer ponto da conversa. Vamos testar apenas o pequeno trecho do fluxo que acabamos de criar e ver que a variável é de fato compreendida no back-end.

#### Testar a partir do meio de um fluxo

Para testar um bot a partir do meio de um fluxo:

1. Clique em **Perguntar nome** bloco.
2. Uma barra de ferramentas se abre. Clique no **Testar** botão.

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FFIjePXa2pZUlOsG1ybzq%2FScreenshot%202024-02-06%20at%2015.51.36.png?alt=media&#x26;token=26256e34-ec1c-449e-be14-52aa9e69be89" alt="" width="374"><figcaption><p>Teste seu bloco a partir do canvas.</p></figcaption></figure>

3. Teste seu trecho de fluxo com os blocos Collect input. Sua conversa deve ficar assim:

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FMq1mLTwZ4i2K0BvNpXBN%2FScreenshot%202024-03-07%20at%2010.08.53.png?alt=media&#x26;token=f45e7b5f-93f2-43d3-a357-d2a878c755a8" alt="" width="280"><figcaption><p>Teste seu fluxo Collect input.</p></figcaption></figure>

#### Verificar a variável na sessão do usuário

A guia Debugger permite verificar os dados da sua sessão e ver por si mesmo que uma variável foi realmente compreendida. Para isso:

1. Abra a janela Test your bot.
2. Clique no ícone Debugger no canto superior direito da tela.

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FGqVX6i44hN04ghyEzSVc%2FScreenshot%202024-03-07%20at%2010.13.40.png?alt=media&#x26;token=8a2b4154-2d44-494d-bc16-286f735b32b0" alt=""><figcaption><p>Abra o Debugger a partir da sua janela de Teste.</p></figcaption></figure>

3. Leia para baixo os **Dados da sessão** e veja que {userName} e {userEmail} realmente existem e estão preenchidos com os valores corretos.

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FsY82XVU9KuwEVmDBpTBB%2FScreenshot%202024-03-07%20at%2010.15.34.png?alt=media&#x26;token=d38bc1d7-b327-47a9-b445-25ad6a7d9216" alt=""><figcaption><p>Verifique suas variáveis no Debugger.</p></figcaption></figure>

{% hint style="success" %}
O [Depurador](https://docs.chatlayer.ai/tips-and-best-practices/solving-bot-issues#debugger-tab) é útil para detectar de onde vem um problema se algo deu errado com o comportamento do seu bot.
{% endhint %}

Viva! Você coletou uma resposta e a usou dentro da sua conversa, exatamente como humanos fazem.

## Recapitulação da Lição 3

Nesta lição, você aprendeu a:

* [ ] Adicione botões ao seu chatbot.
* [ ] Direcione a conversa com base em um clique de botão.
* [ ] Obtenha entrada do usuário usando blocos Collect input e armazene-a como uma variável.
* [ ] Reutilize variáveis dentro da conversa.
* [ ] Desenhe conexões Go-to a partir do seu canvas.
* [ ] Altere o nome de um bloco a partir do seu canvas.
* [ ] Teste seu bot a partir de um determinado bloco na conversa.
* [ ] Use o Debugger para verificar se uma variável está funcionando.

## O que vem a seguir

Na próxima lição, exploraremos como usar variáveis em qualquer ponto da conversa para direcioná-la com base em certas condições.

{% content-ref url="4.-steer-the-conversation-with-conditions" %}
[4.-steer-the-conversation-with-conditions](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/comece-rapidamente/leadzy-tutorial/4.-steer-the-conversation-with-conditions)
{% endcontent-ref %}

## 💬 Feedback

{% hint style="warning" %}
Seu feedback sobre o tutorial significa muito para nós! Por favor, conte-nos o que você acha através de [este formulário curto.](https://forms.office.com/Pages/ResponsePage.aspx?id=ropROyGJe0qEl2GddWziDlEYn6XpsIRDjnCtdRk8L21UMFZMMlAzN0tHOTI4UjMxVTgzTVAwTE5aOCQlQCN0PWcu)
{% endhint %}
