Guide

Build

Mapping data & expressions

3 min readOpen in Neblex

Most steps have an Input: the fields the step receives. For each field you choose where its value comes from. The mapper shows a row per field with a source dropdown; drag a field from the list of upstream fields to map it, or switch to JSON to edit the raw definition.

Value sources

SourceUse it forExample
ValueA fixed value. Typing = first switches to an expression.EUR
From stepA field of the current record. Mark it Optional to use a default (or empty) instead of failing when the field is missing.customer.email
NodeAny earlier step's output, even several steps back. The path starts with the record index.0.email of step lookup
ExpressionA small calculation in Rhai, with item for the current record.item.price * item.qty
Value mapTranslate codes with a lookup table, with a fallback.A -> Active
TransformA compact declarative transform for nested data, with input for the record.map(input.lines, (l) -> { sku: l.code, qty: l.n * 2 })
Flow valueA value saved earlier in this run with Set value.batch_id
VariableAn environment variable.API_HOST

Paths are dotted, and numbers index into lists: order.lines.0.sku. For a list field you can map each element with a template so an array of lines becomes an array of reshaped lines.

Placeholders inside text

  • {{ env.NAME }} inserts an environment variable anywhere: URLs, headers, SQL, file names. The {x} button next to text fields lists your variables and inserts the reference.
  • {{ run.id }}, {{ run.started_at }}, {{ run.occurrence }} and date calls such as {{ format_date(date_now(), "%Y%m%d") }} work in any text field: report-{{ format_date(date_now(), "%Y-%m-%d") }}.csv.
  • Build text uses {{path}} placeholders from the current record: Hello {{customer.name}}.
  • Notify these people on a form step accepts {{ path }}, for example {{ ticket.assignee_email }}.
  • HTTP request URLs and bodies use {name}; SQL and commands use :name bind parameters (Cypher uses $name). These are bound safely, never pasted into the statement, so record data cannot inject SQL or shell commands.

Working with dates and times

These functions work in any field, expression, Transform, Code step, condition value and Format date step, both in the cloud and on On-Prem Workers.

FunctionResult
date_now()The current moment in UTC, such as 2026-09-26T14:03:11Z. Every record in the same step sees the same moment.
format_date(value, pattern)
format_date(value, pattern, "Europe/Berlin")
Text in your pattern (strftime), optionally in a time zone. value can be ISO-8601 text, a date YYYY-MM-DD, or Unix seconds.
parse_date(text, pattern)
parse_date(text, pattern, zone)
Reads a date held as text, for example parse_date("26.09.2026", "%d.%m.%Y"), and returns ISO-8601 UTC.
add_minutes, add_hours, add_days, add_weeks, add_months(value, n)Moves a date; a negative whole number goes back. Months clamp to the last day (Jan 31 + 1 month = Feb 28/29).

Common patterns: %Y-%m-%d (2026-09-26), %d.%m.%Y %H:%M (26.09.2026 14:03), %A, %B %e (Saturday, September 26), %s (Unix seconds). A time zone is an IANA name such as America/New_York; leave it out for UTC. To keep a moment for later steps, store it with Set value.

Conditions

Filters, conditional edges, Loop while/until tests, Assert checks and edge conditions compare a field with a value using one operator: equals, not equals, greater than, less than, contains (text or list), exists, does not exist. The value is read as JSON when possible (so 1000 is a number and true a boolean), otherwise as text. A missing field makes the comparison false, except for the exists operators. A date call on the value side compares moments in time: field created_at, greater than, add_days(date_now(), -7) keeps the last week.

Form Show only when rules and the Data table query editor offer a few more operators (such as is one of, starts with, is empty); they are listed in those sections.

Environment variables in flows

Reference a variable as {{ env.NAME }} in text or with the Variable source in the mapper. Variables are resolved once when the run starts, from the environment the flow runs in, so the same flow can use a test host in Development and the real host in Production. Referencing a variable that does not exist fails the run with a clear message. See Environment variables.