Skip to main content
Version: 2.0
Smart Connector node configuration

Smart Connector Node

Smart Connector Node

Overview

The Smart Connector Node is a dynamic connector that decides which connection and which function to use at runtime based on pipeline data.
Instead of hard-coding a single connection profile and function in the node configuration, you provide expressions that resolve to the right connection and function for each execution, with optional caching for high performance.

This makes Smart Connector ideal for:

  • Multi-tenant routing where each tenant has its own connection profile.
  • Conditional system selection (premium vs. standard processors).
  • Dynamic protocol or data-source selection (PLC vs. MQTT vs. REST) using a single node.

Configuration Reference

Parameters Tab

ParameterTypeDefaultRequiredConstraintsDescription
Lookup Modeselect"name"Noname / idname: Resolve by display name. id: Resolve by UUID.
Connection Identifierstring""YesExpression or literalConnection name/ID or expression.
Function Identifierstring""YesExpression or literalFunction name/ID or expression.
ArgumentsJSON{}NoValid JSON with optional expressionsArguments to pass to the resolved function.

Expression Examples

  • Connection identifier:
    • {{$node["Route"].targetConnection}}
    • {{$node["Route"].tenantId}}-database
    • {{$item.connectionName}} (inside a For Each loop)
  • Function identifier:
    • {{$node["Route"].targetFunction}}
    • {{$node["Route"].amount > 10000 ? "process-premium" : "process-standard"}}
    • {{$item.functionName}} (inside a For Each loop)
  • Arguments object (JSON editor):
{
"orderId": "{{$node["Prepare Order"].orderId}}",
"amount": "{{$node["Prepare Order"].amount}}",
"currency": "{{$node["Prepare Order"].currency || 'USD'}}"
}

Settings Tab

SettingOptionsDefaultDescription
Timeout (seconds)numberPipeline defaultMaximum execution time for this node (1-600).
Retry on TimeoutPipeline Default / Enabled / DisabledPipeline DefaultWhether to retry on timeout.
Retry on FailPipeline Default / Enabled / DisabledPipeline DefaultWhether to retry on failure. When Enabled, shows Advanced Retry Configuration.
On ErrorPipeline Default / Stop Pipeline / Continue ExecutionPipeline DefaultBehavior when node fails after all retries.

Advanced Retry Configuration (only visible when Retry on Fail = Enabled):

FieldTypeDefaultRangeDescription
Max Attemptsnumber31-10Maximum retry attempts.
Initial Delay (ms)number1000100-30,000Wait before first retry.
Max Delay (ms)number1200001,000-300,000Upper bound for backoff delay.
Multipliernumber2.01.0-5.0Exponential backoff multiplier.
Jitter Factornumber0.10-0.5Random jitter.

Usage Examples

Single Pipeline for Multiple Connections (For-Each + Smart Connector)

In many production scenarios you maintain a list of connections and functions (for different lines, machines, or tenants). Instead of adding many static connector nodes to the pipeline, you can:

  • Use a For-Each Loop node that iterates over the list.
  • Place one Smart Connector node inside the loop.
  • Let Smart Connector resolve the correct connection and function for each item at runtime.

Assume the incoming payload to the For-Each Loop looks like:

{
"connections": [
{ "connectionName": "line-1-plc", "functionName": "target-function", "payload": { "line": 1 } },
{ "connectionName": "line-2-plc", "functionName": "target-function", "payload": { "line": 2 } }
]
}

Configure the For-Each Loop to iterate over connections. Each iteration exposes the current item as $item.

FieldValue
Lookup Modename
Connection Identifier{{$item.connectionName}}
Function Identifier{{$item.functionName}}
Parameters{{$item.payload}}

With this pattern:

  • You keep a single pipeline definition instead of duplicating many connector nodes.
  • Adding a new connection is as simple as updating the list (for example via an upstream node or configuration).
  • The rest of the pipeline can remain the same, regardless of how many connections you have.

Best Practices

  • Prefer name mode while designing and validating pipelines; switch to ID mode later for ultra-low latency when IDs are readily available.
  • Keep expressions simple and readable; complex routing logic can be extracted to upstream nodes (e.g., Data Instance or JavaScript) that compute a targetConnection or targetFunction.
  • Combine Smart Connector with Condition, For-Each Loop, or Data Instance nodes to build powerful, dynamic routing and transformation flows with minimal duplication.