Data transformation
These nodes reshape, parse, calculate and check data. Expressions only look values up, so any computation belongs in one of these nodes, in a Set node, or in Code.
In the palette, most of these sit under Data Storage; Code, Date & Time and Encryption & Hashing sit under Developer Tools. All of them have one input and one output port unless the entry says otherwise. For files, spreadsheets, documents and media, see Files & documents.
Data Transform
What: Applies an ordered list of transformation rules to each item.


Configuration: transformations (required). Each entry is {operation, source, target, value, condition, options}.
| Operation | What it does |
|---|---|
map, rename |
Copy or rename fields |
convert |
Change a field's type |
concat |
Join several fields into one, with a separator |
split |
Split a string into a list |
replace, extract |
Replace text, or extract it with a regex |
format |
Format a value |
calculate |
Simple arithmetic between fields |
aggregate |
sum, count, average, min or max over a list of numbers |
filter, sort, group, flatten |
Work on lists |
validate, clean |
Check or tidy values |
source and target are dot paths into the incoming item. Results are written at the root of the output.
Example: keep only products in stock.
{
"transformations": [
{
"operation": "filter",
"source": "response.body.items",
"target": "inStock",
"filterCondition": { "field": "item.stock", "operator": "greaterThan", "value": 0 }
}
]
}Notes:
- In
filter, the condition'sfieldmust start withitem.. Its operators areequals,notEquals,contains,greaterThanandlessThan. calculateonly adds{field}references together and returns 0 for anything else. Use Code for real arithmetic.formatwith a date type always writes ISO 8601. Use Date & Time or Code for other date formats.- A misconfigured rule fails the node with a clear message instead of passing data through unchanged.
Code
What: Runs your own JavaScript, Python or Dart. Use it when the no-code nodes can't express what you need. In the palette it sits under Developer Tools.


Ports: in input; out output, error.
Configuration:
| Field | Notes |
|---|---|
language |
javascript (default for new nodes), python or dart. A node saved without a language runs as Dart, so set it explicitly. |
mode |
runOnceForAllItems (default) or runOnceForEachItem |
code |
The script |
timeoutSeconds |
Default 30 |
passThrough |
Default on: the returned object is merged on top of the incoming item, and a script with no return passes its input on unchanged. Off: the output is exactly what the script returns. |
What the script can read:
input: the list of incoming items. In per-item mode the list holds one item, so readinput[0]in both modes.- Expressions: a
{{ … }}block in the code is passed to the script as a value, never pasted in as program text. A quote or a line break in the data cannot break your script. The<>icon in the code editor inserts a reference for you.
Example (JavaScript):
const orders = input[0].response.body.orders;
return { orders: orders.map(o => ({ id: o.id, total: o.amt * 1.1 })) };Limits and behaviour:
- Code runs in an isolated environment, separate from the rest of Flero, with no access to your credentials. Each run has 256 MB of memory and is stopped at its timeout.
- Code can reach the internet. Real HTTP calls are real, even in a test run.
- Third-party packages are available only if your administrator has installed them.
- Items that fail go to the
errorport with the error type, message and stack trace. The node counts as failed only when every item failed.
Data Parser
What: Parses, stringifies, transforms, validates or queries JSON, CSV, XML, YAML and TOML.


Configuration: operation (parse default, stringify, transform, validate, query), format (json default, csv, xml, yaml, toml), input (required), query.
Text Processing
What: Text operations: regex, sentiment, diff, tokenise, sanitise and extract.
Configuration: operation (required: regex, sentiment, diff, tokenize, sanitize, extract), input (required), pattern, replacement, compareWith, caseSensitive (default on).
For upper case, lower case and trimming, use the Set node's global transforms.
Template
What: Renders a text or HTML template, with loops and conditional sections, from your data.


Configuration: template (required), format (text default, or html), data, strict (default off), outputField (default rendered).
Use when: Building an email body, a report or an HTML snippet from several fields.
Query Data
What: Runs SQL (SQLite dialect) over the items in the workflow. Items on the main input are the table items; items on the join input are the table joined.


Ports: in input, join; out output.
Configuration: sql (required), maxRows (default 10 000), emptyResultIsError (default off).
Example:
SELECT customer, SUM(total) AS spend
FROM items
GROUP BY customer
ORDER BY spend DESCExpressions in the SQL are passed as query values, not pasted into the statement.
Date & Time


What: Parses, formats, adds, subtracts, diffs and converts dates; counts business days; returns the current time.
Configuration:
| Field | Notes |
|---|---|
operation |
Required: parse, format, add, subtract, diff, convert, businessDays or now |
input |
The date to work on |
outputFormat |
iso8601 (default), timestamp, date, time or datetime |
amount, unit |
For add and subtract. Units: seconds, minutes, hours, days (default), weeks, months, years. |
targetTimezone |
For convert |
Encryption & Hashing
What: Hash, encrypt, decrypt, sign, verify, encode and decode.
Configuration: operation (required), algorithm (default sha256), input (required), key, encoding (hex default, or base64).
Tip: Don't type keys into the node. Store them as a secret workspace variable and reference it with {{ $env.SIGNING_KEY }}.
PII Masking
What: Finds personal data and masks it, replaces it with reversible tokens, or reports it.


Configuration:
| Field | Notes |
|---|---|
operation |
mask (default), detect or restore |
style |
redact (default), partial or tokenise |
kinds, fields |
Which kinds of personal data to look for, and in which fields |
tokenScope, tokenRetentionHours |
How tokens are grouped and how long they can be restored. Default 24 hours. |
failIfFound |
Fail the node when personal data is found. Default off. |
Use when: Sending text to an external AI model or a third-party system that should not see names, emails or account numbers. Tokenise first, then restore the reply.
Address & Geocoding
What: Validates and geocodes addresses, reverse-geocodes coordinates and measures distances, using OpenStreetMap data.


Configuration: operation (validate default, geocode, reverse, distance), address, countryCode, minimumPrecision (building, street default, postcode, town, any), latitude, longitude, toAddress, toLatitude, toLongitude, limit (default 5).
Barcode & QR
What: Generates barcodes and QR codes, or reads them from an image.


Configuration: operation (generate default, or read), symbology (qr default, plus code128, gs1-128, ean13, upca, datamatrix, pdf417, aztec and others), data, format (png default, or svg), width and height (default 300), includeText (default on), fileName, imageData, readAll.
Generated images are stored and passed on as a file reference.
Currency & FX
What: Converts money at European Central Bank reference rates, including historical dates.


Configuration: operation (convert default, rate, rates), amount, from (default EUR), to (default GBP), date, decimals, rounding (half-up default, half-even, down, up), marginPercent (default 0).
VAT Validation
What: Checks a VAT number's format offline and can verify it with the EU VIES service, or with HMRC for GB numbers when you attach an HMRC credential.


Configuration: operation (validate default, or verify), vatNumber (required), countryCode, requesterVatNumber, credentialId, hmrcSandbox (default off), failOnInvalid (default off).
Tips & gotchas
- Set, Data Transform, then Code. Try them in that order. The no-code nodes are easier to read and audit.
- Expressions don't calculate.
{{ $input.a + $input.b }}is not evaluated. See Functions for the node to use for each need. - Code with network access makes real calls. Plan for that when you test.
Related
- Files & documents
- Storage & database
- Expressions, what to put in these fields
Found something out of date? This page lives in the Flero docs content set.