Guides
Visual workflows
Node-based orchestration — nodes, edges, variables, connected inputs, readiness checks, triggers, AI building.
Workflows orchestrate a chain of actions (retrieval, generation, transcription, export, publishing, …) into a DAG, triggered manually, on a schedule, or via webhook. The design takes cues from Dify / Coze.
Canvas & nodes#

Build a workflow from scratch — use "Add node" to drop in KB Search and LLM Generate, drag between ports to connect them, and configure each node in place; the built-in AI assistant can also build the graph for you:

-
The left column lists workflows; the rest is a React Flow canvas with a toolbar on top.
-
Add node from the toolbar, grouped roughly by what they are for:
Group Nodes Flow start, output, condition, delay, notify Text & models LLM, text template, text transform, translate, JSON extract, code Loops & reuse for-each, while, subgraph, call workflow Media & cuts AI-generate asset, synthesize speech, transcribe asset, video to GIF, export timeline, publish Asset library asset query, asset tag, asset update, create project External HTTP request, plugin tool Browser open / navigate / click / input / extract / scroll / upload / wait / evaluate / close -
Edges define execution order; drag from a node's right port to a downstream node's left port. The condition node has "true / false" outlets. The toolbar switches edge shape between curved (bezier) and stepped (right-angle); your choice is remembered.
-
Click a node to open its inspector — it sits directly below the node, and a floating bar sits directly above it: content sections on the left (Parameters / Advanced / Outputs, plus This run once it has run — each shown only when the node has it), node actions on the right (open subgraph, delete). "Advanced" holds the knobs that work fine left blank, so the first screen isn't a wall of sampling parameters.
When something is buried#
With dense nodes or stacked floating panels, select one and press ⌘/Ctrl + ] to raise it or ⌘/Ctrl + [ to send it down. Floating panels use the same pair, but nodes can never cover a floating panel — otherwise the inspector would end up buried under the very node it's editing.
Variables: wiring upstream outputs into downstream inputs#
After a node runs it writes results into the context; output variables look like {{nodeId.output}} (e.g. {{llm-1.text}}).
Each field can switch between two input modes (the small pill at the right of the label row):
- Manual: type a value / pick an option; in template fields press
@to pull up upstream variables (keep typing to filter), or click a variable chip to insert at the cursor. When the node has nothing upstream yet,@says so instead of doing nothing. - Connected: the field becomes a port; pick one from the upstream outputs dropdown — equivalent to binding
{{upstream.output}}. Switching back to manual keeps the previous value.
Readiness check / run gating#
The toolbar's readiness check aggregates all blockers: missing required fields, unconfigured models / providers, disconnected nodes, references to deleted nodes, and so on.
- Problem nodes get a warning badge on the canvas (red = blocking, amber = advisory) with a tooltip listing the issues.
- With errors present the Run button is disabled; each issue is clickable and jumps to the node.
- After deleting an upstream node, fields referencing it are marked stale and can be re-pointed or cleared.
The Video to GIF node takes a video asset id plus frame rate, width, start time and duration. It outputs a new GIF asset id and never overwrites the source video.
LLM generation style#
LLM nodes use a generation style (precise / balanced / creative) instead of a raw temperature, lowering the configuration bar.
Triggers#
Workflows can be bound to scheduled tasks: manual, cron, or webhook. Batch runs of the same workflow are supported.
Let AI build it#
The toolbar's AI assistant uses the shared persistent session pool: describe the flow you want in natural language and it builds / edits nodes for you; changes go through confirmation cards. Its top-left title is the active conversation — click it to search or switch sessions — and the panel can dock beside the canvas or float above it.

