x-api-key) cujo número seja Meta (API Oficial). A WABA é DERIVADA desse número — não existe parâmetro para nomear uma, de propósito.
flows:read é um slug próprio e não é templates:read. A listagem de templates devolve texto que o seu workspace escreveu; a resposta de um Flow devolve o que um cliente digitou num formulário — um nome, um telefone, às vezes um documento. As duas coisas são gateadas separadamente de propósito.Listar Flows
id é o id local e é o único id que você manda de volta para nós. metaFlowId é o da Meta e é somente leitura — vem null enquanto o Flow existe aqui e ainda não chegou à Meta.Criar ou clonar
201 com o Flow novo em DRAFT. Omita cloneFromFlowId para começar do zero.
Renomear e recategorizar
name e categories. Nunca publica e nunca deprecia — essas têm endpoint próprio, para um engano num formulário não alcançar uma operação irreversível.
Subir o Flow JSON
200 significa que o documento compilou, e aí validationErrors vem sempre vazio:
422 FLOW_JSON_INVALID, com a lista dela anexada:
Publicar
Depreciar
supersededByFlowId é opcional — mas, se você mandar, tem de nomear um Flow real seu: string vazia é recusada em vez de ignorada em silêncio, porque cadeia de versões rompida é invisível depois.
Apagar
DRAFT pode ser apagado. Qualquer outro estado devolve 409.
Ler as respostas dos formulários
Chave do endpoint data_exchange
Ainda não exposta na API pública. A gestão da chave do endpoint
data_exchange — gerar o par, registrar a metade pública na Meta e conferir se a Meta ainda tem a nossa — está construída, mas ainda não tem rota REST. Esta seção lista os endpoints no dia em que existirem.O que o recurso faz, e o desenho por trás dele, está em Flows. Se você precisar antes de estar exposto, fale com o suporte.Erros
Toda falha desta superfície responde o mesmo envelope — existe exatamente uma forma para ler, e uma grafia:FLOW_JSON_INVALID acrescenta um array validationErrors; FLOW_UNKNOWN_FIELDS acrescenta as chaves recusadas. Nunca assuma que o conjunto de códigos é fechado — trate os que você conhece e caia no code para o resto.
Os dois últimos não têm prefixo
FLOW_ — são compartilhados por toda a API pública e mantêm a grafia global. Um cliente que filtre por code.startsWith("FLOW_") perderia os dois.