Flow
Design automation visually by dragging nodes onto a canvas and wiring them together. Flows can listen to Axis events, apply logic and timing, call HTTP endpoints, and debug live data without coding.
Video Tutorials
Watch tutorials and demos on the Missing Features YouTube channel.
Multi-Flow Support
Flow now supports multiple flows with a browser-like tab interface. Each flow is independent and can be started/stopped individually.
Flow Tabs
| Action | How To |
|---|---|
| Switch Flow | Click on a tab |
| Add Flow | Click the + button (Edit Mode only) |
| Rename Flow | Double-click the tab name, or click the pencil icon |
| Delete Flow | Click the X button on a tab (requires at least 2 flows) |
- A green play icon indicates a running flow
- Flows can run simultaneously—start multiple flows for parallel automation
- Each flow has its own canvas, nodes, and execution state
Open the Flow Builder
- Launch the app UI and pick Flow from the feature list
- The last active flow loads automatically; switch tabs to access other flows
Device Management (for Flow)
- Add/edit devices once and reuse them across Flow nodes (Axis outputs, RTSP preview, HTTP image uploads, Vaxtor Cloud ANPR).
- Fields: Name, IP/Protocol/Port, RTSP port, username/password, auth type (digest/basic/none), channel, Non-video device flag, optional resolution list.
- Snapshots: nodes that send images pull a snapshot from the selected device; non-video devices will reject snapshot requests.
- Resolutions: if available, nodes can request a specific resolution; otherwise the default stream is used.
- If Axis passwords change, update the device entry; recreate Axis Output nodes if port mappings change.
Toolbars
Flow uses two toolbars for quick access to controls:
Top Toolbar:
- Start/Stop: Runs or stops the flow. Auto-saves before starting. Switches to live mode where editing is locked and edges animate.
- Save: Manually save the current flow. A toast notification confirms the save.
- Add Node: Opens the catalog. Drag a template to the canvas. Axis nodes open an extra dialog to pick ports or events before placement.
Bottom Toolbar:
- IO Table: Opens a live table listing every node with its inputs/outputs and current values (available in live mode).
- Fit to View: Reframes the canvas around all nodes.
- More Menu: Export/Import flow JSON, toggle Safe Mode, Helper Lines, Simple Edges, and set background color.
Canvas and Wiring
- Pan/Zoom: Drag the background to pan; use the mouse wheel to zoom.
- Select/Delete: Hold Shift and drag to multi-select; press Delete to remove selected nodes/edges.
- Edges: Hover to add bend points (yellow). Right-click a bend point to remove. Double-click an edge or click its small x to delete.
- Handles: Outputs on the right, inputs on the left. Shapes indicate type: round = bool, square = int/float, diamond = string. In live mode booleans glow green/red; int uses magenta, float uses purple, string uses cyan.
- Edge colors: Mirror the source output in live mode; turn gray in edit mode.
- Connections: Each input accepts a single connection. Mismatched data types are blocked (bool only to bool, string only to string, numeric to numeric). Safe mode shows warning toasts when a connection is rejected.
Node Properties and Actions
- Hover a node to show a toolbar for copy, delete, and disconnect all edges (disabled in live mode).
- Click a node in edit mode to open the right-side drawer:
- Rename Title/Sub Title, change Header Color, and rename inputs/outputs.
- Nodes with missing required data show an orange dotted border until fixed.
- Device pickers pull from Device Management (Flow); update devices there to refresh selectors.
- A small badge at the top-right shows the last execution time while running; a warning banner appears if the websocket reconnects.
Node Reference
Use Add Node to drag any template. Each entry lists what it does, its ports, and what you can configure.
For a complete, per-node breakdown covering every template in the catalog (inputs, outputs, tips, and dialog flows), see Flow Reference.
Axis and device
-
Axis Device Log
- What it does: Write a message to the Axis device syslog.
- Inputs:
Write(bool),Message(string).
-
Axis Metadata Event (Subscribe)
- What it does: Subscribe to Axis metadata events and expose fields as outputs.
- Inputs:
Enable. - Outputs:
Connected,Error,New Event, plus one output per Axis field; override inputs let you simulate values.
-
Axis Metadata Event (Create)
- What it does: Create a custom stateless Axis event on this device (visible in Axis rules while running).
- Inputs:
Sendplus user-added fields marked as Trigger (Source) or Data. - Outputs:
Error. - Properties: Event name; add/remove fields and choose their type/direction.
Warning
Axis Metadata Event (Create) nodes are only visible in the Axis event rule list while the flow is running.
-
Axis Live Stream
- What it does: RTSP video preview from an Axis device (live mode only).
- Properties: IP, port, username, password, channel. Shows connecting/error overlays and retries every 5 s on failure.
-
Axis Outputs
- What it does: Toggle Axis output ports via VAPIX.
- Inputs:
ENplus one input per discovered port. - Outputs:
Success,Status,Error. - Tip: Recreate the node if device credentials or port mapping change.
-
Vaxtor Cloud ANPR
- What it does: Captures a snapshot from the selected device and sends it to Vaxtor Cloud ALPR.
- Inputs:
Execute,Reset. - Outputs:
Success,Plate Found, plate fields (number, country, state, category, confidence), vehicle fields (make, model, color, class),Status,Error,Executedpulse. - Properties: Client ID/Secret, scope (api), token URL, API URL, timeout, device + optional resolution (from Device Management).
-
License Plates
- What it does: Matches detected plates against a whitelist with validity windows and per-tag outputs.
- Inputs/Outputs: Dynamic outputs per tag plus match info; configure plates, dates, tags, and deviation in the License Plate List feature.
Inputs and manual controls
- Enable Input - Always outputs
true. - Button - Outputs
truewhile pressed,falseon release (live mode).
Timing and pulses
- Debounce - Boolean filter; output changes only after the input is stable for the set time. Properties: unit (ms/s/m), amount.
- Edge Detection - Rising or falling edge detector; outputs a pulse.
- Pulse Buffer with Release - Buffers pulses until
Releasegoes true. Inputs:Set,Release,Clear. Property: buffer size. - Timer on Delay (TON) -
Activeturns true afterEnablestays true for the configured time; outputs elapsed time. - Timer off Delay (TOF) -
Activeturns true immediately on rising edge and stays true for the set time afterEnablegoes false. - Pulse Timer (TP) - Fixed-length pulse on each rising edge of
Enable; outputs elapsed time. - Pulse Generator - Periodic single-cycle pulse while
Enableis true. - Step Sequencer - Advances one step per
Steppulse; exactly one output is true. Property: steps (2-16). - Timed Sequenced - Runs timers in order while enabled, then wraps back to the first timer.
- Counter - Counts up/down on pulses;
Resetclears to zero.
Logic, selection, and math
- Boolean gates (AND, NAND, OR, NOR, XOR, XNOR, NOT) - Standard two-input gates (NOT is single-input).
- Compare - Compares
AandB(==, !=, >, <, >=, <=, contains, startswith, endswith). Properties: operator; data type (int/float/string); inputs reset to the chosen type. - Value Selector - Switch between two inputs with
Select(false = input 1, true = input 2). Property: shared data type. - Multiplexer - Route one of many value inputs to output based on numeric
Index. Properties: data type; add/remove value inputs; output also reports selected index. - Move - Pass
Valueto output whenEnableis true. - Math - Add/Subtract/Multiply/Divide
AandBwhenEnableis true. Outputs:Done,Result. Property: operation. - Advanced Math - ABS, SQRT, SIN, COS, TAN, SIGN on
ValuewhenEnableis true. Outputs:Done,Value. Property: operation. - Flip-Flop - Set/Reset latch. Properties: mode
RS(reset-dominant) orSR(set-dominant); input labels update automatically. - Value Latch - Stores the last value when
Setis true; holds untilReset. Property: data type syncs input/output. - Lua Script - Execute custom Lua against inputs/outputs; includes JSON/time helpers and preserves state between executions. Reserved error output fires on script/runtime failures.
Data, buffers, routing
- Queue First-In First-Out / Queue Last-In First-Out - Push while
Enableis true;Popreturns the next value;Resetclears. Outputs:Value,Has,Count. Properties: max size, data type. - Data Table - Multi-output register block; add/remove outputs and set data types.
- Routing helpers - Combine Value Selector, Multiplexer, and Move to branch, gate, or forward values unchanged.
Networking and parsing
- HTTP Request - Fires when
Enableis true;Resetclears state. Outputs:Success,Status,Body,Error. Properties: URL, method, body type (none/form/JSON/raw/XML), auth (none/basic/digest), headers, params, timeout, skip TLS verify. - JSON Key Extractor - On
Extract, pulls a key (dot notation allowed) from a JSON string;Resetclears. Outputs:Value,Found. Properties: key and output type. - JSON to Node - Splits a JSON object into individual outputs for each top-level key; configure keys and sample JSON for auto-generation.
- JSON Array Selector - Selects an array element by index from a JSON string; outputs the item JSON plus
Found/Processedflags. - TCP Server - Accepts raw TCP connections and converts each payload to a string. Outputs: a per-request
New Messagepulse, the latestMessage, and anErrorstring when listener failures occur. Properties: bind port, per-second rate limit and enable input. - TCP Message Sender - Sends the provided string payload to a configured host/port on every rising
Sendtrigger. Outputs a one-cycleSuccesspulse plusError. Properties assume a host/IP, port, and timeout. - Webhook Listener - Runs an HTTP or HTTPS endpoint (self-signed TLS) and exposes the request body plus any configured query params as outputs. Accepts Basic/Digest auth, enforces a 1‑15 rps rate limit, and always responds with
{"success":bool,"message":string}to guide clients. Outputs:New Request,Body,Error, plus one string output for each query parameter.
Debug and visualization
- Bool Debug Output - Large icon/label that follows the boolean state. Properties: icons, colors, labels for true/false.
- String Debug Output - Shows latest string input.
- Value Debug Output - Table of all input states (bool/int/float/string).
- Oscilloscope - Plots up to five signals. Properties: line colors, per-input data type, min/max ranges for numeric inputs.
- Logging - Live log viewer (level, time, node id/name, message) from the flow runtime.
- Text - Static label. Properties: text and size.
- Axis Live Stream - Also handy for visual debugging of video feeds.
- Speedometer - The Speedometer visualizes a numeric input value using a gauge-style dial.
Tips
- If a node shows an orange dotted border, open its properties and complete the required fields (URL, event name, etc.).
- Keep a Logging node in your flow to see backend messages when testing HTTP calls or Axis events.