Decidir
A lógica em si — a parte que o dono da política edita.
- Regra
- Tabela de Decisão
- Matriz 2D
- Scorecard
- Divisão
- Junção
- Loop
- Fluxo de Decisão
Documentação
Do que é feito um fluxo de decisão, como testá-lo e qual API seus sistemas chamam depois que ele entra no ar. Um endpoint, uma chave de API e uma resposta que se explica sozinha.
Guia rápido
Desenhe a decisão no editor — regras, tabelas de decisão, ramificações e etapas de código ligadas em um único grafo. Todo resultado tem um caminho explícito, então dá para acompanhar a lógica sem ler código.
Rode casos representativos pelo rascunho. A trilha mostra o caminho percorrido nó a nó, então você corrige a lógica antes de um cliente encontrá-la — e não depois.
Publicar torna a versão apta a receber tráfego de produção. Sua integração continua chamando o mesmo endpoint; qual versão atende é uma escolha feita dentro do produto, não um deploy.
POST the input to the flow's decide endpoint with your API key. The response carries the output, the version that produced it, and the trace behind it.
API de decisão
curl -X POST https://api.arborule.com/run/api/v1/flows/YOUR_FLOW_SLUG/decide \
-H "X-Api-Key: $ARBORULE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"data": { "first_name": "Grace", "last_name": "Hopper" },
"metadata": { "grouping_id": "application-4821" }
}'{
"decision_id": "01J8ZQ...",
"status_code": "succeeded",
"created_at": "2026-07-30T14:02:11Z",
"environment": "live",
"grouping_id": "application-4821",
"duration_ms": 41,
"input": { "first_name": "Grace", "last_name": "Hopper" },
"output": { "decision": "approve", "limit": 12000 },
"trace": [ /* node-by-node record of the path taken */ ]
}Toda chamada leva um cabeçalho X-Api-Key . As chaves são criadas por workspace e limitadas ao que podem fazer, então uma integração que só decide não consegue editar um fluxo.
datametadata.grouping_idmetadata.versioncontrol.async| Método | Caminho | O que faz |
|---|---|---|
| POST | /run/api/v1/flows/:slug/decide | Executa a versão publicada de um fluxo em tráfego de produção. Roteado por peso e fixo por grouping_id. |
| POST | /run/api/v1/flows/:slug/sandbox/decide | Executa uma versão rascunho no Sandbox. Mesma requisição e mesma resposta do ambiente de produção, então a chamada que você testa é a que vai para o ar. |
| GET | /run/api/v1/flows/:slug/versions | List the flow's versions and their status, so a caller can pin one by name. |
| GET | /history/api/v1/decisions | Percorre as decisões registradas, filtrando por fluxo, ambiente ou grouping_id. |
Cada fluxo também publica um documento OpenAPI 3.1 com seus próprios esquemas de entrada e saída, gerado a partir da versão publicada — assim o código do cliente sai do fluxo, e não copiado à mão de uma página como esta.
Ambientes e versões
O Sandbox roda um rascunho; o Live roda uma versão publicada. Os dois recebem o mesmo corpo de requisição e devolvem a mesma resposta, então nada muda na integração quando um fluxo é promovido.
O tráfego de produção é distribuído entre as versões publicadas por peso e mantido fixo por grouping_id, para que a mesma proposta não receba duas respostas diferentes no meio do caminho enquanto uma nova versão ganha tráfego.
Referência de nós
A lógica em si — a parte que o dono da política edita.
Traz o que a decisão precisa e deixa no formato certo.
Para quando a decisão pede um julgamento que uma tabela não expressa.
Para as decisões que não devem ser automáticas.
Perguntas frequentes
Faça um POST para /run/api/v1/flows/:slug/decide em api.arborule.com, com o cabeçalho X-Api-Key e um corpo JSON com sua entrada dentro de `data`. A resposta traz o id da decisão, o resultado em `output`, o ambiente em que rodou, quanto tempo o motor levou e a trilha nó a nó do caminho percorrido. É uma chamada HTTP comum — não há SDK para adotar nem callback para hospedar no caso síncrono.
/run/api/v1/flows/:slug/sandbox/decide executa uma versão rascunho; /run/api/v1/flows/:slug/decide executa uma versão publicada. O corpo da requisição e o formato da resposta são idênticos, então a chamada que você testa é a que vai para o ar — muda apenas qual versão responde e se a execução conta como tráfego de produção. As duas ficam registradas no histórico de decisões, cada uma no seu ambiente.
Set metadata.version to a published version's name. Leave it out and live traffic is routed across published versions by weight, kept sticky per grouping_id so the same application does not get two different answers while a new version is ramping. Pinning is what you want for a replay or a regression test; routing is what you want in production.
Toda resposta inclui um decision_id. O GET /history/api/v1/decisions devolve as decisões registradas filtradas por flow_slug, ambiente ou grouping_id, então dá para buscar uma pelo id ou listar tudo o que aconteceu com uma proposta. O registro guarda a entrada, a saída, a versão que a produziu e a trilha — que é exatamente o que uma notificação de recusa ou uma revisão de processo exige.
Duas coisas diferentes, e a diferença importa. Um nó de Revisão Manual pausa a execução: a API devolve na hora uma decisão pendente e um caso de revisão, e a mesma execução continua daquele nó assim que alguém responde. Um nó de Criar Caso não pausa nada — o fluxo abre um caso para um revisor e segue devolvendo sua resposta, então nada fica esperando por uma pessoa.
Não. A API de decisão é HTTP e JSON, chamada com um cabeçalho de chave de API, então qualquer coisa capaz de fazer uma requisição consegue chamá-la. Cada fluxo também publica um documento OpenAPI 3.1 com seus esquemas de entrada e saída, gerado a partir da versão publicada — então, se você quiser um cliente tipado, gere-o a partir do fluxo em vez de escrevê-lo à mão a partir desta página.
Comece a ler dentro do produto
Cada fluxo tem sua própria referência de API, gerada a partir da versão que você publicou. Crie um workspace, monte um fluxo e leia a documentação que ele produz.