data_exchange, e a diferença para um formulário comum é que agora o formulário responde: ele mostra os horários que estão realmente livres, avisa que o código digitado não existe, ou calcula o preço do que a pessoa acabou de escolher.
Esta página é para quem configura o Flow e quer entender o que está acontecendo. O contrato requisição por requisição, para quem vai programar, está em Conecte a sua API a um Flow.
Um formulário simples coleta; um Flow ao vivo conversa
A maioria dos Flows é do tipo simples e não precisa de nada disto. Use dados ao vivo só quando uma tela tiver que mostrar algo que você não tem como saber de antemão.
Quando vale a configuração extra
- Mostrar o que está mesmo livre. A pessoa escolhe um dia e a tela seguinte lista os horários ainda abertos naquele instante — não uma lista fixa que envelhece.
- Conferir antes de aceitar. Número de pedido, matrícula, cupom: a pessoa digita e o formulário já diz se vale.
- Calcular conforme ela escolhe. Tamanho, quantidade, frete: o preço da tela seguinte é a resposta do seu sistema, não uma tabela que você mantém em dois lugares.
- Levar pessoas diferentes por caminhos diferentes. Quem já é cliente vê uma tela, quem é novo vê outra. Quem nomeia a próxima tela é o seu sistema.
O que é preciso ter, na ordem
Cada passo abaixo só funciona se o anterior estiver feito. Pular um deixa você com um Flow que parece configurado, não levanta erro em lugar nenhum e simplesmente nunca é chamado.1
Um número Meta
Flows só existem em números oficiais da Meta (Cloud API). Um número não oficial não consegue enviá-los. Veja Oficial vs Não Oficial.
2
Uma chave de endpoint nesse número
Abra o Flow no painel e procure a caixa Chave deste NÚMERO. Clique em Gerar par novo, ou em Importar chave existente se você já usa uma.A chave é do número, não deste Flow: todos os Flows com dados ao vivo desse número usam a mesma. Gerar uma nova substitui a que a Meta tem para aquele número — então, se outro formulário do mesmo número já está funcionando, gere com cuidado. Importar não muda nada na Meta, e é a opção segura nesse caso.
3
Um sistema seu que responda
Qualquer endereço seu capaz de receber uma mensagem e responder em poucos segundos — o seu backend, uma ferramenta de automação, o que você já tiver no ar. Precisa ser acessível por
https://, porque o que mandamos para lá é o que o cliente acabou de digitar.4
Gravar o destino no Flow
Na caixa Destino deste Flow, cole esse endereço e clique em Gravar destino. Este é por Flow: outro formulário do mesmo número pode apontar para um lugar completamente diferente.Se o campo estiver cinza, é porque o número ainda não tem chave — volte ao passo 2. Ele é bloqueado de propósito: um destino gravado num número sem chave nunca seria chamado.
5
Registrar o Flow na Meta
A Meta só chama um endereço que ela tem registrado no Flow, e gravar o destino não registra nada — é essa separação que impede que a correção de um erro de digitação roube um Flow que o sistema de outra pessoa está respondendo hoje.No mesmo painel, em Apontar a Meta para cá, clique em Registar na Meta. Depois de feito — ou se a Meta já apontava para nós — o painel diz “A Meta já aponta para cá. Nada a fazer.”, e o botão passa a Registar de novo. Clicar uma segunda vez não faz mal: um Flow que já está registrado conosco não muda nada.O botão fica cinza enquanto o número não tiver chave, pelo mesmo motivo do campo de destino.
6
Publicar o Flow
Só agora. A Meta se recusa a publicar um Flow com dados ao vivo que não tenha endereço registrado — ela responde “Publishing without specifying ‘endpoint_uri’ is forbidden”. Publicar é irreversível: um Flow publicado nunca mais pode ser editado, só clonado numa versão nova.
Times que automatizam a configuração podem fazer o mesmo ato pela API, em vez do painel — veja a Referência da API de Flows. O caminho normal é o painel.
O que o Pilot Status faz por você
A Meta não manda as respostas do cliente em texto puro para o seu sistema. Ela criptografa cada chamada, e espera a resposta criptografada de volta de um jeito bem específico — é essa parte que normalmente impede os times de colocar um formulário interativo no ar. O endereço que a Meta chama é o Pilot Status. A cada tela que o cliente preenche:- A Meta manda a chamada criptografada para nós.
- A gente descriptografa.
- A gente repassa o conteúdo puro para o seu endereço, com um cabeçalho de assinatura —
x-pilot-status-signature— para o seu sistema conseguir provar que a mensagem veio de nós e não de alguém que adivinhou a sua URL. - A gente criptografa a sua resposta e devolve para a Meta, que desenha a tela que você nomeou.
O segredo de assinatura aparece exatamente uma vez, na gravação que o cria, com um botão para copiar. Copie ali — ele fica guardado criptografado e não pode ser lido de novo, e o painel não tem como mostrá-lo outra vez. Substituir um segredo perdido ou vazado é uma chamada de API (
rotateSecret), e depois o seu sistema precisa ser atualizado com o valor novo.O que o seu sistema tem de devolver
Uma resposta pequena, sempre: o nome da próxima tela e as informações que essa tela precisa.SUCCESS.
O tempo é a restrição de verdade
A Meta segura a chamada aberta enquanto uma pessoa olha para um indicador de carregamento no celular, e ela não tenta de novo. Uma resposta lenta não é uma tela atrasada; é uma tela falhada.Quando alguma coisa está errada
O cliente nunca vê os seus servidores. Seja qual for a falha — destino não gravado, o seu sistema fora do ar, demora demais, uma resposta que não conseguimos ler — ele recebe um erro genérico, com opção de tentar de novo, na mesma tela em que já está, e nada do que ele digitou se perde. A única exceção é uma falha num momento em que a Meta não nomeou tela nenhuma — a abertura do formulário, ou a pessoa voltando uma tela — em que não existe tela para colocar o erro e a Meta mostra a dela.Conferir o que realmente aconteceu
A tela do Flow no painel lista as trocas recentes: qual tela, se deu certo, o que o seu sistema respondeu e quanto tempo levou. O conteúdo das trocas que falharam é guardado para você ver o que aconteceu; o das que deram certo guarda só tempo e formato. Todo esse registro expira em 24 horas — é uma ajuda para diagnosticar, não um arquivo.Esse é o registro da ligação, não o das respostas. O que a pessoa digitou fica guardado, e guardado de verdade: vai junto com a submissão, no
submitted, tela a tela, cada entrada com o momento em que foi preenchida, e permanece por 31 dias — um dia a mais que a própria submissão, para que nenhuma submissão seja servida depois de as trocas que a alimentaram já terem expirado.Só entram nessa lista as telas que alguém de fato respondeu. Abrir o formulário e voltar uma tela não são respostas e não são guardadas — é por isso que ela é mais curta que as trocas acima. Isso é o desenho, não perda.Relacionados
- Flows — o que é um Flow e o seu ciclo de vida
- Conecte a sua API a um Flow — o contrato técnico para quem vai programar o sistema que responde
- Respostas de Flow — as respostas que as pessoas enviam
- Referência da API de Flows