Logic Nodes
The backbone of your flows. Logic nodes transform data, route messages, implement conditional branching, and control timing. Master these nodes to build powerful automations.
function
CoreWrite custom JavaScript code to transform messages and implement complex logic.
Configuration
{cfg.key} string JavaScript function body {cfg.key} number Number of outputs (1-10) {cfg.key} string Setup code (runs once) {cfg.key} string Cleanup code (on redeploy) Output Example
{node.details.output} switch
CoreRoute messages to different outputs based on property values or expressions.
Configuration
{cfg.key} string "msg.payload" or expression {cfg.key} array Array of conditions {cfg.key} boolean Check all or stop at first {cfg.key} boolean Reassemble sequences Output Example
{node.details.output} change
CoreSet, change, delete, or move message properties without code.
Configuration
{cfg.key} array Array of change operations {cfg.key} string "set" | "change" | "delete" | "move" {cfg.key} string Target property path {cfg.key} any New value or expression Output Example
{node.details.output} delay
Delay messages or rate-limit throughput for controlled processing.
Configuration
{cfg.key} string "delay" | "rate" | "queue" {cfg.key} number Delay duration {cfg.key} string "milliseconds" | "seconds" {cfg.key} number Messages per time period Output Example
{node.details.output} filter
Filter messages based on conditions, remove duplicates, or sample data.
Configuration
{cfg.key} string "rbe" | "deadband" | "narrowband" {cfg.key} string Property to monitor {cfg.key} number Deadband threshold {cfg.key} any Initial value state Output Example
{node.details.output} sort
Sort message sequences by property value or custom comparison.
Configuration
{cfg.key} string Property to sort by {cfg.key} string "msg" | "jsonata" {cfg.key} string "ascending" | "descending" {cfg.key} boolean Treat as numbers Output Example
{node.details.output} batch
Group messages into arrays for bulk processing and database inserts.
Configuration
{cfg.key} string "count" | "interval" | "concat" {cfg.key} number Messages per batch {cfg.key} number Time window in seconds {cfg.key} number Sliding window overlap Output Example
{node.details.output} Common Flow Patterns
Route by Type
Use switch → function to route messages by type, then process each with specialized logic.
Filter & Batch
Use filter → batch → database to filter valid readings, batch them, then bulk insert.
Transform & Delay
Use change → delay → output to transform format, rate-limit, then send notifications.
Aggregate Data
Use batch → function to collect readings, then calculate averages or totals.
More Logic Nodes
if
Conditional branching
function-node
Custom JavaScript code
exec
System command execution
python
Python script execution
template
Mustache template rendering
range
Scale/map numeric ranges
split
Split messages
join
Join message sequences
catch
Error handling
status
Monitor node status
complete
Completion triggers
set
Set/delete properties
link-in
Virtual wiring receiver
link-out
Virtual wiring sender
trigger
Delayed trigger patterns
rbe
Report by exception
comment
Flow annotation
base64
Base64 encode/decode
compress
Data compression
encrypt
AES encryption
hash
Cryptographic hashing
math
Mathematical operations
regex
Regular expressions
statistics
Statistical analysis
rate-limit
Rate limiting
json-parser
JSON parse/stringify
xml-parser
XML parse/stringify
csv-parser
CSV parse/stringify
yaml-parser
YAML parse/stringify
html
HTML CSS selectors