Skip to main content
Há duas formas de rodar fluxos a partir de outro sistema. As duas usam a chave de API do projeto no header x-api-key e respondem 202 assim que os fluxos são enfileirados. Base: https://api.zatten.com. A chave sai de API Keys no painel (Chaves de API do projeto). A referência completa dos endpoints fica em Disparar fluxos e webhook de entrada.
A rota avisa, não faz. /flows/trigger com lead.tag_added não aplica a tag: ela só roda os fluxos daquele gatilho. Para aplicar a tag, chame a API de leads e, depois, o disparo.

Onde fica no painel

No editor do fluxo, ao escolher o gatilho Webhook recebido, o painel lateral mostra a URL pronta e um curl de exemplo com os campos declarados. O disparo genérico não tem tela: é só API.

Como configurar

Disparo genérico: POST /flows/trigger

Use para rodar os fluxos de um gatilho disponível para um lead, quando você quer avisar o evento por conta própria (por exemplo, para reprocessar). Mover o lead e pôr ou tirar tag pela API de leads já disparam os fluxos de Kanban e de tag: não chame /flows/trigger de novo para o mesmo evento, ou o fluxo roda duas vezes.
Os gatilhos em breve (Novo lead criado, Mensagem recebida, Propriedade alterada, Lead inativo) estão indisponíveis hoje, também pela API. A rota aceita esses tipos, mas não existe fluxo ligado com eles para rodar: a resposta vem com matched: 0. Para receber eventos de outro sistema, prefira o webhook de entrada (/hooks/<path>, abaixo).
O que mandar em trigger_event: A resposta diz quantos fluxos casaram e o que aconteceu com cada um:
  • matched: fluxos ligados com esse gatilho.
  • dispatched: quantos de fato rodaram. Menor que matched não é erro: o reason diz qual filtro do gatilho não bateu.
  • deduped: true: a idempotency_key já foi usada nas últimas 24 horas. Nada rodou.

Webhook de entrada: POST /hooks/<path>

  1. No editor, crie um fluxo com o gatilho Webhook recebido.
  2. Preencha o Path (só minúsculas, números e hífen, ex.: erp-pedido-fechado). Ele é único no projeto.
  3. Em Campos que você vai receber, declare os campos do JSON que o fluxo vai usar (pedido_id, cliente.nome). Cada um vira {{trigger.body.<campo>}}.
  4. Salve, ligue o fluxo e cole a URL no sistema de origem.
O corpo inteiro vira {{trigger.body}}:
A resposta é só { "message": "Flow triggered" }, com 202, mesmo se nenhum fluxo casar com o caminho. Para saber se rodou, veja as Execuções do fluxo.

Como funciona por trás

  • O projeto vem da chave. Uma chave nunca dispara fluxo em outro projeto.
  • Cada fluxo ligado com o gatilho é testado contra os filtros. Os que batem viram execuções; os outros ficam como Ignorado.
  • A idempotência vale para a combinação gatilho + lead + idempotency_key, por 24 horas. A mesma chave para outro lead ou outro gatilho roda normalmente. Sem idempotency_key, cada chamada roda os fluxos de novo.
  • A execução segue na fila, em segundo plano. O 202 quer dizer “recebido e despachado”, não “terminou”.
  • As regras de limite da API valem para estas rotas.

Pelo MCP

O MCP não dispara fluxos. Ele cria fluxos (inclusive com o gatilho Webhook recebido e o path) e liga ou desliga. O disparo é sempre pela API, com a chave do projeto. Ver A API do dia a dia.

Armadilhas

  • O corpo precisa ser JSON. Sem Content-Type: application/json, o fluxo roda, mas {{trigger.body}} chega vazio. Remetentes que postam formulário (form-urlencoded) não funcionam direto.
  • 202 não quer dizer que rodou. No /hooks, um path errado também responde 202. Confira nas Execuções.
  • O lead precisa existir. Webhook de um número que nunca falou com o projeto nem foi importado em Contatos dá 404. Nada roda.
  • Um fluxo antigo sem Path responde a qualquer /hooks/… do projeto. Hoje o editor exige o Path; revise fluxos antigos.
  • Gatilho em breve não roda pela API. lead.created, lead.message_received, lead.property_changed e lead.inactive são aceitos, mas não há fluxo ligado com eles: matched vem 0.
  • A API aceita lead.ai_toggled, mas o editor não tem esse gatilho, então não há fluxo para rodar.
  • Nunca ponha a chave de API num front-end público. Quem tem a chave lê e altera os leads do projeto.

Perguntas frequentes

Sim. POST/DELETE /leads/{numero}/tag e PATCH /leads/{numero}/kanban disparam os fluxos de tag e de Kanban sozinhos. Não chame /flows/trigger para o mesmo evento. Já mudar uma propriedade (/properties) ou ligar/desligar a IA não dispara fluxos, e os gatilhos dessas mudanças ainda não estão disponíveis (em breve).
/hooks quando você não controla o formato do corpo (o sistema de origem manda o JSON dele). /flows/trigger quando você monta a chamada e quer a resposta com matched, dispatched e o motivo de cada fluxo ignorado.
Não. Cada chamada é para um lead.

Para saber mais