O que tem num arquivo Flow JSON
O Flow JSON tem duas propriedades obrigatórias: version e screens. Cada tela tem um id, um title opcional exibido na barra superior e um layout do tipo SingleColumnLayout cujos children são componentes: textos, campos, listas de opções, seletores de data, opt-ins e um único botão Footer.
A navegação fica nas ações. Um Footer com navigate abre a próxima tela; na última, marcada como terminal, um Footer com complete fecha o Flow e envia o payload para a empresa junto com o flow token. A partir do Flow JSON 4.0, qualquer tela pode ler campos de uma tela anterior com ${screen.SCREEN_ID.form.field}; por isso os modelos deixam os payloads de navigate vazios e reúnem todas as respostas no payload final de complete.
- version: a versão do Flow JSON, “7.3” em todos os modelos.
- screens: a lista ordenada de telas; a primeira sem rota de entrada é a tela inicial.
- routing_model e data_api_version: só para Flows que chamam o seu endpoint de dados.
- terminal e success: marcam a última tela e se terminar nela conta como sucesso.
Flows com ou sem endpoint de dados
Os doze modelos funcionam sem endpoint. Não precisam de servidor: as opções estão no JSON, a Meta gera o modelo de roteamento e você recebe as respostas no webhook quando o cliente conclui o Flow. A Meta recomenda Flows sem endpoint sempre que não forem necessários dados em tempo real, porque abrem mais rápido e são mais rápidos de criar.
Adicione um endpoint quando a tela depender de dados ao vivo: horários disponíveis, preços que mudam, estoque ou uma verificação na conta do cliente. Aí as telas usam data_exchange, o Flow precisa de data_api_version e de um routing_model, e o seu endpoint precisa descriptografar cada requisição e responder dentro do tempo limite da Meta. Essa é a parte que desenvolvemos e hospedamos para os clientes.
Limites de caracteres e regras dos componentes
A maioria dos Flows recusados falha em regras pequenas. Os rótulos são curtos: 20 caracteres para campo de texto, área de texto ou lista suspensa, 30 para grupos de opções e caixas de seleção, 40 para o seletor de data e 35 para o botão do Footer. Títulos de opção aceitam 30 caracteres e descrições 300. Um título de tela aceita 80 caracteres e o texto de corpo 4.096.
Por tela, você pode usar até 50 componentes, um Footer, dois links incorporados, três imagens e cinco opt-ins. Os ids de tela só aceitam letras e sublinhados, e SUCCESS é reservado. Rótulos em árabe contam caracteres, não bytes. O validador verifica tudo isso e aponta a tela que precisa de correção.
Flows em árabe, da direita para a esquerda, para clientes do Golfo
Cada modelo tem uma versão nativa em árabe com as mesmas telas e os mesmos nomes de campo, então o código do seu webhook atende os dois idiomas sem mudanças. O WhatsApp exibe os Flows em árabe da direita para a esquerda no celular do cliente, e a pré-visualização faz o mesmo.
A biblioteca traz casos de uso relevantes no Golfo: cadastro em ofertas do Ramadã e do Eid com envio após o iftar, reserva de mesa em restaurante, pedidos de visita a imóveis e um checklist de documentos KYC que pede ao cliente para não enviar fotos de documentos pelo chat.
Como enviar um Flow aos clientes
Depois de publicar o Flow, envie-o como mensagem interativa do tipo flow com o Flow ID, um flow token gerado por você, um texto curto de botão e a primeira tela. A biblioteca entrega o payload da mensagem para cada modelo. Mensagens interativas só funcionam dentro da janela de atendimento de 24 horas; para falar primeiro com o cliente, vincule o Flow a um modelo de mensagem aprovado com botão de Flow.
Quando o cliente conclui, o WhatsApp mostra um resumo das respostas e você recebe o payload de complete no webhook. Responda com uma mensagem de confirmação que diga os próximos passos e como alterar ou cancelar.
