VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Fluxos de WhatsApp

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

POST/api/v1/admin/flows/{id}/cloneAdmin

Copia um fluxo com blocos e conexões

Parâmetros de caminho

iduuidobrigatório
Id do fluxo.

Corpo da requisição

new_namestring
Nome 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

StatusQuandoExemplo de corpo
401Token ausente, inválido ou expirado.{"error":"missing authorization header"}
403O token não é de um usuário administrador.{"error":"admin access required"}
403O usuário é administrador, mas não tem o privilégio exigido.{"error":"insufficient privileges","privilege_required_any":["manage_settings"]}
403O módulo whatsapp-commerce não está ativo nesta loja.{"error":"module_disabled","module":"whatsapp-commerce"}
400Fluxo de origem não encontrado ou falha ao copiar. A mensagem vem em error.{"error":"whatsapp/flows: source flow not found"}
A cópia nasce rascunho e com gatilho manual

A cópia fica em rascunho e com trigger_type manual, para não responder aos mesmos clientes que o original. As palavras-chave e a prioridade são copiadas, mas inertes. Para colocá-la no ar, ajuste o gatilho e ative com Alterar fluxo. Os blocos ganham ids novos e as conexões são religadas a eles.

Validar

GET/api/v1/admin/flows/{id}/validateAdmin

Confere a estrutura do desenho do fluxo

Parâmetros de caminho

iduuidobrigatório
Id 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_iduuid
Id do fluxo.
validboolean
true quando não há nenhum problema.
issuesarray
Problemas encontrados: code, message (em inglês) e, quando aplicável, block_id (problema de bloco) ou edge_id (problema de conexão).
issues[].codestring
Tipo 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

StatusQuandoExemplo de corpo
401Token ausente, inválido ou expirado.{"error":"missing authorization header"}
403O token não é de um usuário administrador.{"error":"admin access required"}
403O usuário é administrador, mas não tem o privilégio exigido.{"error":"insufficient privileges","privilege_required_any":["manage_settings"]}
403O módulo whatsapp-commerce não está ativo nesta loja.{"error":"module_disabled","module":"whatsapp-commerce"}
404Fluxo não existe.{"error":"flow not found"}
400Falha ao validar. A mensagem vem em error.{"error":"..."}
Fluxo vazio é válido

Um fluxo sem nenhum bloco devolve valid: true. A validação confere a estrutura do desenho, não se o fluxo está pronto para uso: confira também se há start_block_id.

Veja também

  • Gerenciar fluxos
Anterior
Gerenciar fluxos
Próxima
Central de pendências
Nesta página
  • Duplicar
  • Exemplo de requisição
  • Resposta
  • Erros
  • Validar
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também