Skip to main content

Flow Editor

Complete guide to the EdgeFlow visual flow editor

The Flow Editor is the heart of EdgeFlow where you design, build, and test your automation workflows. This guide covers every aspect of the editor interface and its powerful features.

Editor Interface

My Flow
| 📋 📄 | 📥 📤
▶ Deploy ▼
▾ Input
inject
schedule
mqtt in
▸ Output
▸ Function
▸ Logic
▸ GPIO
Every 30s
ƒ Transform
🐛 Debug
100%
Debug Monitor Terminal
10:23:45 Debug msg.payload: 23.5
10:23:15 Debug msg.payload: 22.8
1 Toolbar - Flow actions and deploy controls
2 Node Palette - Draggable node library
3 Flow Canvas - Visual workspace
4 Debug Panel - Output and monitoring

Toolbar

The toolbar provides quick access to essential flow editing functions:

Button Name Description Shortcut
Back Return to workflows list -
Undo Undo last action Ctrl+Z
Redo Redo undone action Ctrl+Y
📋 Copy Copy selected nodes Ctrl+C
📄 Paste Paste copied nodes Ctrl+V
📥 Import Import flow from JSON file Ctrl+I
📤 Export Export flow to JSON file Ctrl+E
▶ Deploy Deploy Deploy flow changes to runtime Ctrl+D

Deploy Options

Click the dropdown arrow next to Deploy to access different deployment modes:

🔄

Full Deploy

Stops all flows and redeploys everything. Use when you need a clean restart.

🎯

Modified Nodes

Only redeploys individual nodes that changed. Most granular option.

Node Palette

The Node Palette on the left side contains all available nodes organized by category. Drag nodes from here onto the canvas to add them to your flow.

Node Categories

Input

Trigger and receive data: inject, schedule, mqtt-in, http-webhook, gpio-in

Output

Send and display data: debug, mqtt-out, http-response, gpio-out

Function

Process data: function, change, split, join, trigger, range

Logic

Control flow: switch, if, delay, rate-limit

GPIO

Hardware access: gpio-in, gpio-out, pwm, i2c, spi

Sensors

Read sensors: dht, ds18b20, bmp280, pir, hcsr04

Database

Data storage: sqlite, postgresql, mysql, mongodb, redis

Messaging

Notifications: telegram, email, slack, discord

AI

AI integration: openai, anthropic, ollama

Dashboard

UI widgets: chart, gauge, button, slider, table, form

Searching Nodes

Use the search box at the top of the palette to quickly find nodes by name or type. The search filters across all categories in real-time.

Flow Canvas

The canvas is your visual workspace where you design automation flows by placing and connecting nodes.

Canvas Navigation

Grid and Snapping

Nodes automatically snap to a 15-pixel grid for clean alignment. The grid helps you create organized, professional-looking flows.

Canvas Controls

100%
  • Zoom Out (−) - Decrease zoom level
  • Zoom Level - Current zoom percentage (click to reset to 100%)
  • Zoom In (+) - Increase zoom level
  • Fit (⛶) - Fit all nodes in view
  • Lock (🔒) - Lock canvas to prevent accidental edits

Working with Nodes

Adding Nodes

1

Drag & Drop

Drag a node from the palette and drop it on the canvas.

2

Quick Add

Double-click the canvas to open the quick-add search menu.

3

Context Menu

Right-click the canvas and select "Add Node" from the menu.

Selecting Nodes

  • Single select - Click on a node
  • Multi-select - Hold Ctrl and click nodes, or drag a selection box
  • Select all - Press Ctrl+A
  • Deselect - Click on empty canvas space

Moving Nodes

Click and drag nodes to reposition them. Selected nodes move together. Nodes snap to the grid automatically.

Configuring Nodes

Double-click a node to open its configuration dialog:

Configure: Function Node
msg.payload = msg.payload * 2; return msg;

Deleting Nodes

Select one or more nodes and press Delete or Backspace. You can also right-click and select "Delete" from the context menu.

Connections (Wires)

Connections (wires) link nodes together to define how messages flow through your automation.

Creating Connections

Source
Drag from output to input
Target
  1. Click and hold on an output port (right side of a node)
  2. Drag the wire to an input port (left side of another node)
  3. Release to create the connection

Connection Rules

Output → Input (different nodes)

Input → Output (wrong direction)

Node → Same Node (self-loop)

One output → Multiple inputs (fan-out)

Deleting Connections

Click on a wire to select it (it will highlight), then press Delete. You can also right-click the wire and select "Delete".

Debug Panel

The Debug Panel at the bottom of the editor shows real-time output from your flows and provides monitoring tools.

Panel Tabs

🐛 Debug

Shows output from Debug nodes in your flows. Each message displays the timestamp, source node, and payload data. Messages are color-coded by type.

10:45:23.456 Temperature msg.payload: 23.5
10:45:20.123 Threshold Warning: High temperature

📊 Monitor

Real-time monitoring of flow and node status. Shows execution counts, connection states, and WebSocket client information.

💻 Terminal

Command-line interface for advanced operations. Execute commands to inspect flow state, trigger nodes manually, or run diagnostics.

Panel Controls

  • Toggle (▼/▲) - Collapse or expand the panel
  • Clear - Clear all debug messages
  • Filter - Filter messages by node or content
  • Pause - Pause message updates (useful for inspecting)
  • Resize - Drag the top edge to resize panel height

Keyboard Shortcuts

General

Ctrl+SSave flow
Ctrl+DDeploy changes
Ctrl+ZUndo
Ctrl+YRedo
Ctrl+Shift+ZRedo (alternative)

Selection

Ctrl+ASelect all nodes
Ctrl+ClickAdd to selection
EscapeDeselect all
DeleteDelete selection
BackspaceDelete selection

Clipboard

Ctrl+CCopy nodes
Ctrl+XCut nodes
Ctrl+VPaste nodes
Ctrl+Shift+VPaste in place

Navigation

Space+DragPan canvas
Ctrl+ScrollZoom in/out
Ctrl+0Reset zoom to 100%
Ctrl+1Fit all nodes in view

Import/Export

Ctrl+IImport flow
Ctrl+EExport flow
Ctrl+Shift+EExport selected

Node Operations

Double-click canvasQuick add node
Double-click nodeOpen config
EnterOpen selected node config
Ctrl+Shift+DDuplicate selection

Tips & Best Practices

💡

Use Descriptive Names

Give your nodes meaningful names that describe their purpose. Makes debugging much easier.

🔀

Keep Flows Simple

Split complex logic into multiple flows. Use Link nodes to connect them.

🐛

Debug Liberally

Add Debug nodes at key points during development to inspect message flow.

📝

Add Comments

Use Comment nodes to document complex logic for future reference.

💾

Save Often

The editor auto-saves, but manually save before major changes.

📤

Export Backups

Export your flows regularly as JSON backups before deploying changes.