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

# Canvas editor

> Design workflows visually with a drag-and-drop canvas where you add, connect, and configure nodes to model automated processes.

The **Workflow Canvas** is a visual drag-and-drop editor for designing workflows in Flowker. It provides an interactive surface where you can add, connect, and configure nodes to define the execution flow of your automated processes.

## Accessing the Canvas

***

The canvas opens automatically when you create or edit a workflow. Navigate to **Flowker → Workflows**, then either create a new workflow or click **Edit Flow** on an existing one.

## Canvas basics

***

The canvas provides the following interactions:

* **Pan** — click and drag on the canvas background to move around.
* **Zoom** — use the scroll wheel or pinch gesture to zoom in and out.
* **Select** — click a node to select it and view its summary.
* **Configure** — double-click a node to open its configuration panel on the right side.
* **Connect** — drag from a node's output handle to another node's input handle to create a connection.
* **Delete** — select a node or connection and press the delete key, or use the context menu.

## Node types

***

Flowker workflows are composed of three node types, each serving a distinct role in the execution flow.

### Trigger Node

The **Trigger Node** defines the event that starts the workflow. Every workflow must have at least one trigger node.

When you double-click a trigger node, the **Configure Trigger** panel opens with the following fields:

| Field       | Description                                                                                              |
| ----------- | -------------------------------------------------------------------------------------------------------- |
| **Name**    | A descriptive label for the trigger (e.g., "Webhook Trigger").                                           |
| **Trigger** | A dropdown to select which trigger type to use. Options are loaded dynamically from the Flowker catalog. |

After selecting a trigger type, additional configuration fields may appear based on the trigger's schema.

Available trigger types include:

| Trigger     | Description                                                                            |
| ----------- | -------------------------------------------------------------------------------------- |
| **Webhook** | The workflow starts when an external HTTP request is received at a generated endpoint. |

<Note>
  Trigger types are loaded from the Flowker catalog and may vary depending on your environment's configuration. The list above reflects the default available triggers.
</Note>

### Executor Call Node

**Executor Call Nodes** perform specific operations by calling executors registered in the Flowker catalog. Each executor represents a pre-built integration with Lerian products or external services.

When you double-click an executor call node, the **Configure Executor Call** panel opens with the following fields:

| Field        | Description                                                                                          |
| ------------ | ---------------------------------------------------------------------------------------------------- |
| **Executor** | A dropdown to select which executor to use. Options are loaded dynamically from the Flowker catalog. |
| **Name**     | Auto-filled with the executor's category after selection, but editable.                              |

After selecting an executor, additional configuration fields appear based on the executor's schema (e.g., data mapping parameters).

Available executors include:

| Executor                 | Description                                          |
| ------------------------ | ---------------------------------------------------- |
| **Create Account**       | Creates a new account in Midaz.                      |
| **Create Transaction**   | Creates a new transaction in Midaz.                  |
| **Get Account**          | Retrieves account details from Midaz.                |
| **Get Account Balance**  | Retrieves the balance for a specific account.        |
| **List Validations**     | Lists transaction validations from Tracer.           |
| **Validate Transaction** | Validates a transaction through Tracer's risk rules. |

<Note>
  Executors are loaded from the Flowker catalog and may vary depending on your environment and enabled products. The list above reflects the default executors available with Midaz and Tracer.
</Note>

The executor configuration is validated both locally (against the executor's schema) and remotely (via the Flowker backend) before saving. If the configuration is invalid, an error message will appear in the panel.

### Conditional Node

**Conditional Nodes** branch the workflow based on a condition expression. They evaluate the expression at runtime and route the execution to one of two paths:

* **True path** — followed when the condition evaluates to true.
* **False path** — followed when the condition evaluates to false.

When you double-click a conditional node, the **Configure Conditional** panel opens with the following fields:

| Field         | Description                                                     |
| ------------- | --------------------------------------------------------------- |
| **Name**      | A descriptive label for the conditional step.                   |
| **Condition** | A free-text expression that evaluates data from previous nodes. |

Condition expressions use dot notation to reference data from previous workflow steps. Examples:

| Expression                  | Description                              |
| --------------------------- | ---------------------------------------- |
| `data.amount > 1000`        | Checks if the amount exceeds 1000.       |
| `data.status == "approved"` | Checks if the status is "approved".      |
| `data.risk_score >= 80`     | Checks if the risk score is 80 or above. |

<Tip>
  Conditional nodes always have exactly two outgoing connections — one for the true path and one for the false path. Use descriptive names (e.g., "High Value Check") to keep the workflow readable.
</Tip>

## Configuring nodes

***

To configure any node, double-click it on the canvas. A configuration panel slides in from the right side.

Each node type has its own panel layout:

* **Trigger** — Name field + trigger type dropdown + trigger-specific schema fields.
* **Executor Call** — Executor dropdown + auto-filled name + executor-specific schema fields.
* **Conditional** — Name field + condition expression text area.

After filling in the configuration, click **Save & Close** to apply the changes and return to the canvas.

## Connections

***

Connections define the order in which nodes execute. Each connection is a directed edge from one node's output to another node's input.

* A node can have multiple outgoing connections (e.g., conditional nodes always have two).
* A node can receive input from multiple sources.
* Circular connections (loops) are not supported.

<Tip>
  Keep your workflows readable by arranging nodes from left to right or top to bottom. Use descriptive node names to make it clear what each step does.
</Tip>
