Skip to Content
BuildAction StepsSplit Text

Split Text

Split Text cuts a string at a delimiter and returns one segment or the full list.

At a glanceVerified in app · Oct 29, 2026
Use it to
Split a string on a delimiter and return a specific segment or a list of all pieces
Find it
Tools → Data → Convert → Split Text
Cost
1 Step credit per execution
Output
Selected segment string or full list via {{ N.$full_result }}
Instead
Inline pipe ({{ 1.text | split }}, {{ 1.text | before:" " }}, {{ 1.text | first_line }})

Use it when something arrives as one line, like "enterprise, b2b, high-priority", and you need the parts separately. Or when you want one piece out of the middle: the domain from an email address or the final part of a space-separated label.

Quick extractions without an extra step: If you only need a single slice or quick domain/list split, you can do it directly inside field tokens with Data Transformation:

  • Domain from email: {{ 2.email | extract_domain }}
  • Text after the first space: {{ 2.name | after:" " }}
  • Split to list: {{ 2.tags | split:comma_space }}

Use the Split Text step when you need to pass an entire list of pieces to downstream canvas steps (like a Loop).

Keyboard shortcut: t+s

Setting it up

Three fields, all required.

Input

The text you want to cut. Pick it from an earlier step with the data picker.

Separator

The character or word to cut on. A comma, a single space, \n for line breaks.

A separator beginning with / is evaluated as a regular expression to identify the delimiter string. When delimiters vary across the input, normalize them first with an inline | replace pipe or Code editor.

Segment Index

Which piece you want back. This is the field that decides whether you get one piece or all of them:

ChooseYou get
FirstEverything before the first separator
SecondThe second piece
LastEverything after the final separator
Second to LastThe piece before the last one
AllEvery piece, as a list

Custom numeric indexes count from zero: 3 selects the fourth piece. Negative indexes count back from the end, so -2 selects the second-to-last piece. Prefer the named choices for First and Last.

Pick All when you want to loop over the pieces. The named options each return a single piece of text, which is what you want for “the domain” or “the final segment”. For “do something with each tag”, choose All and point a looping step at the result.

What it passes on

The Step returns the piece you asked for, or the list of pieces with All, directly. If the separator is not found, it returns the original text even with All selected. Use {{ 4.$full_result }} for the whole value from Step 4, and check that it is a list before giving it to a loop:

{{ 4.$full_result }}

Run it once and read the step’s Executions tab for the exact shape before you build on it; that is quicker than reasoning it out.

Examples to copy

Every tag from one field

A CRM sends a contact’s tags as "enterprise, b2b, high-priority" and you want to act on each.

FieldValue
Inputthe tags field
Separator, (comma, space)
Segment IndexAll

Cutting on comma-and-space rather than the comma alone keeps a leading space off every piece after the first. " b2b" and "b2b" are different text, and a later Filter matching on b2b would miss the first form.

Then turn on Run for each item on the next step and point it at this one. See Loops & Iteration.

A surname from a full name

For a controlled two-part example such as "Ada Lovelace", the final space-separated piece is "Lovelace".

FieldValue
Inputfull_name
Separatora space
Segment IndexLast

Last selects the final piece, not a verified surname. Names can contain multiple words or follow different ordering conventions. When the distinction matters, collect a separate surname field rather than infer it by splitting.

The domain from an email address

FieldValue
Inputthe address
Separator@
Segment IndexLast

Useful in front of a Conditions step that routes by company.

Verify it works
Run
Set Input to a comma-separated string, Separator to ", ", Segment Index to All, and click Run step
You should see
Executions shows a JSON array of trimmed segments that you can reference with {{ N.$full_result }} or pass into a loop.

What’s Next?

Last updated on

Search documentation

Start with a guide, or search by Step, task or error.