OpenFlow Protocol

Util Nodes

For Each Node

{
  id: "alphanumeric_underscore, 1-50 chars (required, unique node identifier)",
  type: "'FOR_EACH' (required, literal node type)",
  name: "string, 1-100 chars (required, display name)",
  config: {
    delay_between: "integer_milliseconds, 0-60000, default: 0 (optional, delay between iterations)",
    each_key: "variable_name, alphanumeric_underscore, default: 'current' (optional, iteration variable name)"
  },
  input: {
    items: "array or variable_reference, e.g., '{{previous_node.output.list}}' (required, items to iterate over)"
  },
  "each_nodes": "node_array, min 1 item (required, nodes to execute per iteration)"
  // Note : Access current iteration item with {{current}} or {{<each_key>}}
}
 

Behavior: Iterations execute sequentially like JavaScript forEach. If any iteration fails, the entire FOR_EACH stops and flow fails.

Variable Node

{
  id: "alphanumeric_underscore, 1-50 chars (required, unique node identifier)",
  type: "'UPDATE_VARIABLE' (required, literal node type)",
  name: "string, 1-100 chars (required, display name)",
  config: {
    type: "'join' | 'update' (required, operation type)",
    variable_id: "variable_identifier, alphanumeric_underscore, e.g., 'variable_3' (required, target variable)",
    join_str: "separator_string, e.g., '\n', ', ', ' | ', default: '' (optional, for join operations)"
  },
  value: "any_type or variable_reference, e.g., '{{id_of_the_node.output}}' (required, value to use in operation)"
}
 

Condition Node

{
  id: "alphanumeric_underscore, 1-50 chars (required, unique node identifier)",
  type: "'CONDITION' (required, literal node type)",
  name: "string, 1-100 chars (required, display name)",
  input: {
    switch_value: "any_type or variable_reference, e.g., '{{variable_id}}' (required, value to evaluate)"
  },
  branches:  { // branch_object_collection, min 1 branch (required, conditional execution paths)
    "case_name": {
      condition: "'equals' | 'not_equals' | 'greater_than' | 'less_than' | 'contains' (required, comparison operator)",
      value: "string | number | boolean | null, comparison target (required, expected value)",
      nodes: "node_array, min 1 item (required, nodes to execute when condition matches)"
    },
    default: {
      nodes: "node_array (optional, fallback nodes when no conditions match)"
    }
  }
}
 

Supported Condition Operators:

  • equals: Check if values are equal
  • not_equals: Check if values are not equal
  • greater_than: Check if switch_value > condition value (numbers)
  • less_than: Check if switch_value < condition value (numbers)
  • contains: Check if switch_value contains the condition value (strings/arrays)

On this page