All nodes/Data/Operators

String Op

A string operation: concatenation, substring search, upper/lower case, trim, length, split by separator. The main string is the data leg of the «Input» port (ED), the second argument comes via the «B» port.

String Op
InputResult
B

Type in the graph: string_op

Exec

An error branch can be enabled (expose_error_output) to handle failures on their own path.

Ports can be split into separate execution and data handles.

Try it

Minimal working workflow

Entry
String Op
Exit
  • Execute + Data
Press “Copy nodes”, open the editor and hit Ctrl+V on the canvas.

Runs as pasted

When to use it

One string operation as a step of its own: trim whitespace, lowercase, split by a separator, test for a substring, measure length.

When the job is to assemble text out of several values, use Template: the substitutions live in one field there and read far better than a chain of three concatenations. This node wins when the result is needed as a value — for a comparison, for writing into a variable, for branching with If / Else.

How it works

The primary string is whatever arrived on the “Input” port, which also triggers the step. The second argument — what to append, what to look for, what to split on — arrives on the “B” port.

Both sides are converted to text, so a number or an object becomes its textual form. What comes back depends on the operation: concat, case changes and strip return a string; “Contains”, “Starts with” and “Ends with” return true or false; “Length” returns a number; “Split by separator” returns a list you can feed into For each. With the “B” port unconnected, splitting falls back to whitespace.

Common mistakes

  • Argument order in “Contains”. The check is whether b occurs inside a, so the needle goes into “B”, not the other way round.
  • Case matters. Lowercase both sides in separate steps before searching.
  • An empty input is not an error. The node happily works on an empty string: concat returns just “B”, length returns zero. And a value that arrived empty over the wire becomes the text None — enough to make the comparison below answer in a way you did not expect.
  • “Length” measures text, not items. A list is turned into a string first, and you get the length of that string.
  • Something has to trigger the node. A constant or a variable wired only into “B” triggers nothing: with no incoming edge on “Input” the step stays un-run, with the reason “Nothing could trigger it: no incoming link”.

Inputs

PortWirePayloadNotes
InputinputExecute + Dataexecute_data

Run trigger and primary string

BbDatadata

Second argument (concat/contains/split etc.)

Outputs

PortWirePayloadNotes
ResultoutputExecute + Dataexecute_dataobject

Configuration

FieldTypeDefaultDescription
Operationoperationstringconcat

Options: concat — Concat (a + b), contains — Contains (a contains b), startswith — Starts with, endswith — Ends with, upper — Uppercase (a), lower — Lowercase (a), strip — Strip whitespace (a), len — Length (a), split — Split by separator (b)

Shared fields

Every node has these three — the platform adds them, not the node author.

  • expose_error_output — When enabled, show an execution output to connect nodes that run if this step fails.
  • split_ports_in — Show separate execution and data input handles instead of one combined port.
  • split_ports_out — Show separate execution and data output handles instead of one combined port.