> For the complete documentation index, see [llms.txt](https://docs.hablla.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hablla.com/fluxos-de-automacoes/todos-os-componentes/whatsapp-components/pergunta-do-whatsapp.md).

# Pergunta do WhatsApp

### Visão Geral

O **Componente de Pergunta do WhatsApp** é um nó de ação focado na coleta de dados, triagem e construção de diálogos estruturados. Sua função principal é enviar uma pergunta diretamente ao cliente e aguardar uma resposta em tempo real. O fluxo de automação entra em estado de espera (*standby*) neste componente até que o usuário responda com um dado válido, permitindo armazenar a resposta informada e ramificar a árvore de automação de acordo com a escolha ou conteúdo digitado.

### Parâmetros de Configuração

A parametrização do componente define a estrutura de exibição da pergunta e as regras de armazenamento de dados:

* **Tipo:** Determina a mecânica de interação da pergunta enviada:
  * `Texto`: Envia uma mensagem de texto simples e aguarda uma resposta digitada manualmente pelo cliente.<br>
  * `Interactive`: Envia formatos nativos de botões ou listas interativas da API do WhatsApp.<br>
* \_*Mensagem (* Campo Obrigatório):\_\* O conteúdo ou enunciado da pergunta que será exibido para o cliente.<br>
* **Possui Variável (Chave de Alternância - Toggle Switch):** Quando ativada, habilita o armazenamento da resposta. Pode operar em modo *Fixed* (variável estática da plataforma) ou *Expression* (expressão dinâmica).<br>
* \_*Variável (* Obrigatório se ativo):\_\* Define o nome do contêiner interno (ex: `response`) que receberá o valor da resposta.<br>
* **Alvo da Resposta:** Permite mapear e salvar o dado recebido diretamente em campos nativos ou personalizados do contato, como `Nome`, `E-mail`, `Endereço`, `NPS`, `CSAT` ou um `custom_field` (campo personalizado).<br>
* **Ignorar se a meta for cumprida (Chave de Alternância - Toggle Switch):** Se o contato já tiver o campo alvo preenchido previamente em seu perfil, o componente pula a pergunta automaticamente e avança para o próximo nó sem incomodar o usuário.<br>
* **Aceitar resposta:** Filtro de validação de dados que estabelece o que é uma resposta válida. Para perguntas do tipo *Texto*, restringe a entrada a formatos como: `Texto`, `Número`, `Número de telefone`, `E-mail`, `Localização` ou `Áudio`. Se o usuário enviar algo fora do formato (ex: mandar uma imagem quando se espera um e-mail), o sistema rejeita e repete a pergunta.<br>

### Construtor Visual

A interface do construtor se adapta e expande dinamicamente de acordo com as propriedades selecionadas no campo *Tipo*:

#### Configuração para o Tipo `Interactive`

Ao alternar o tipo para interativo, o componente exibe o campo **Tipo de Resposta** para definir o layout dos botões:

* **Opção Botões (Quick Replies):** Permite construir botões de clique rápido que aparecem abaixo da mensagem. A interface limita a criação a **no máximo 3 botões**.<br>
* **Opção Lista (List Messages):** Transforma a interação em um menu de opções limpo. Ao selecionar essa modalidade, o formulário visual expande e exige os seguintes campos obrigatórios:
  * `Botão para abrir lista *`: O texto que aparecerá no botão principal de clique (ex: "Selecionar").<br>
  * `Título da Seção *`: O cabeçalho da janela que agrupa os itens.<br>
  * `Lista`: Bloco repetidor onde o administrador usa o botão **+ Add item** para incluir as opções nominais de escolha (*Botão*) e textos de apoio (*Descrição*). A interface limita a criação a **no máximo 10 itens de lista**.<br>
* **Múltiplas Saídas:** Chave de alternância que, se ativada, gera uma porta física de saída no editor gráfico para cada botão ou item de lista criado, permitindo desenhar caminhos totalmente customizados para cada resposta do usuário.<br>

### Operadores Especiais

As propriedades lógicas deste componente lidam com validação de tipos de dados (*data validation*) e gerenciamento de estado de inputs:

* **Validador de Regex e Tipos Nativos:** Quando configurado para aceitar apenas `E-mail` ou `Número de telefone`, o componente roda um script de validação sintática na resposta do cliente. Se a validação falhar, o motor bloqueia o avanço do fluxo e repete a mensagem de pergunta.<br>
* **Mapeamento de Metadados Interactive:** Em perguntas do tipo `Interactive` estruturadas como lista, o campo *Aceitar resposta* altera seu escopo padrão para o modo `Dados Válidos`. O sistema valida se o texto clicado corresponde exatamente a um dos IDs estruturados na lista do construtor, ignorando textos aleatórios digitados pelo usuário durante aquela etapa do menu.<br>

### Exemplos Práticos

A tabela abaixo demonstra cenários clássicos de aplicação deste componente para guiar interações inteligentes via WhatsApp:

| **Tipo Selecionado**     | **Configuração do Construtor**                                                                                                                        | **Alvo da Resposta / Variável**                                                                                         | **Caso de Uso Prático**                                                                                                                  |
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `Texto`                  | <p><strong>Mensagem:</strong> "Qual o seu e-mail?"<br><br><br><br><strong>Aceitar resposta:</strong> <code>E-mail</code></p>                          | <p><strong>Alvo:</strong> <code>E-mail</code><br><br><br><br><strong>Variável:</strong> <code>email\_cliente</code></p> | Capturar e validar o e-mail do cliente. Se ele digitar algo sem `@`, o sistema repete a pergunta até receber um e-mail válido.           |
| `Interactive` *(Botões)* | <p><strong>Mensagem:</strong> "Você já é cliente?"<br><br><br><br><strong>Botões:</strong> \[Sim] , \[Não]</p>                                        | <p><strong>Variável:</strong> <code>ja\_e\_cliente</code><br><br><br><br><strong>Múltiplas Saídas:</strong> Ativado</p> | Criar um menu de triagem inicial rápido com 2 botões, ramificando o fluxo para caminhos diferentes baseados no clique do usuário.        |
| `Interactive` *(Lista)*  | <p><strong>Mensagem:</strong> "Escolha uma opção de serviço"<br><br><br><br><strong>Itens (Máx 10):</strong> \[Suporte], \[Vendas], \[Financeiro]</p> | <p><strong>Alvo:</strong> <code>custom\_field</code><br><br><br><br><strong>Múltiplas Saídas:</strong> Ativado</p>      | Apresentar um menu de opções robusto em formato de lista (Menu de Opções) para direcionar o cliente para os setores corretos da empresa. |


---

# 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, and the optional `goal` query parameter:

```
GET https://docs.hablla.com/fluxos-de-automacoes/todos-os-componentes/whatsapp-components/pergunta-do-whatsapp.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
