> ## 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 flujos

> Modo grafo vs pasos, ramas, fan-out, condiciones y validación al guardar — en el motor de automatizaciones gu1 con disparadores y acciones.

## Grafo vs pasos (legacy)

| Modo      | Comportamiento                                                                                                                                                     |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Grafo** | Nodos visuales: disparador → condiciones (Sí/No) → acciones. Si hay un **grafo válido** (nodos + aristas y al menos un disparador), el motor ejecuta el **grafo**. |
| **Pasos** | Bloques ordenados; cada bloque tiene **condiciones** y **acciones**. Si fallan las condiciones, se **omite todo el bloque**.                                       |

Si existen grafo y pasos, **gana el grafo**.

## Ramas IF / ELSE

* Los nodos condición tienen salidas **verdadero** y **falso**. Cableá **ambas** para un IF/ELSE real.
* Si solo hay **una** arista saliente, el motor la usa para **ambos** resultados (suele ser un error de diseño).

## Fan-out desde una acción

Si un nodo **acción** enlaza a **varios** siguientes, el motor ejecuta **todas** esas ramas **en secuencia**. No es “elegir una rama”: usá un nodo **condición** para bifurcar.

## Condiciones

Las condiciones comparan un **campo** del contexto (véase [Disparadores](/es/workflows/triggers)) con un **valor** y un **operador**. La UI solo ofrece campos compatibles con los **contextos permitidos** del trigger.

Tras acciones que **recalculan riesgo** o **cambian estado**, las condiciones posteriores ven los valores **actualizados**.

## Guardado y validación

Al guardar (app o API), valida:

* **Sinergia** — trigger ↔ cada acción, y cada par **acción → siguiente** inmediata ([Sinergia](/es/workflows/synergy)).
* **Forma del grafo** — p. ej. debe existir nodo disparador; aristas coherentes con el builder.

Si falla el guardado, revisá el mensaje: suele ser **trigger prohibido para una acción** o **sucesor inválido**.

## Prueba vs producción

| Endpoint                        | Uso                                                                                                |
| ------------------------------- | -------------------------------------------------------------------------------------------------- |
| `POST /automations/:id/execute` | **Prueba:** evento sintético, **`processEvent`**, **sin** standby.                                 |
| `POST /automations/:id/run`     | **Producción** con **`manual_execution`:** **`runAutomationById`**; standby y `waiting` si aplica. |

***

**Mantenimiento:** el orden de acciones en grafos para sinergia usa `getOrderedActionTypesFromGraph` en `workflow-synergy.ts`; grafos complejos conviene revisarlos en el builder.
