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

# Nodos de decisión

> Enrutar el flujo según reglas, sin hablar con el paciente

Un **nodo de decisión** es un nodo interno que **no habla**: no formula preguntas ni dice frases. Su única función es enrutar el flujo evaluando un conjunto de [reglas condicionales](/olivia/es/reglas). Es donde se concentra la lógica de ramificación que cruza varias respuestas o variables.

<img src="https://mintcdn.com/omniloy/Q9jZm4-SeFtgd8-M/images/olivia/decision-node.png?fit=max&auto=format&n=Q9jZm4-SeFtgd8-M&q=85&s=faf4cd161e0823de1734a717d7f034fb" alt="Nodo de decisión" width="1687" height="1080" data-path="images/olivia/decision-node.png" />

## Cómo se evalúan las reglas

* **La primera que coincide gana** (`first-match-wins`): las reglas se evalúan en orden y se toma la primera cuya condición se cumple.
* **Rama por defecto obligatoria**: la última regla debe ser `always`. Así el nodo siempre tiene una salida garantizada; si falta, la publicación del protocolo falla.
* Un nodo de decisión no tiene "valor propio", así que cada regla que no sea `always` debe indicar explícitamente qué variable evalúa.

```mermaid theme={null}
flowchart TD
  In[Entra al nodo de decisión] --> R1{Regla 1}
  R1 -->|coincide| T1[Destino 1]
  R1 -->|no| R2{Regla 2}
  R2 -->|coincide| T2[Destino 2]
  R2 -->|no| AF[Regla always: rama por defecto]
```

## A dónde dirige una regla

Cada regla apunta a **una** de estas dos cosas:

* **Otro nodo** del flujo (una pregunta, una frase, un webhook u otro nodo de decisión), o
* **Una acción terminal**, que cierra el run:
  * `end_protocol_run` — finaliza el cuestionario.
  * `mark_unresolved` — finaliza marcándolo como **no resuelto**.

En el constructor, las acciones terminales aparecen como nodos de fin diferenciados (Fin y No resuelto).

## Cuándo usarlos

Usa un nodo de decisión cuando la ramificación dependa de algo más que la respuesta inmediata: combinar varias respuestas, comparar contra una variable, o reaccionar al resultado de un webhook.
