> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gu1.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Construir fluxos

> Modo grafo vs passos, ramificações, fan-out, condições e validação ao salvar — no motor de automações gu1 com gatilhos e ações, com exemplos para building.

## Grafo vs passos (legado)

| Modo       | Comportamento                                                                                                                                           |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Grafo**  | Nós visuais: gatilho → condições (Sim/Não) → ações. Se houver um **grafo válido** (nós + arestas e pelo menos um gatilho), o motor executa o **grafo**. |
| **Passos** | Blocos ordenados; cada bloco tem **condições** e **ações**. Se as condições falharem, **todo o bloco** é ignorado.                                      |

Se existirem grafo e passos, **o grafo prevalece**.

## Ramificações IF / ELSE

* Nós de condição têm saídas **verdadeiro** e **falso**. Conecte **ambas** para um IF/ELSE real.
* Se houver apenas **uma** aresta de saída, o motor usa essa aresta para **ambos** os resultados (geralmente indesejado).

## Fan-out a partir de uma ação

Se um nó de **ação** liga a **vários** seguintes, o motor executa **todas** essas ramificações **em sequência**. Não é “escolher um ramo”: use um nó de **condição** para bifurcar.

## Condições

As condições comparam um **campo** do contexto (veja [Gatilhos](/pt/workflows/triggers)) a um **valor** com um **operador**. A UI só oferece campos compatíveis com os **contextos permitidos** do gatilho.

Após ações que **recalculam risco** ou **mudam status**, condições posteriores veem valores **atualizados**.

## Salvar e validação

Ao salvar (app ou API), o produto valida:

* **Sinergia** — gatilho ↔ cada ação, e cada par **ação → próxima** imediata ([Sinergia](/pt/workflows/synergy)).
* **Forma do grafo** — ex.: deve existir nó de gatilho; arestas coerentes com o builder.

Se o salvamento falhar, verifique a mensagem: costuma ser **gatilho proibido para uma ação** ou **sucessor inválido**.

## Teste vs produção

| Endpoint                        | Uso                                                                                                     |
| ------------------------------- | ------------------------------------------------------------------------------------------------------- |
| `POST /automations/:id/execute` | **Teste:** evento sintético, **`processEvent`**, **sem** standby.                                       |
| `POST /automations/:id/run`     | **Produção** com **`manual_execution`:** **`runAutomationById`**; standby e `waiting` quando aplicável. |

***

**Manutenção:** a ordem das ações em grafos para sinergia usa `getOrderedActionTypesFromGraph` em `workflow-synergy.ts`; grafos complexos convém revisar no builder.
