Skip to content

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.

The Data Transform node's panel in the editor: the header with the node's icon and name, and its Settings tab.The Data Transform node's panel in the editor: the header with the node's icon and name, and its Settings tab.

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's field must start with item.. Its operators are equals, notEquals, contains, greaterThan and lessThan.
  • calculate only adds {field} references together and returns 0 for anything else. Use Code for real arithmetic.
  • format with 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.

The Code node's panel in the editor: the header with the node's icon and name, and its Settings tab.The Code node's panel in the editor: the header with the node's icon and name, and its Settings tab.

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 read input[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 error port 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.

The Data Parser node's panel in the editor: the header with the node's icon and name, and its Settings tab.The Data Parser node's panel in the editor: the header with the node's icon and name, and its Settings tab.

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.

The Template node's panel in the editor: the header with the node's icon and name, and its Settings tab.The Template node's panel in the editor: the header with the node's icon and name, and its Settings tab.

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.

The Query Data node's panel in the editor: the header with the node's icon and name, and its Settings tab.The Query Data node's panel in the editor: the header with the node's icon and name, and its Settings tab.

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 DESC

Expressions in the SQL are passed as query values, not pasted into the statement.


Date & Time

The Date & Time node's panel in the editor: the header with the node's icon and name, and its Settings tab.The Date & Time node's panel in the editor: the header with the node's icon and name, and its Settings tab.

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.

The PII Masking node's panel in the editor: the header with the node's icon and name, and its Settings tab.The PII Masking node's panel in the editor: the header with the node's icon and name, and its Settings tab.

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.

The Address & Geocoding node's panel in the editor: the header with the node's icon and name, and its Settings tab.The Address & Geocoding node's panel in the editor: the header with the node's icon and name, and its Settings tab.

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.

The Barcode & QR node's panel in the editor: the header with the node's icon and name, and its Settings tab.The Barcode & QR node's panel in the editor: the header with the node's icon and name, and its Settings tab.

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.

The Currency & FX node's panel in the editor: the header with the node's icon and name, and its Settings tab.The Currency & FX node's panel in the editor: the header with the node's icon and name, and its Settings tab.

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.

The VAT Validation node's panel in the editor: the header with the node's icon and name, and its Settings tab.The VAT Validation node's panel in the editor: the header with the node's icon and name, and its Settings tab.

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.


Found something out of date? This page lives in the Flero docs content set.