Duplicar e validar
Duplica um fluxo inteiro (blocos e conexões) e confere se o desenho do fluxo está consistente.
Duas ferramentas de apoio para quem monta fluxos. Exigem o módulo whatsapp-commerce ativo e o privilégio manage_settings.
Duplicar
/api/v1/admin/flows/{id}/cloneAdminCopia um fluxo com blocos e conexões
Parâmetros de caminho
iduuidobrigatórioId do fluxo.
Corpo da requisição
new_namestringNome da cópia. Vazio ou corpo ausente:
<nome original> (copy).Exemplo de requisição
bash
curl -X POST "$BASE_URL/api/v1/admin/flows/4b8801c7-d1cf-4adc-807f-1aeb6f9687db/clone" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"new_name": "Consulta de pedido v2"}'Resposta
201Cópia criada
json
{
"id": "54d55bd8-bd93-4ed9-9266-b9fae4aad846",
"name": "Consulta de pedido v2",
"description": "Cumprimenta e pede o número do pedido",
"status": "R",
"channel": "whatsapp",
"metadata": {},
"trigger_type": "manual",
"trigger_keywords": [
"pedido",
"order"
],
"trigger_match_mode": "starts_with",
"trigger_case_sensitive": false,
"trigger_priority": 5,
"created_at": "2026-10-11T21:05:32.345126Z",
"updated_at": "2026-10-11T21:05:32.345126Z"
}Campos da resposta
campos-O novo fluxo, no formato de Consultar um fluxo.
Erros
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário administrador. | {"error":"admin access required"} |
| 403 | O usuário é administrador, mas não tem o privilégio exigido. | {"error":"insufficient privileges","privilege_required_any":["manage_settings"]} |
| 403 | O módulo whatsapp-commerce não está ativo nesta loja. | {"error":"module_disabled","module":"whatsapp-commerce"} |
| 400 | Fluxo de origem não encontrado ou falha ao copiar. A mensagem vem em error. | {"error":"whatsapp/flows: source flow not found"} |
Validar
/api/v1/admin/flows/{id}/validateAdminConfere a estrutura do desenho do fluxo
Parâmetros de caminho
iduuidobrigatórioId do fluxo.
Exemplo de requisição
bash
curl "$BASE_URL/api/v1/admin/flows/4b8801c7-d1cf-4adc-807f-1aeb6f9687db/validate" \
-H "Authorization: Bearer $TOKEN"Resposta
200Resultado da validação
json
{
"flow_id": "fa4b0c91-2883-43c6-94ef-86e5b540a2aa",
"valid": false,
"issues": [
{
"code": "no_entry",
"message": "flow has blocks but no start_block_id is set"
},
{
"code": "orphan_block",
"block_id": "b8c1057a-d5b6-448f-af73-31734882b110",
"message": "block has no inbound connections and is not the entry block"
}
]
}Campos da resposta
flow_iduuidId do fluxo.
validbooleantrue quando não há nenhum problema.issuesarrayProblemas encontrados:
code, message (em inglês) e, quando aplicável, block_id (problema de bloco) ou edge_id (problema de conexão).issues[].codestringTipo do problema.
no_entry: há blocos mas falta o bloco inicial; start_block_not_in_flow: o bloco inicial não pertence ao fluxo; self_loop: conexão de um bloco para ele mesmo; unknown_block_ref: a origem da conexão (from_block_id) não é um bloco do fluxo; dangling_outbound: o destino da conexão (to_block_id) não é um bloco do fluxo; duplicate_edge: duas conexões iguais saindo do mesmo bloco e tipo; orphan_block: bloco que ninguém alcança.Erros
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário administrador. | {"error":"admin access required"} |
| 403 | O usuário é administrador, mas não tem o privilégio exigido. | {"error":"insufficient privileges","privilege_required_any":["manage_settings"]} |
| 403 | O módulo whatsapp-commerce não está ativo nesta loja. | {"error":"module_disabled","module":"whatsapp-commerce"} |
| 404 | Fluxo não existe. | {"error":"flow not found"} |
| 400 | Falha ao validar. A mensagem vem em error. | {"error":"..."} |