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

> Desenhe workflows visualmente com um canvas drag-and-drop onde você adiciona, conecta e configura nodes para modelar processos automatizados.

O **Workflow Canvas** é um editor visual drag-and-drop para desenhar workflows no Flowker. Ele oferece uma superfície interativa onde você pode adicionar, conectar e configurar nodes para definir o fluxo de execução dos seus processos automatizados.

## Acessando o Canvas

***

O canvas abre automaticamente ao criar ou editar um workflow. Navegue até **Flowker → Workflows** e crie um novo workflow ou clique em **Editar Workflow** em um já existente.

## Noções básicas do canvas

***

O canvas oferece as seguintes interações:

* **Pan** — clique e arraste o fundo do canvas para se mover.
* **Zoom** — use a roda de rolagem ou o gesto de pinça para aproximar e afastar.
* **Select** — clique em um node para selecioná-lo e visualizar o seu resumo.
* **Configure** — dê um duplo clique em um node para abrir o painel de configuração do lado direito.
* **Connect** — arraste do handle de saída de um node até o handle de entrada de outro para criar uma conexão.
* **Delete** — selecione um node ou conexão e pressione a tecla delete, ou use o menu de contexto.

## Tipos de node

***

Workflows do Flowker são compostos por três tipos de node, cada um com um papel distinto no fluxo de execução.

### Trigger

O node **Trigger** define o evento que inicia o workflow. Todo workflow precisa ter pelo menos um trigger node.

Ao dar um duplo clique em um trigger node, o painel **Configurar Trigger** abre com os seguintes campos:

| Campo       | Descrição                                                                                                                      |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------ |
| **Nome**    | Um rótulo descritivo para o trigger (ex.: "Webhook Trigger").                                                                  |
| **Trigger** | Um dropdown para selecionar qual tipo de trigger usar. As opções são carregadas dinamicamente a partir do catálogo do Flowker. |

Após selecionar o tipo de trigger, campos de configuração adicionais podem aparecer, dependendo do schema do trigger.

Tipos de trigger disponíveis:

| Trigger     | Descrição                                                                              |
| ----------- | -------------------------------------------------------------------------------------- |
| **Webhook** | O workflow começa quando uma requisição HTTP externa é recebida em um endpoint gerado. |

<Note>
  Os tipos de trigger são carregados do catálogo do Flowker e podem variar conforme a configuração do seu ambiente. A lista acima reflete os triggers disponíveis por padrão.
</Note>

### Chamada de Executor

O node **Chamada de Executor** executa operações específicas chamando executors registrados no catálogo do Flowker. Cada executor representa uma integração pré-construída com produtos Lerian ou serviços externos.

Ao dar um duplo clique em um executor call node, o painel **Configurar Chamada de Executor** abre com os seguintes campos:

| Campo        | Descrição                                                                                                               |
| ------------ | ----------------------------------------------------------------------------------------------------------------------- |
| **Executor** | Um dropdown para selecionar qual executor usar. As opções são carregadas dinamicamente a partir do catálogo do Flowker. |
| **Nome**     | Preenchido automaticamente com a categoria do executor após a seleção, mas editável.                                    |

Após selecionar um executor, campos de configuração adicionais aparecem de acordo com o schema do executor (ex.: parâmetros de mapeamento de dados).

Executors disponíveis:

| Executor                 | Descrição                                             |
| ------------------------ | ----------------------------------------------------- |
| **Create Account**       | Cria uma nova conta no Midaz.                         |
| **Create Transaction**   | Cria uma nova transação no Midaz.                     |
| **Get Account**          | Recupera detalhes de uma conta no Midaz.              |
| **Get Account Balance**  | Recupera o saldo de uma conta específica.             |
| **List Validations**     | Lista validações de transação do Tracer.              |
| **Validate Transaction** | Valida uma transação pelas regras de risco do Tracer. |

<Note>
  Os executors são carregados do catálogo do Flowker e podem variar conforme o seu ambiente e os produtos habilitados. A lista acima reflete os executors disponíveis por padrão com Midaz e Tracer.
</Note>

A configuração do executor é validada tanto localmente (contra o schema do executor) quanto remotamente (pelo backend do Flowker) antes de ser salva. Caso a configuração seja inválida, uma mensagem de erro aparecerá no painel.

### Condicional

O node **Condicional** ramifica o workflow com base em uma expressão condicional. Ele avalia a expressão em runtime e direciona a execução para um de dois caminhos:

* **Caminho verdadeiro** — seguido quando a condição é avaliada como verdadeira.
* **Caminho falso** — seguido quando a condição é avaliada como falsa.

Ao dar um duplo clique em um conditional node, o painel **Configurar Condicional** abre com os seguintes campos:

| Campo        | Descrição                                                          |
| ------------ | ------------------------------------------------------------------ |
| **Nome**     | Um rótulo descritivo para o passo condicional.                     |
| **Condição** | Uma expressão de texto livre que avalia dados de nodes anteriores. |

Expressões condicionais usam notação de ponto para referenciar dados de passos anteriores do workflow. Exemplos:

| Expressão                   | Descrição                                          |
| --------------------------- | -------------------------------------------------- |
| `data.amount > 1000`        | Verifica se o valor é maior que 1000.              |
| `data.status == "approved"` | Verifica se o status é "approved".                 |
| `data.risk_score >= 80`     | Verifica se o risk score é igual ou superior a 80. |

<Tip>
  Nodes condicionais têm sempre exatamente duas conexões de saída — uma para o true path e outra para o false path. Use nomes descritivos (ex.: "High Value Check") para manter o workflow legível.
</Tip>

## Configurando nodes

***

Para configurar qualquer node, dê um duplo clique nele no canvas. Um painel de configuração desliza pelo lado direito.

Cada tipo de node tem seu próprio layout de painel:

* **Trigger** — campo Nome + dropdown de tipo de trigger + campos específicos do schema do trigger.
* **Chamada de Executor** — dropdown de executor + nome preenchido automaticamente + campos específicos do schema do executor.
* **Condicional** — campo Nome + área de texto para a expressão da condição.

Depois de preencher a configuração, clique em **Save & Close** para aplicar as alterações e voltar ao canvas.

## Conexões

***

Conexões definem a ordem em que os nodes são executados. Cada conexão é uma aresta direcionada que vai da saída de um node até a entrada de outro.

* Um node pode ter várias conexões de saída (ex.: conditional nodes sempre têm duas).
* Um node pode receber input de várias origens.
* Conexões circulares (loops) não são suportadas.

<Tip>
  Mantenha seus workflows legíveis organizando os nodes da esquerda para a direita ou de cima para baixo. Use nomes descritivos nos nodes para deixar claro o que cada passo faz.
</Tip>
