Flow Nodes
All available nodes for building data pipelines in the flow editor
The Flow Editor lets you build chart queries by connecting nodes in a pipeline. Drag nodes onto the canvas, configure them, and wire them together. Data flows from top to bottom, starting at a Data Source, passing through transformations, and ending at an Output.
Getting started
- Add a Data Source node to choose which adapter and field to read from
- Connect transformation nodes like Filter, Group By, or Aggregate to shape the data
- Finish with an Output node to produce the chart result
Each node has handles on its top and/or bottom edge. Connect the bottom handle of one node to the top handle of the next to build the pipeline. The colored badge on each node shows its category. Sources, filters, aggregates, groupings, transforms, time operations, and outputs each have their own color.
Nodes
Data Source
The starting point of every pipeline. Choose which dataset to read from and which field to pull out of it.
Adapter: the data provider or dataset (for example, Events or Sessions). This determines which fields you can pick below.
Field: the metric or property to read from the selected adapter.
Dedupe: when checked, counts only the latest row per identity (where the data source supports it). Useful for unique-visitor style queries.
Filter
Keeps rows that match a condition and drops the rest. Pick a field, an operator, and a comparison value. Only matching rows continue down the pipeline.
Field: which upstream field to compare.
Operator: how to compare. Available options:
equals,not equals,contains,matches regex,does not match regex,greater than,less than,greater or equal,less or equal.Value: what to compare against. Becomes a true/false dropdown when filtering a boolean field.
Map target: only shown for map fields. Choose whether to filter on the map's keys or its values.
Aggregate
Reduces multiple rows into one computed value per group. Usually placed after a Group By or Time Group node.
Function: how values inside each group are combined:
count: number of rows in the groupsum: adds numeric valuesavg: average of numeric valuesmin: smallest numeric valuemax: largest numeric valuedistinct: count of unique values
Group By
Groups rows by one or more categorical fields. Usually paired with an Aggregate node to compute per-group metrics (for example, page views grouped by browser).
Fields: the grouping dimensions. Rows that share the same values across these fields end up in the same group. Add as many as you need.
Multi-field mode: only shown when more than one field is selected.
combined: joins field values into a single composite key (for example,Chrome / Germanyas one group).flat: keeps each field as its own dimension so the chart can break down by either axis.
Time Group
Groups rows into time-based buckets. This is the foundation of every time-series chart.
Bucket size: the interval each row rolls into:
Auto,Minute,Hour,Day,Week,Month.Autopicks a sensible size based on the chart's time range.Missing buckets: what to do when a time period has no data:
Zero: insert a zero value so the line stays continuous.None: leave the gap empty and the series breaks.
Cumulative: carry each bucket's value into every later bucket. Use this for running totals, such as total users or downloads so far.
Text Transform
Rewrites string values before they are grouped, filtered, or displayed. Useful for normalizing inconsistent text (for example, casing) or extracting derived labels.
Operation: which transformation to apply:
lowercase/uppercase/title case: change casingtrim: strip leading and trailing whitespaceappend: add a fixed string to the end of each valuereplace text: find an exact string and replace itreplace regex: match a regular expression and substitute (use\1,\2, and so on for capture groups)length: replace each value with its character count
Text to append: only for
append. The string added to every value.Find / Pattern and Replace with: only for
replace textandreplace regex. Leave the replacement empty to delete matches.
Formula
Computes a derived numeric value from a custom expression. Each input
connection to the Formula node gets a letter (A,
B, C, and so on) in the order it was connected.
Use those letters as variables in the expression.
Expression: the formula to evaluate, for example
A + B,A / B * 100, or(A + B) / C.Output name: name of the resulting field. Downstream nodes and the chart legend use this label.
Precision: number of decimal places to round the result to. Leave empty to keep full precision.
Limit
Caps the number of rows that flow through. Most useful after a Group By when you only want the top N groups in a chart.
Max rows: the maximum number of rows to keep.
Group rows over limit as Other: instead of dropping rows beyond the limit, fold them into a single
Otherbucket so totals still match.
Max Age
Limits the pipeline to events within a rolling window relative to now. Combine with Min Age to look at a slice between two points in the past.
Look back at most: the size of the window. Pick a number and a unit:
ms,seconds,minutes,hours,days.
Min Age
Drops events that are too recent. Useful for excluding the live tail of data that has not fully settled yet, or for comparing past periods.
Exclude newer than: events within this window before the current time are removed. Uses the same units as Max Age.
Output
The final node in every pipeline. This is what produces the chart result. See Output & Multi-Series for how multiple Output nodes combine into tabs, multi-line charts, or stacked bars.
Output name (or Tab name on list charts): label shown in the chart legend or as the tab header.
Icon set: only on list charts. Optional icons shown next to each row.
Nest by: only on list and pie charts. Splits each row into a nested hierarchy, either by another data field or by a custom delimiter.
Delimiter: only when nesting by a custom pattern. The character or string used to split values (for example,
/to split a URL path).
Final query result for this chart