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.
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
- Execute + Data
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
| Port | Wire | Payload | Notes |
|---|---|---|---|
Inputinput | Execute + Dataexecute_data | — | Run trigger and primary string |
Bb | Datadata | — | Second argument (concat/contains/split etc.) |
Outputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Valueoutput | Execute + Dataexecute_data | object |
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
Operationoperation | string | concat | What to do with the incoming string. Options: |
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.