Numa pergunta comum, as opções do menu são digitadas na hora de montar o fluxo. Na pergunta dinâmica, elas vêm do seu sistema no instante em que o cliente chega àquele ponto — horários livres, filiais abertas, pedidos em aberto daquele cliente.
A pergunta comum serve quando as opções são sempre as mesmas: um menu de departamentos, um sim ou não. A dinâmica existe para o caso oposto — quando as alternativas mudam a cada atendimento e só o seu sistema sabe quais são no momento.
Exemplos: os horários ainda livres na agenda, as unidades abertas naquele instante, os boletos em aberto daquele CPF, os produtos em estoque.
Pré-requisito: um endereço no seu sistema capaz de receber uma requisição POST e devolver as opções em JSON. Sem isso, o bloco não tem de onde tirar o menu.
No editor do chatbot, clique no + para adicionar um bloco e escolha Enviar pergunta dinâmica, no grupo de mensagens. Os campos principais são três:
Essa chave decide de onde vem o texto da pergunta — as opções sempre vêm do webhook.
O texto base da pergunta, usado quando a chave acima está ligada. Por exemplo: “Escolha um dos horários disponíveis abaixo:”.
O campo é um editor com formatação — negrito, itálico, sublinhado, tachado e emoji — e um botão Inserir variável, que coloca dados do contato no texto. O limite é de 3.500 caracteres. Abaixo dele há uma mensagem de rodapé opcional, de até 30 caracteres.
A URL do seu sistema. O próprio campo indica o método — POST — e a consulta acontece toda vez que um contato chega a esse ponto do fluxo.
Expandindo o bloco, aparecem os ajustes de comportamento:
| Configuração | Para que serve |
|---|---|
| Respostas inválidas | Quantas vezes o bot tenta de novo quando o cliente responde algo fora das opções. Atingido o limite, dá para transferir para um atendente — com aviso de fora de horário, se for o caso —, encerrar o atendimento ou seguir ignorando. |
| Salvar resposta no contato | Grava a opção escolhida em um campo padrão ou personalizado do cadastro. |
| Tempo de espera para envio | Atraso proposital antes da próxima mensagem, de até 40 segundos, para a conversa não parecer automática demais. |
| Tempo máximo de inatividade | Prazo para o cliente responder, de até 72 horas. Esgotado, o bot encerra a automação ou segue para um fluxo de escape. |
| Chave de integração | Identificador do bloco, enviado no webhook. É o que permite ao seu sistema saber qual pergunta do fluxo foi respondida. |
| Teste de envio de webhook | Simula a requisição pelo próprio editor e mostra o status HTTP e o corpo da resposta. |
Use o teste antes de publicar. Um webhook que responde fora do formato esperado quebra a pergunta em produção, com o cliente esperando do outro lado. O teste mostra o status e o corpo da resposta ali mesmo, sem precisar rodar o fluxo inteiro.
A chave de integração vale a pena mesmo em fluxos simples: com ela, o mesmo endereço atende vários blocos e o seu sistema distingue um do outro pela chave, em vez de você manter uma URL por pergunta.
A resposta tem que ser um JSON com o texto, o tipo de exibição e a lista de opções:
{
"text": "Como podemos ajudar hoje?",
"type": "BUTTONS",
"options": [
{
"text": "Área de Cliente",
"url": "https://empresa.com/cliente"
},
{
"text": "Falar com Suporte"
}
]
}| Parâmetro | Obrigatório | O que é |
|---|---|---|
| text | Não | Texto principal da pergunta. Pode ser omitido quando a chave “Definir como mensagem fixa” está ligada no bloco. |
| type | Sim | Formato desejado: BUTTONS, LIST ou NUMBERS. |
| options | Sim | Lista com os itens selecionáveis, no máximo 50. |
| options.text | Sim | O texto de cada opção. |
| options.description | Não | Subtítulo da opção. Só funciona no tipo LIST. |
| options.url | Não | Link externo da opção. Só funciona no tipo BUTTONS. |
O type é uma preferência, não uma garantia. A plataforma converte o formato conforme a quantidade de opções que o webhook devolver, para a mensagem nunca quebrar:
| Formato | Quantidade | Como aparece |
|---|---|---|
| Botões | 1 a 3 | Botões clicáveis. Com uma 4ª opção, vira Lista. |
| Lista | 1 a 10 | Menu expansível. Com 11 ou mais, vira Numérico. |
| Numérico | 1 a 50 | Lista numerada em texto: o cliente digita o número da opção. |
Canal não oficial não tem botões. Em conexões por QR Code, o WhatsApp não suporta esse formato. Mandando BUTTONS nesses canais, a plataforma converte sozinha para lista ou numérico conforme a quantidade — a mensagem chega, mas não com a aparência que você desenhou. As demais diferenças desse tipo de canal estão em Restrições em Conexões Não Oficiais.
Na prática, isso significa que o número de opções retornadas define a experiência. Se o menu precisa ser de botões, o seu sistema tem que garantir no máximo três itens — filtrando antes de responder, e não deixando a conversão acontecer por acidente.