All nodes/Data/Operators

String Op

A string operation: concatenation, substring search, upper/lower case, trim, length, split by separator. The main string arrives on the «Input» port, the second argument on the «B» port.

String Op▶
InputValue
B

Type in the graph: string_op

Exec

An error output can be enabled to handle failures on their own path.

Ports can be split into separate execution and data handles.

Try it

Minimal working scenario

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
ValueoutputExecute + Dataexecute_dataobject

Configuration

FieldTypeDefaultDescription
Operationoperationstringconcat

What to do with the incoming string.

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.