# Subflujos

> Subflujos

Source: https://docs.plazbot.com/kb/subflujos

Un **subflujo** es una automatización que otra automatización ejecuta como un paso más. Sirve para reutilizar partes comunes (validar un cliente, pedir datos…) y para mantener los flujos grandes ordenados.

[Watch the video on YouTube](https://www.youtube.com/watch?v=sZfR5eRFOao)

## Iniciar automatización

1. Agrega el nodo **Iniciar automatización** («Conecta tus automatizaciones») y ábrelo.
2. En **Automatización a iniciar** busca y elige la automatización. La lista agrupa **Subflujos** y **Automatizaciones**; una automatización no puede iniciarse a sí misma.

Cómo se comporta:

- Cuando el contacto llega al nodo, entra al subflujo.
- Si el subflujo envía botones, una lista o una pausa, se espera la respuesta del contacto antes de volver.
- Al terminar el subflujo, el flujo padre sigue por la salida que corresponda (ver Retornar).
- Para devolver un dato, guarda una variable en el subflujo y usa una **Condición** después del nodo.

El botón **Abrir:** del nodo te lleva al subflujo.

## Retornar: salidas con nombre

Dentro del subflujo, termina cada camino con un nodo **Retornar** («Termina el subflujo por una salida con nombre»):

- En **Nombre de la salida** escribe el resultado, por ejemplo _Aprobado_ o _Rechazado_. Es obligatorio.
- Cada Retornar crea una salida con ese nombre en el nodo **Iniciar automatización** del flujo padre. Conecta cada una a lo que corresponda.
- Si el subflujo termina sin pasar por un Retornar, el padre sigue por **Al terminar**.
- Un Retornar que aún no está publicado aparece en el padre con la marca _sin publicar_.

## Siempre se ejecuta la versión publicada

El motor ejecuta la **última versión publicada** del subflujo, así que publícalo después de cada cambio. El nodo te avisa:

Aviso

Qué pasa

El subflujo tiene cambios sin publicar

Se ejecuta la versión publicada anterior

El subflujo no está publicado

Se salta y el flujo continúa

El subflujo fue eliminado

Se salta y el flujo continúa

En el simulador se prueba el **borrador** del subflujo; en producción, su versión publicada.

## Extraer a subflujo

1. Selecciona varios nodos (o una **Sección**).
2. En la barra de arriba presiona **Extraer a subflujo**.
3. Escribe el **Nombre del subflujo** y presiona **Extraer**.

Los nodos pasan a una nueva automatización y, en su lugar, queda un nodo de subflujo. El diálogo te dice cuántos nodos se mueven y cuál es la entrada:

- con una sola salida hacia el resto del flujo, la conexión se hace sola;
- sin salidas, el flujo termina al completar el subflujo;
- con varias salidas, debes conectar la continuación a mano.

Si extraes una sección, puedes marcar **Eliminar la sección del flujo** (queda vacía).

## Mover a subflujo y Desanidar

- **Mover a subflujo…**: envía la selección a un subflujo que ya existe en este flujo. Las conexiones con el flujo actual se eliminan, dentro del subflujo las conectas a mano y el subflujo se republica solo.
- **Desanidar**: selecciona un nodo de subflujo y presiona **Desanidar** para traer sus nodos de vuelta al flujo; puedes eliminar el subflujo después.
