WhatsApp Flows: formulários nativos dentro da conversa

WhatsApp Flows são formulários e telas interativas que abrem dentro da própria conversa do WhatsApp, sem redirecionar para o navegador. São definidos por um documento chamado Flow JSON, publicado na sua WABA, e podem ser estáticos ou buscar dados em tempo real através de um endpoint.

Atualizado em


Coletar dados por conversa é lento. Você pergunta o nome, o cliente responde. Pergunta o e-mail, ele responde três horas depois. Pergunta o melhor horário, ele manda um áudio. No fim, alguém precisa ler tudo e transcrever para o sistema.

A alternativa óbvia — mandar um link de formulário — troca um problema por outro: o cliente sai do WhatsApp, a página demora a carregar, e boa parte simplesmente não volta.

Os WhatsApp Flows existem para resolver isso sem sair da conversa.

O que é um WhatsApp Flow

É um conjunto de telas interativas que abrem dentro do próprio WhatsApp. Campos de texto, listas de escolha, seletor de data, upload de arquivo — tudo renderizado nativamente pelo aplicativo, sem navegador, sem redirecionamento.

Para o cliente, é uma tela do WhatsApp. Para você, é dado estruturado chegando no formato certo.

A Meta lançou o recurso em setembro de 2023 e vem ampliando os tipos de componente desde então.

Como um Flow é definido

Todo Flow é descrito por um documento chamado Flow JSON. Ele declara:

  • As telas (screens) e a ordem entre elas
  • Os componentes de cada tela — TextInput, RadioButtonsGroup, DatePicker, PhotoPicker e outros
  • As validações de cada campo — obrigatório, tamanho máximo, formato, intervalo de datas
  • O modelo de navegação (routing_model), que descreve quais telas levam a quais

Esse documento é publicado na sua WABA e passa a ficar disponível para envio.

O contrato da Meta é rígido de um jeito específico: o JSON pode estar sintaticamente perfeito e ainda assim ser recusado. Número precisa ser número e não string. RichText só pode ocupar a tela sozinho. Cada tela aceita no máximo um seletor de foto ou de documento. O carrossel aceita no máximo três imagens. Tela inalcançável faz a publicação falhar.

É por isso que escrever Flow JSON à mão é desagradável mesmo para quem programa — e é o argumento central para usar um editor visual, que só gera combinações que a Meta aceita.

Estático ou dinâmico

Existem dois modos, e a escolha entre eles é a decisão de arquitetura mais importante do recurso.

Estático (flow_action: navigate) — todo o conteúdo já está no Flow JSON publicado. As telas não mudam entre um envio e outro. Publique e esqueça.

Dinâmico (flow_action: data_exchange) — a cada transição de tela, o WhatsApp chama um endpoint seu, que responde com o conteúdo da tela seguinte. O tráfego é criptografado com um par de chaves RSA que você registra na Meta, mais uma chave AES por sessão.

EstáticoDinâmico
Conteúdo das telasFixo na publicaçãoMontado a cada envio
Precisa de servidorNãoSim, sempre disponível
Bom paraCadastro, pesquisa, qualificaçãoAgenda, estoque, faturas
Custo de operaçãoPublicar e esquecerServiço em produção para monitorar

A regra prática: use dinâmico só quando as opções realmente dependem do momento. Um formulário de qualificação de lead não precisa disso. Um agendamento que mostra horários livres, precisa. Detalhes em data_exchange.

Como a resposta volta para você

Ao enviar um Flow, você inclui um flow_token — um identificador que você gera. O WhatsApp trata esse valor como opaco: não interpreta, apenas devolve.

Quando o cliente conclui o formulário, chega um webhook do tipo nfm_reply com as respostas e o token original. É ele que permite saber a qual disparo aquele formulário pertence.

Por isso o token precisa ser único por envio, não por contato. Se o mesmo contato tem dois formulários em aberto e ambos usam o mesmo token, a resposta cai na sessão errada.

Esse mecanismo é o que torna possível pausar uma automação, esperar o preenchimento e retomar exatamente de onde parou — que é o assunto da receita Enviar um formulário no WhatsApp e continuar com a resposta.

O que dá para colocar numa tela

Os componentes disponíveis cobrem a maior parte dos casos de coleta:

  • Texto: campo curto, área de texto longo
  • Escolha: botões de opção, caixas de seleção, lista suspensa, seletor de chips
  • Data: seletor de data e calendário
  • Arquivo: seletor de foto e seletor de documento
  • Consentimento: caixa de aceite (opt-in)
  • Conteúdo: título, subtítulo, texto, legenda, imagem, carrossel, link

As validações acompanham: campo obrigatório, quantidade mínima e máxima de caracteres, expressão de formato, intervalo de datas, número mínimo e máximo de itens selecionados, texto de ajuda.

Onde os Flows fazem diferença

Os casos em que o ganho é mais claro:

Agendamento — data, horário e serviço em uma tela só, em vez de seis mensagens trocadas.

Qualificação de lead — orçamento, prazo e necessidade em campos tipados, prontos para decidir o roteamento sem ninguém ler.

Pesquisa de satisfação — nota e comentário logo após o atendimento, dentro da mesma conversa.

Cadastro e documentos — dados pessoais com validação de formato, e upload de documento sem pedir para o cliente mandar foto solta no chat.

Por onde começar

  1. Comece estático. A maioria dos casos não precisa de endpoint, e adicionar um depois é mais fácil que manter um que não era necessário.
  2. Faça uma tela, se possível. Cada tela adicional é uma chance de abandono.
  3. Só marque como obrigatório o que você realmente usa depois.
  4. Trate a saída de tempo esgotado desde o primeiro fluxo: quem abre e não termina é justamente o lead que vale a pena recuperar.

Perguntas frequentes

Qual a diferença entre um WhatsApp Flow e um link para formulário?
O Flow abre em telas nativas dentro do WhatsApp, sem sair do aplicativo. Um link leva o usuário para o navegador, onde a página precisa carregar e o contexto da conversa se perde — o que costuma custar conclusões.
Preciso programar para criar um WhatsApp Flow?
Não, se a plataforma oferecer um editor visual. O formato que a Meta recebe é o Flow JSON, mas um editor monta esse documento a partir de campos arrastados e valida as regras de contrato antes de publicar.

Fontes

Leia também