Publicar, pré-visualizar e usar com IA
Publica um Flow global na Meta, gera o link de pré-visualização, cria um Flow a partir de uma descrição e testa qual Flow a IA enviaria.
Um Flow salvo em Flows globais ainda é só um rascunho da plataforma. Estas quatro operações fecham o ciclo: publicar na Meta, ver como fica, pedir um rascunho pronto a partir de uma descrição e testar se a IA de atendimento escolheria o Flow certo para uma mensagem.
Todas exigem root_admin com o privilégio manage_whatsapp_platform.
Publicar na Meta
/api/v1/admin/whatsapp-platform/flows/{id}/publishAdminPublicar o Flow na Meta
Valida o flow_json e faz três chamadas à Meta com as credenciais da plataforma: cria o Flow na conta (só na primeira vez), envia o JSON como arquivo do Flow e publica. Em caso de sucesso grava o meta_flow_id e muda o status para published. Publicar de novo um Flow que já tem meta_flow_id reaproveita o Flow da Meta e envia a nova versão do JSON. Não tem corpo.
Parâmetros de caminho
idintegerobrigatórioA resposta é o objeto Flow completo (veja Flows globais); o flow_json do exemplo foi encurtado.
Pré-visualizar
/api/v1/admin/whatsapp-platform/flows/{id}/previewAdminObter o link de pré-visualização da Meta
Pede à Meta um link para ver o Flow renderizado, sem precisar de login (a Meta o mantém válido por cerca de 30 dias). Só funciona para um Flow que já existe na Meta, isto é, que foi publicado ao menos uma vez.
Parâmetros de caminho
idintegerobrigatórioCampos da resposta
preview_urlstringGerar um Flow a partir de uma descrição
/api/v1/admin/whatsapp-platform/flows/generateAdminGerar um rascunho de Flow com IA
Você descreve em português o que quer ("um formulário de cadastro com nome, CPF e CEP") e a IA responde de dois jeitos: perguntas de esclarecimento, quando o pedido está vago, ou um Flow completo. Nada é salvo: o resultado volta para você revisar e, se aprovar, enviar a criação. Se a primeira tentativa vier com problemas de estrutura, a plataforma tenta uma segunda vez e fica com a que tiver menos problemas.
Corpo da requisição
promptstringobrigatório400.historyarrayCampos da resposta
questionsarrayhistory. null quando já veio um Flow.flow_jsonobjectnull quando vieram perguntas.namestringflow_keystringwhen_to_usestringai_when_to_use.warningsarrayflow_json gerado, com as mesmas regras do POST /flows. null (nenhum problema) significa que ele passaria na criação. Também é null quando vieram perguntas.Testar a escolha de Flow
/api/v1/admin/whatsapp-platform/flows/decideAdminDescobrir (e opcionalmente enviar) o Flow que a IA escolheria
Simula o atendimento: dada uma mensagem de cliente, a IA decide se algum Flow publicado serve e qual. O catálogo considerado é o conjunto de Flows publicados visível para a loja do seu token (globais, com os da loja prevalecendo pela mesma flow_key). Se não há Flow publicado, responde decided: false sem chamar a IA (mas, se a IA não estiver configurada, o erro 500 vem antes).
Sem phone é um teste a seco: só diz qual Flow escolheria. Com phone o Flow é enviado de verdade para esse telefone, pelo WhatsApp da loja.
Corpo da requisição
textstringobrigatório400.phonestringCampos da resposta
flow_keystringdecidedbooleantrue quando algum Flow foi escolhido.sentbooleantrue quando o Flow foi escolhido e um phone foi informado, isto é, o envio foi feito.Exemplo de requisição
Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | Corpo inválido | {"error":"Invalid request body"} |
| 400 | {id} que não é inteiro | {"error":"Invalid id"} |
| 400 | prompt vazio (generate) | {"error":"prompt é obrigatório"} |
| 400 | text vazio (decide) | {"error":"text é obrigatório"} |
| 400 | Publicar: credenciais da plataforma ausentes | {"error":"whatsapp: credenciais da plataforma (token + WABA) não configuradas"} |
| 400 | Pré-visualizar um Flow que nunca foi publicado | {"error":"whatsapp: publique o flow na Meta antes de pré-visualizar"} |
| 400 | Publicar ou pré-visualizar: Flow não encontrado, ou a Meta recusou a chamada | {"error":"whatsapp: publicar flow: ..."} (com a mensagem da Meta, inclusive os campos inválidos do JSON) |
| 422 | Publicar: flow_json inválido pela validação da plataforma | {"error":"Flow JSON inválido","errors":["screens vazio"]} |
| 500 | A IA não está disponível, ou falhou (generate, decide); Flow escolhido ainda sem meta_flow_id (decide com phone) | {"error":"whatsapp: provider de IA não configurado"} |
| 401 / 403 | Sem token / sem ser root_admin com manage_whatsapp_platform | {"error":"insufficient permissions"} |