Skip to content

Canvas

A canvas is the workspace where you design and run workflows in SuperPlane. It’s a visual graph of nodes connected by subscriptions that define how events flow between steps.

Think of a canvas as:

  • A workspace for designing workflows visually
  • A live system where multiple runs can execute simultaneously
  • A graph that defines all possible execution paths

A single canvas can represent multiple possible workflows, depending on which paths events take through the graph. The canvas provides a place to model complex, event-driven workflows that span multiple tools, wait for human input, and run over extended periods of time.

Hello World canvas with start, if, and action nodes connected on the workflow graph

The canvas consists of:

  1. Nodes — Triggers and components. See Component Nodes.
  2. Connections — Indicate which node listens to which. See Data Flow.
  3. Edit — Edit the canvas nodes and connections.
  4. Helper toolbar — Navigation tools, select/pan mode, search.

You can edit and update canvases in two ways:

Use the visual editor to build and modify canvases interactively:

  • Add nodes: Drag components from the component palette onto the canvas
  • Connect nodes: Create subscriptions by connecting nodes together
  • Configure nodes: Click on any node to edit its configuration
  • Delete elements: Remove nodes or connections as needed

Changes are saved automatically, and you can see your workflow update in real-time.

Use the SuperPlane CLI to manage an app canvas programmatically:

Terminal window
# Export a canvas
superplane apps canvas get <app_name> > my_canvas.yaml
# Edit the YAML file
# ... make your changes ...
# Apply updates
superplane apps canvas update -f my_canvas.yaml

Notes are sticky notes on the canvas for labels, reminders, or links. They do not run in the workflow, emit payloads, or connect to subscriptions.

Each note supports markdown text (up to 5000 characters).

To add a note, click the sticky-note button in the top-right toolbar.

Canvases are versioned using a Git repository in the background. You edit a draft, commit your changes, and publish when you’re ready to update the live app.

In the UI, versioned canvases expose an Edit mode and a Versioning view:

  1. Live vs Draft versions: The live version is what currently runs in production. A draft is an isolated workspace where you can safely make changes. You can have multiple drafts active at the same time (a multi-draft lifecycle).
  2. Repository-backed staging: When you edit a draft, your changes are written to a staging layer. You can view a visual diff of your staged changes before committing them.
  3. Commit vs Publish:
    • Commit: Saves your staged changes to the draft’s branch in the repository.
    • Publish: Merges your draft’s branch into the live version, making your changes active.
  4. Discard/Reset: If you don’t like your staged changes, you can discard them to reset the draft back to its last commit. If a draft has conflicts with the live version, you can reset the draft to match the live version.
  5. Permanent versions sidebar: The UI provides a sidebar to manage your drafts, view commit history, and switch between versions.

For CLI commands, see SuperPlane CLI.

SuperPlane provides durable execution for your workflows, preserving state across steps and system restarts. For more details on how executions are tracked and managed, see Runs.

Nodes are instances of components. To add a node, click ”+ Components” and drag onto the canvas. Connections define how events flow between nodes — drag from a source node’s output channel to a target node.

Nodes show status badges (running, succeeded, failed) and key information from their latest payload. For details on components, see Component Nodes.

Every node emits a payload — JSON data containing the results of its execution. Click any node and view the Payload tab to inspect it.

Inspecting a node payload

When configuring nodes, type {{ in expression fields to access payload data from upstream nodes.

Selecting payload data in expressions

Use {{}} to insert payload data into text fields, or write bare expressions in condition fields (If / Filter). See Expressions.

A single canvas can express multiple workflows depending on which trigger fires and which paths events take. Multiple runs execute simultaneously — the canvas updates in real-time as runs execute, with each node showing its current or most recent status.

Click any node to view its run history. Select a run item to see the full run chain showing all nodes that executed as part of that run.

  • Organize logically: Arrange related nodes together visually
  • Use clear node names: Make it easy to understand what each node does
  • Test incrementally: Build and test workflows step by step
  • Check for errors: Review run history and node status regularly

For more details on data flow, see Data Flow. For component details, see Component Nodes.