Skip to main content
Guia para disparar um WhatsApp Flow de forma proativa via template, pré-preenchendo o flow com os seus dados, e receber a resposta do contato de volta. Os exemplos abaixo usam um flow de agendamento: o contato recebe os horários disponíveis, escolhe um e confirma. O mesmo contrato vale para qualquer flow (pesquisas, cadastros, confirmações etc.).

Visão geral

  1. Você chama Send Template com um template que tem botão de Flow, passando os dados do flow em flowData e os seus identificadores em metadata.
  2. O contato recebe a mensagem, abre o flow, preenche e envia.
  3. A resposta chega por webhook (evento FLOW_RESPONSE), com os campos preenchidos e o mesmo metadata enviado.
São dois conjuntos de dados no mesmo envio: as variáveis do template vão em params (preenchem {{1}} no texto); os dados do flow vão em flowData (alimentam as telas do flow).

Montando o flowData

O flowData não tem campos fixos: ele segue a estrutura que o seu flow espera. Cada placeholder ${data.campo} do flow é substituído pelo valor de mesmo nome enviado em flowData. Para o flow de agendamento do exemplo:
  • flowData é o dataset completo, enviado de uma vez. Os dados entram pela tela de entrada e, em flows multi-tela, são repassados internamente para as telas seguintes — você não divide o flowData por tela.
  • Os nomes e tipos precisam bater exatamente com o que o flow declara; caso contrário, a Meta rejeita o envio.
  • O __example__ do flow serve só para o preview do Builder, não para produção.

Exemplo de envio

Resposta (webhook FLOW_RESPONSE)

Quando o contato envia o flow, a resposta chega no webhook cadastrado assinando o evento Resposta de Flow (FLOW_RESPONSE):

Lendo a resposta

  • fields → os campos enviados no submit do flow, com os nomes definidos no seu flow. Em seleções (Dropdown, RadioButtonsGroup), o valor é o id da opção escolhida (ex.: horario = 2026-11-03T14:00).
  • metadata → o mesmo metadata que você enviou no disparo, herdado automaticamente. Use para correlacionar a resposta com o registro no seu sistema sem depender do telefone.
  • flowToken → identificador interno da Manybot (formato ${flowId}:${messageId}). Você não precisa usá-lo.
Campos opcionais não preenchidos pelo contato chegam vazios (""). Para correlacionar, use o metadata ou um identificador próprio repassado no flowData e devolvido em fields (como o agendamentoId do exemplo).