Group / Folder Trigger
The dynamic fleet trigger. Binds a workflow to an entire hierarchy of devices (e.g., /Facility_A/Sensors/), automatically enrolling new clients as they are added to the platform registry.
Spec v1.1
Identity: Group
Port Overview
No input ports
Entry point node — listens to all signals in a registry subtree.
Group Trigger
Trigger
Output ports
onEvent
Node Properties
Configuration for the targeted registry folder. Any client within this path (and sub-paths) will initiate a workflow instance when it publishes data.
GroupClientTrigger
Identity Target
| Property | Type | Default | Description |
|---|---|---|---|
| groupPath | string | required | The registry path to watch (e.g., /Factory_1/HVAC/). Supports recursive matching. |
| includeSubgroups | bool | true | If true, clients in deeper nested folders will also trigger this node. |
Instance Strategy
| Property | Type | Default | Description |
|---|---|---|---|
| correlationExpression | expression | $.client_id | Required. Used to extract the specific Client ID from the incoming stream to map it to its own instance. |
| onMatch | enum | MapOrCreate |
MapOrCreate — (Genesis) Spawns a new instance for every new client detected in the folder.MapOrDiscard — (Signal) Only updates existing instances. Useful for bulk-monitoring specific active groups.AlwaysCreate — Not recommended (spawns unlinked parallel flows for every message).MapOrReplace — Resets the individual client's digital twin state on every signal.
|
Zero-Touch Scaling
Group triggers eliminate the need to update workflows when adding hardware. By organizing devices into folders (e.g., /Region/Site), your logic automatically scales to new sensors as soon as they are registered by the field technician.
Port Detail
Releases the payload enriched with specific client location and path metadata.
Output ports
onEvent
signal
Fires when any client within the folder path publishes data.
// Written to WorkflowContext[nodeId]:
{
"payload": { "vibration": 0.42 },
"client": { "id": "motor_22", "path": "/Factory/Line_1/Motors", "tags": [] }
}
{
"payload": { "vibration": 0.42 },
"client": { "id": "motor_22", "path": "/Factory/Line_1/Motors", "tags": [] }
}