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

# Editor de canvas

> Diseña workflows visualmente con un canvas de arrastrar y soltar donde agregas, conectas y configuras nodes para modelar procesos automatizados.

El **Workflow Canvas** es un editor visual de arrastrar y soltar para diseñar workflows en Flowker. Proporciona una superficie interactiva donde puedes agregar, conectar y configurar nodes para definir el flujo de ejecución de tus procesos automatizados.

## Acceder al Canvas

***

El canvas se abre automáticamente cuando creas o editas un workflow. Navega a **Flowker → Workflows**, y luego crea un nuevo workflow o haz clic en **Edit Workflow** en uno existente.

## Aspectos básicos del Canvas

***

El canvas ofrece las siguientes interacciones:

* **Pan** — haz clic y arrastra sobre el fondo del canvas para moverte.
* **Zoom** — usa la rueda del ratón o el gesto de pinza para hacer zoom.
* **Select** — haz clic en un node para seleccionarlo y ver su resumen.
* **Configure** — haz doble clic en un node para abrir su panel de configuración en el lado derecho.
* **Connect** — arrastra desde el handle de salida de un node hasta el handle de entrada de otro node para crear una conexión.
* **Delete** — selecciona un node o una conexión y presiona la tecla delete, o usa el menú contextual.

## Tipos de nodes

***

Los workflows de Flowker están compuestos por cuatro tipos de nodes, cada uno con un rol distintivo en el flujo de ejecución.

### Trigger Node

El **Trigger Node** define el evento que inicia el workflow. Un workflow activo debe tener al menos un trigger node; un workflow en draft puede quedar vacío o no tener trigger mientras lo diseñas, pero las validaciones de guardado a nivel de node siguen aplicándose.

Cuando haces doble clic en un trigger node, el panel **Configure Trigger** se abre con los siguientes campos:

| Campo       | Descripción                                                                                                                  |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------- |
| **Name**    | Una etiqueta descriptiva para el trigger (p. ej., "Webhook Trigger").                                                        |
| **Trigger** | Un desplegable para seleccionar qué tipo de trigger usar. Las opciones se cargan dinámicamente desde el catálogo de Flowker. |

Después de seleccionar un tipo de trigger, pueden aparecer campos de configuración adicionales según el esquema del trigger. Para el trigger de webhook, esos campos son el path, el método y el contrato de entrada — consulta [Configurar un trigger de webhook](/es/flowker/configuring-a-webhook-trigger) para saber qué acepta cada contrato. Para el trigger de schedule, esos campos son la expresión cron, la zona horaria y el flag enabled — consulta [Ejecutar un workflow con un schedule](/es/flowker/running-a-workflow-on-a-schedule).

Los tipos de triggers disponibles incluyen:

| Trigger      | Descripción                                                                                                                                                                          |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Webhook**  | El workflow se inicia cuando Flowker recibe una solicitud HTTP externa en el path y el método configurados.                                                                          |
| **Schedule** | El workflow se inicia según un horario definido por una expresión cron estándar de 5 campos (granularidad mínima de 1 minuto), con una zona horaria IANA opcional (por defecto UTC). |

<Note>
  Los tipos de triggers se cargan desde el catálogo de Flowker y pueden variar según la configuración de tu entorno. La lista anterior refleja los triggers disponibles por defecto.
</Note>

### Executor Call Node

Los **Executor Call Nodes** realizan operaciones específicas llamando a executors registrados en el catálogo de Flowker. Cada executor representa una integración pre-construida con productos de Lerian o servicios externos.

Cuando haces doble clic en un executor call node, se abre el panel **Configure Executor Call**. Sus dos primeros campos forman una cascada: la configuración de provider que eliges primero decide qué executors ofrece el segundo campo.

| Campo        | Descripción                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Provider** | El primer campo, y el que fija la conexión. Lista las configuraciones de provider guardadas en la página [Providers](/es/flowker/console/providers-overview), cada una identificada por su nombre con su provider del catálogo al lado. Al elegir una, el paso queda ligado a esa conexión — su base URL y sus credenciales — y el desplegable **Executor** de abajo queda acotado al mismo provider. Cuando la organización todavía no tiene ninguna configuración de provider, el desplegable muestra **No connections yet — create one in Flowker → Providers**. Un workflow no se guarda mientras un executor call node no tenga configuración de provider. |
| **Executor** | El segundo campo. Lista los executors del catálogo del provider al que pertenece la configuración elegida, y permanece deshabilitado hasta que eliges un **Provider**, mostrando **Select a provider first**. Cuando la configuración elegida se construyó a partir de tu propia spec OpenAPI, este campo se sustituye por **Operation**, que lista las operaciones de esa spec — consulta [Conectar tu propia API](/es/flowker/connecting-your-own-api).                                                                                                                                                                                                       |
| **Name**     | Se autocompleta con la categoría del executor después de la selección, pero es editable.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |

