Node types reference
This page is the one-stop reference for every node type on the FlowBuilder canvas. Each row tells you what the node does, what it consumes (rows, control-flow, none), and what it emits. For a deep walk-through of a specific node, click through to its own page in the Nodes sidebar.
Common nodes you will use:
- Start: entrypoint.
- Source: reads rows from a system (DB/Salesforce/etc.).
- Target (Load): writes rows to a system (DB/Salesforce/etc.).
- Transform: maps/renames/derives fields from input schema to output schema.
- Filter: keep/drop rows using rules.
- Router: route rows to branches (first match wins in rule routing mode).
- Fork: fan-out; duplicates rows to multiple branches.
- Mode:
Streaming(default) forwards rows as they arrive (runtime chunked). - Mode:
Buffer Allcollects rows across the entire source stream and emits once at the end (small datasets only). - Guardrail: Buffer All is capped (default 20,000 rows, configurable in runtime via
DLR_FORK_BUFFER_MAX_ROWS) to prevent runaway memory usage.
- Mode:
- Compute: advanced shaping (derived fields, sorting, group-by, window functions depending on configuration).
- Reshape: pivot/unpivot.
- Database Script: executes script-based SQL against a selected database connection (source-side behavior).
- Notification: sends notifications (SMTP) based on run behavior or connected branches.
- Variable: sets execution-scoped variables (pass-through node) that can be referenced downstream in:
- File naming templates (FTP/SFTP/FTPS + Email attachments)
- Generic API path/body/header/query templates
- Expression editor via
VAR(...)/SYS(...)
- Decision: conditional branching (behavior depends on node configuration).
Variable Node
Use a Variable node to set one or more variables during a run.
Assignments:
- Each row in the Variable node sets a variable
key(likepartner,batchId,runDate). - You can set a value as:
literal(typed input), orexpression(uses the same transform expression engine).
- Set mode:
1x(default): set once per run (safe for chunked runs).row: set per input row (useful mainly inside a Loop where each iteration is one row).
How to reference execution variables:
- Template fields:
{var.exec.partner}or{{var.exec.partner}} - Expression fields:
VAR('exec.partner')
System/runtime metadata (initial set):
- Template fields:
{sys.execution.id}or{{sys.execution.id}} - Expression fields:
SYS('execution.id')
Compute Node
The Compute node performs multi-row shaping operations on the incoming row stream.
Modes:
- Derived Columns + Sort
- Adds computed fields per row (using the expression engine), then sorts.
- Group By + Aggregates
- Groups rows by key(s) and produces aggregate output rows.
- Important: Group By aggregates across the entire source stream (even when the runtime is chunking) and emits at the end of the stream. Downstream nodes will not receive group-by output until the source finishes.
- Keys input accepts comma/semicolon/newline lists, for example:
Region, Department.
- Window Functions
- Adds
row_number,rank,dense_rankper partition/order.
- Adds
Practical notes:
- Global Group By holds group state in memory. If your grouping has very high cardinality, prefer filtering earlier or performing the group-by in the source system (SQL/SOQL) when possible.
Reshape Node (Pivot / Unpivot)
The Reshape node changes the output schema by pivoting or unpivoting.
Identity Keys:
- Columns that are carried through unchanged.
- Input accepts comma/semicolon/newline lists, for example:
AccountId, Year. - If upstream schema metadata marks primary keys, the UI can offer a
Use PKshortcut.
Pivot:
- Pivot Column: the column whose distinct values become new output columns.
- Value Column: the column whose values fill the pivoted cells.
- Pivot Values (optional but recommended): explicit allow-list of pivot values to prevent explosive schemas.
- Guardrail: the system caps pivot output width (for example max 50 pivot columns).
- Pivot Column Order: control how the pivot output columns are ordered.
- Sort by Pivot Values: numeric-aware ordering (for example
1,2,3...) then apply remap for column names. - Sort by Mapped Values: sort using the remapped labels (useful when your raw values are codes but you want label ordering).
- As Configured/Encountered: preserve the configured pivot list order or encounter order (not deterministic when inferred).
- Sort by Pivot Values: numeric-aware ordering (for example
- Pivot Value Remap (optional): map raw pivot values to cleaner column suffixes.
- Example:
1=Jan2=Feb
- Example:
Chunking note:
- Pivot is a reducer-style operation. In the runtime, Pivot can accumulate across chunks and emit once at the end of the source stream (so the resulting dataset shape is consistent even for chunked runs).
- For deterministic output schemas across runs, set an explicit Pivot Values list.
Unpivot:
- Columns to Unpivot: comma/semicolon/newline list.
- If blank, all non-key columns are unpivoted.