session-trigger (Processing Node)
The session-trigger node reprocesses a target node in another session based on metadata matching rules.
Use this node to propagate updates from a source session (for example, an individual user session) into another session (for example, a profile or collective session) by triggering reprocessing on a specific node.
Configuration Schema
| Property | Type | Required | Description |
|---|---|---|---|
target-node | string | Yes | Node name in the matched target session to reprocess. |
searchCriteria | object | Yes | Criteria used to locate the target session. Must contain session and expression. |
searchCriteria fields:
| Field | Type | Required | Description |
|---|---|---|---|
session | string | Yes | Target session name to search for in the project. |
expression | string | Yes | JMESPath expression applied to target session metadata_raw to extract comparison value. |
How it works
At runtime, the processor:
- Reads latest upstream inputs and expects dashboard payload under key
dashboard. - Parses dashboard JSON and reads
dashboard_users. - Lists sessions in the current project.
- Filters sessions whose
nameequalssearchCriteria.session. - Parses each candidate
metadata_rawJSON. - Evaluates
searchCriteria.expressionagainst metadata. - When a match is found, loads node instances for that session and finds
target-node. - Calls
reprocess_nodeon the first matching node instance and returns:{"reprocessed_node_id": "<node-instance-id>"}.
Intended cross-session usage
Typical pattern:
- Source session: per-user session emits dashboard payload.
- Target session: profile-level or collective session holds a node that should refresh when user data changes.
session-triggerbridges them by selecting the target session and forcing reprocessing ontarget-node.
Runtime behavior and caveats
- Fails when dashboard input is missing.
- Fails when
dashboard_usersis missing in parsed dashboard payload. - Fails when exceptions occur during lookup or reprocess flow.
- If no matching node instance is found in the target session, it logs and continues scanning.
- If no match is found, it returns
Nonewithout reprocessing.
Current implementation details to be aware of:
- Input lookup is currently hard-wired to
input_map.get("dashboard"). - Matching compares
searchCriteria.expressionresult withdashboard_usersvalue from payload. - Validation enforces
target-nodestring,searchCriteriaobject withsession/expression, and valid JMESPath syntax.
Example configuration
{
"target-node": "profile-aggregator",
"searchCriteria": {
"session": "user-profile-session",
"expression": "user.externalId"
}
}Integration in a session template
- Place
session-triggerafter a node that produces dashboard JSON includingdashboard_users. - Configure
searchCriteria.sessionto the target session name. - Configure
searchCriteria.expressionto extract the comparison key from target session metadata. - Set
target-nodeto the node name you want to reprocess in the matched session.