Después de seleccionar un executor, aparecen campos de configuración adicionales según el esquema del executor (p. ej., parámetros de mapeo de datos).

Los executors disponibles incluyen:

| Executor                 | Descripción                                                     |
| ------------------------ | --------------------------------------------------------------- |
| **Create Account**       | Crea una nueva cuenta en Midaz.                                 |
| **Create Transaction**   | Crea una nueva transacción en Midaz.                            |
| **Get Account**          | Recupera los detalles de una cuenta desde Midaz.                |
| **Get Account Balance**  | Recupera el balance de una cuenta específica.                   |
| **List Validations**     | Lista las validaciones de transacciones desde Tracer.           |
| **Validate Transaction** | Valida una transacción mediante las reglas de riesgo de Tracer. |

<Note>
  Los executors se cargan desde el catálogo de Flowker y pueden variar con `OPENAPI_NATIVE_PROVIDERS`, la política de fixtures y la resolución correcta de providers y especificaciones. La tabla es ilustrativa; consulta el catálogo en ejecución para ver los executors disponibles en tu despliegue.
</Note>

La configuración del node se valida tanto localmente como remotamente (a través del backend de Flowker) contra el JSON Schema del executor del catálogo antes de guardar. Si la configuración es inválida, aparecerá un mensaje de error en el panel.

### Conditional Node

Los **Conditional Nodes** ramifican el workflow según condiciones evaluadas en tiempo de ejecución.

Un conditional node contiene una condición estructurada compuesta de **cases**. Cada case tiene una o más reglas y enruta la ejecución hacia su propio camino de salida cuando coincide; los cases se evalúan en orden, y gana el primer case que coincida. Un camino **default** opcional captura las ejecuciones que no coinciden con ningún case — así, un conditional node tiene una conexión saliente por case, más el camino default cuando está habilitado.

Cuando haces doble clic en un conditional node, su panel de configuración se abre con el **constructor de condiciones** visual, donde defines los cases y las reglas dentro de cada case (el valor a evaluar, un operador de comparación y el valor contra el que se compara).

<Note>
  Los workflows guardados con una expresión de condición de texto libre legada conservan los caminos de salida **true**/**false** originales. Los nuevos conditionals usan el constructor de condiciones.
</Note>

<Tip>
  Usa etiquetas de case y nombres de node descriptivos (p. ej., "High Value Check") para mantener el workflow legible.
</Tip>

### Action Node

Los **Action Nodes** realizan una acción a nivel de workflow sin llamar a un servicio externo. El tipo de acción disponible es `set_output`, que define el output final de la ejecución — útil como paso terminal de un workflow, especialmente con [respuestas síncronas de webhook](/es/flowker/integration-guide).

Los valores del output soportan referencias `${...}` resueltas contra el contexto del workflow (por ejemplo, `${workflow.<campo>}` para el payload del trigger, o `${execution.id}`). Para workflows disparados por un webhook síncrono, un node `set_output` también puede llevar un `responseStatusCode` (entero, `200`–`599`) para sobrescribir el estado HTTP de la respuesta sync.

## Configurando nodes

***

Para configurar cualquier node, haz doble clic en él en el canvas. Un panel de configuración se deslizará desde el lado derecho.

Cada tipo de node tiene su propio diseño de panel:

* **Trigger** — campo Name + desplegable del tipo de trigger + campos específicos del esquema del trigger.
* **Executor Call** — desplegable del provider + desplegable del executor + nombre autocompletado + campos específicos del esquema del executor.
* **Conditional** — campo Name + el constructor de condiciones visual (cases y reglas).
* **Action** — campo Name + la configuración del output de `set_output`.

Después de completar la configuración, haz clic en **Save & Close** para aplicar los cambios y volver al canvas.

## Conexiones

***

Las conexiones definen el orden en el que se ejecutan los nodes. Cada conexión es un edge dirigido desde la salida de un node hasta la entrada de otro node.

* Un node puede tener múltiples conexiones salientes (p. ej., los conditional nodes tienen una por case, más el camino default cuando está habilitado).
* Un node puede recibir entrada desde múltiples fuentes.
* Las conexiones circulares (bucles) no están soportadas.

<Tip>
  Mantén tus workflows legibles organizando los nodes de izquierda a derecha o de arriba a abajo. Usa nombres descriptivos de nodes para que sea claro qué hace cada paso.
</Tip>
