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
Toolbar
The toolbar provides quick access to essential flow editing functions:
Deploy Options
Click the dropdown arrow next to Deploy to access different deployment modes:
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
- 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
Drag & Drop
Drag a node from the palette and drop it on the canvas.
Quick Add
Double-click the canvas to open the quick-add search menu.
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:
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
- Click and hold on an output port (right side of a node)
- Drag the wire to an input port (left side of another node)
- 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.
📊 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+S | Save flow |
| Ctrl+D | Deploy changes |
| Ctrl+Z | Undo |
| Ctrl+Y | Redo |
| Ctrl+Shift+Z | Redo (alternative) |
Selection
| Ctrl+A | Select all nodes |
| Ctrl+Click | Add to selection |
| Escape | Deselect all |
| Delete | Delete selection |
| Backspace | Delete selection |
Clipboard
| Ctrl+C | Copy nodes |
| Ctrl+X | Cut nodes |
| Ctrl+V | Paste nodes |
| Ctrl+Shift+V | Paste in place |
Navigation
| Space+Drag | Pan canvas |
| Ctrl+Scroll | Zoom in/out |
| Ctrl+0 | Reset zoom to 100% |
| Ctrl+1 | Fit all nodes in view |
Import/Export
| Ctrl+I | Import flow |
| Ctrl+E | Export flow |
| Ctrl+Shift+E | Export selected |
Node Operations
| Double-click canvas | Quick add node |
| Double-click node | Open config |
| Enter | Open selected node config |
| Ctrl+Shift+D | Duplicate 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.