New: the AI firewall watches every module and explains each incident in plain words. See how it works

Flows

What flows are, the IoT and General hosts, how flows relate to alarm rules and the Rules card, who may build them, and the pages of this section.

A flow is a chain of blocks on a canvas. A trigger starts it with a message; blocks then check, route, transform, store, wait and act. Flows are Hermetry’s most flexible automation tool: they store your device data, compute derived values, call outside systems, send notifications and commands, and react to schedules, webhooks and events.

You build flows under Automation. Each flow is edited as a draft and runs only after you Deploy it; every deploy is a numbered version you can roll back to.

What flows do in Hermetry

JobHow
Store device dataThe root flow receives every device message and saves telemetry and attributes. Only flows store data.
Evaluate alarm rulesThe root flow’s Alarm rules block runs the device profile’s alarm rules.
Derive valuesBlocks between the device message and Save telemetry compute new keys.
IntegrateHTTP request, MQTT out and Webhook blocks send data out; a Webhook trigger takes data in.
ReactTriggers on schedules, alarms, attribute changes, named timers and events start work.
Tell people and devicesNotify, Raise alarm, Send command and Set shared attribute blocks.

Hosts

Every flow belongs to one host, chosen when you create it and never changed:

HostShown asReceivesTypical flows
IoTIoTDevice messages, alarms, attribute changes, plus schedules, webhooks and eventsThe root flow, profile root flows, alarm escalations, integrations of device data
GeneralGeneralSchedules, webhooks, events and other flows’ messagesIntegrations and jobs that do not work on a device’s message

The host decides which blocks you can use: the device blocks (Save telemetry, Send command, Raise alarm …) exist only on the IoT host. See Hosts, the root flow and profile root flows.

Flows, alarm rules and the Rules card

ToolBest forBuilt where
Alarm rulesThresholds and conditions on a device profile’s readings, with debounce, hysteresis and notificationsThe device profile’s Alarm rules tab. Alarm rules on device profiles
Rules card“When this happens, do that” for operators: commands, settings, notifications, Manual and Auto modesA dashboard’s Rules card. The rules engine
FlowsEverything else: transforming and storing data, integrations, logic that the other two cannot expressAutomation

A Rules-card rule runs as a flow too. It appears in the flow list with a Built by badge and opens read-only; change it on the Rules card, or Detach into an ordinary flow to edit it here (this cannot be undone). See Flows in the alarms section.

Who may do what

PermissionDefault roleAllows
View flows and the node catalogAdminOpen the flow list and the editor read-only
Create, edit and deploy flowsAdminEverything to build and deploy flows, import and export
Deploy flows with control-level nodesAdminDeploy flows with blocks that control devices or other flows
Inject messages, see payloads and dead lettersAdminSee message contents, debug, test from live state, replay failed messages
Call session-auth webhooks of deployed flowsUserStart a flow from a dashboard control or app page through a session webhook

See Permissions reference.

Messages

Blocks pass messages. The fields you use most:

FieldHolds
msg.payloadThe data: a device’s readings, a webhook’s body, a schedule’s tick
msg.topicA short label; many blocks key their memory on it
msg.metadataFacts about the message: deviceId, deviceName, profileName, msgType, ts (receive time), recordTs (reading time) and more. Never stored.
msg.msgTypetelemetry, attributes, connect, alarm … Read-only.
msg.originatorWho the message is about: a device, the organisation or the flow. Read-only.

Values in block settings can be fixed values, paths such as msg.payload.level, expressions, or {{ }} templates. See Condition blocks.

In this section

PageWhat it covers
The flow editorCanvas, palette, wiring, block settings, saving and deploying
Hosts, the root flow and profile root flowsWhere device messages go and how data is stored
Versions, testing and rollbackDrafts, versions, the test runner, rollback, import and export
Protections and failed messagesAutomatic pauses, the emergency stop, failed messages and alerts
Flow templatesReady flows to start from
Flow limitsPlan limits and fixed limits
Trigger blocksWhat starts a flow
Condition blocksYes/no tests, and the expression language
Routing and timing blocksSwitch, gate, split, join, delay, rate limit …
Data transform blocksChange, calculate, template, JSON, CSV, bytes …
Counters, statistics and watchdogsBlocks that remember
The script blockJavaScript in a flow
Action blocksHTTP, MQTT, webhooks, events, variables, timers, other flows, logging
IoT data blocksSaving telemetry and attributes, alarm rules, enrichment
Alarm, command and notify blocksAlarms, device commands, device requests, notifications
Connections and secretsMQTT brokers and HTTP endpoints
Flow cookbookReady-to-build flows
Troubleshooting flowsFinding out what a flow did