Documentação / Apps / Chatbot / Pergunta Dinâmica
Apps · Chatbot

Pergunta Dinâmica

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.

Nesta página
  1. Quando usaro que muda em relação à pergunta comum
  2. Configurar o blocomensagem fixa ou dinâmica, e a URL do webhook
  3. Configurações avançadaserros, inatividade, chave de integração e teste
  4. O que o webhook precisa responderestrutura do JSON e parâmetros
  5. Como o formato se adaptabotões, lista ou numérico conforme a quantidade

01 Quando usar

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.

02 Configurar o bloco

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:

Definir como mensagem fixa

Essa chave decide de onde vem o texto da pergunta — as opções sempre vêm do webhook.

  • Ligada — o chatbot envia sempre o texto escrito no campo Mensagem;
  • Desligada — o texto vem no retorno do webhook, junto com as opções.

Mensagem

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.

Webhook — opções dinâmicas

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.

O painel do bloco: a chave de mensagem fixa, o editor de texto com variáveis e o campo do webhook.
O painel do bloco: a chave de mensagem fixa, o editor de texto com variáveis e o campo do webhook.

03 Configurações avançadas

Expandindo o bloco, aparecem os ajustes de comportamento:

ConfiguraçãoPara que serve
Respostas inválidasQuantas 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 contatoGrava a opção escolhida em um campo padrão ou personalizado do cadastro.
Tempo de espera para envioAtraso proposital antes da próxima mensagem, de até 40 segundos, para a conversa não parecer automática demais.
Tempo máximo de inatividadePrazo 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çãoIdentificador do bloco, enviado no webhook. É o que permite ao seu sistema saber qual pergunta do fluxo foi respondida.
Teste de envio de webhookSimula 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.

04 O que o webhook precisa responder

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âmetroObrigatórioO que é
textNãoTexto principal da pergunta. Pode ser omitido quando a chave “Definir como mensagem fixa” está ligada no bloco.
typeSimFormato desejado: BUTTONS, LIST ou NUMBERS.
optionsSimLista com os itens selecionáveis, no máximo 50.
options.textSimO texto de cada opção.
options.descriptionNãoSubtítulo da opção. Só funciona no tipo LIST.
options.urlNãoLink externo da opção. Só funciona no tipo BUTTONS.

05 Como o formato se adapta

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:

FormatoQuantidadeComo aparece
Botões1 a 3Botões clicáveis. Com uma 4ª opção, vira Lista.
Lista1 a 10Menu expansível. Com 11 ou mais, vira Numérico.
Numérico1 a 50Lista 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.

Suporte