Skip to main content

Node types reference

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 All collects 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.
  • 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 (like partner, batchId, runDate).
  • You can set a value as:
    • literal (typed input), or
    • expression (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_rank per partition/order.

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 PK shortcut.

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).
  • Pivot Value Remap (optional): map raw pivot values to cleaner column suffixes.
    • Example:
      • 1=Jan
      • 2=Feb

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.