Data, Arrays & Text nodes
The largest category — 68 nodes covering text manipulation, math, date arithmetic, comparisons, array operations, type casting, and sanitisation. Most are free tier. This is the "swiss army knife" category; you will use it in almost every workflow.
Text operations
| Node | Key | Tier | Notes |
|---|
| Compose text | data.text_render | free | Substitute {0}, {1}, … or named {key} placeholders with values. |
| Replace text | data.text_replace | free | Replace all occurrences of a literal string. |
| Split text | data.text_split | free | Divide by separator into a list. Empty separator splits by character. |
| Extract substring | data.text_substring | free | Substring from start (0-based), optional length. |
| Text length | data.text_length | free | Character count (multibyte-safe). |
| Trim | data.text_trim | free | Strip whitespace from both ends. |
| Uppercase | data.text_upper | free | |
| Lowercase | data.text_lower | free | |
| Capitalize | data.text_title | free | First letter of each word to uppercase. |
| Convert to slug | data.text_slug | free | Lowercase, hyphenated, URL-safe. |
| Summarize to N words | data.text_excerpt | free | Truncate to N words. |
| Strip HTML | data.text_strip_html | free | Remove all tags from HTML text. |
| Regex match | data.regex_match | free | Apply a PCRE pattern; exposes up to 5 captured groups as discrete output pins (g1...g5). |
| Extract with regex | data.regex_extract | pro | Return all matches of the pattern as an array. |
Math operations
| Node | Key | Tier | Notes |
|---|
| Add | data.math_add | free | left + right |
| Subtract | data.math_subtract | free | left - right |
| Multiply | data.math_multiply | free | left * right |
| Divide | data.math_divide | free | left / right (0 if right is 0) |
| Modulo | data.math_modulo | free | Remainder; fails on division by zero |
| Absolute value | data.math_abs | free | |
| Round up | data.math_ceil | free | |
| Round down | data.math_floor | free | |
| Round | data.math_round | free | Configurable decimal precision |
| Maximum | data.math_max | free | Largest from a list |
| Minimum | data.math_min | free | Smallest from a list |
Date operations
| Node | Key | Tier | Notes |
|---|
| Current date and time | data.date_now | free | Returns ISO-8601 (UTC) + Unix timestamp |
| Add to date | data.date_add | free | Add N seconds/minutes/hours/days/weeks/months/years |
| Difference between dates | data.date_diff | pro | Absolute difference in seconds |
| Format date | data.date_format | pro | Convert to formatted string with custom pattern |
Comparisons (condition nodes)
All condition nodes branch yes/no and are free tier:
data.equals, data.not_equals, data.greater_than, data.greater_or_equal, data.less_than, data.less_or_equal, data.between, data.contains, data.not_contains, data.starts_with, data.ends_with, data.contains_all, data.is_in, data.is_not_in, data.is_empty, data.is_not_empty, data.exists, data.not_exists, data.length_equals, data.matches_regex, data.is_after, data.is_before, data.logical_and, data.logical_or, data.logical_not, data.if_else.
Array operations
| Node | Key | Tier | Notes |
|---|
| Concatenate lists | data.array_concat | free | Join two lists in order |
| Count elements | data.array_count | free | |
| First element | data.array_first | free | |
| Last element | data.array_last | free | |
| Join elements | data.array_join | free | Join with separator |
| Normalize to list | data.array_normalize | free | Convert scalar/CSV/JSON to array |
| Reverse list | data.array_reverse | free | |
| Sublist | data.array_slice | free | Slice from start with optional length |
| Sum of elements | data.array_sum | free | Numeric sum |
| Take first N items | data.array_take | free | Top-N slice |
| Array contains value? | data.array_contains | pro | Branch condition |
| Filter array elements | data.array_filter | pro | Keep elements matching path operator value |
| Extract field from each | data.array_pluck | pro | Map over array elements |
| Sort array | data.array_sort | pro | Ascending; optional key path for objects |
| Remove duplicates | data.array_unique | pro | First occurrence kept; optional key dedup |
Type casting / conversion
| Node | Key | Tier | Notes |
|---|
| Convert to text | data.to_string | free | |
| Convert to number | data.to_number | free | Decimal |
| Convert to integer | data.to_integer | free | |
| Convert to boolean | data.to_boolean | free | |
| Encode JSON | data.json_encode | free | |
| Parse JSON | data.json_parse | pro | Exposes valid and errors output pins |
| Parse CSV | data.csv_parse | pro | Optional header row as column names |
| Encode for URL | data.url_encode | free | |
| Parse HTTP body | data.parse_body | free | Auto-detects Content-Type (json/form/multipart) |
Sanitisation
data.sanitize_email, data.sanitize_key, data.sanitize_text, data.sanitize_url — all free.
Other
| Node | Key | Tier | Notes |
|---|
| Default value if empty | data.default_if_empty | free | Fallback when input is empty |
| Format amount | data.money_format | pro | Two decimals + currency code |
| Iterate data source | data.iterate | pro | Fetch paginated page from a registered data source |