Skip to main content
Version: 3.0 (next)

InfluxDB Nodes

InfluxDB is a time-series database built for sensor readings, metrics and events. MaestroHub provides four dedicated nodes for running Flux queries, writing points, and listing the buckets and measurements of an organization within your pipelines.

Configuration Quick Reference​

FieldWhat you chooseDetails
ParametersConnection, Function, Function Parameters, Timeout OverrideSelect the connection profile, function, configure function parameters with expression support, and optionally override timeout.
SettingsDescription, Timeout (seconds), Retry on Timeout, Retry on Fail, On ErrorNode description, maximum execution time, retry behavior on timeout or failure, and error handling strategy. All execution settings default to pipeline-level values.

InfluxDB Query Node​

Run a Flux query against the connection's organization.

Function NamePurposeCommon Use Cases
QueryExecute a Flux query (query) and deliver its rowsDashboard data, windowed aggregates, last-value lookups

InfluxDB Write Node​

Write points to a bucket. Every item in data becomes one point of the given measurement: a flat object ({"celsius": 21.5}) makes every key a field; a structured object ({"fields": {...}, "tags": {...}, "timestamp": "..."}) sets each part explicitly. tags on the function apply to every point. Flat items carry no timestamp and share the event time, so two flat items with the same tags land on the same instant and InfluxDB keeps only the last — give such items their own timestamp in the structured form.

data is an array of those items, held either as an array or as the same array written out as JSON text: the function form's Data editor stores text, and a ((data)) parameter that a node fills from an expression such as {{ $node["Build Rows"].result }} arrives as text too. Both are read the same way. A data that is not an array of objects — text that is not valid JSON, a single object, an empty array — fails the write, saying which. Such a payload cannot succeed on any retry, so the failure is classified permanent: a store-and-forward write sends it to the dead-letter queue on its first delivery attempt instead of retrying it.

timestamp accepts either an RFC 3339 string (2026-09-07T08:00:00Z, fractional seconds and offsets included) or unix nanoseconds as a positive number or numeric string. RFC 3339 is the form every timestamp in MaestroHub takes, so {{ $trigger._metadata.timestamp }} and any upstream node's timestamp can be wired straight in. A bare number is always nanoseconds — seconds and milliseconds are indistinguishable from it, so the unit is fixed rather than guessed.

An unreadable timestamp fails the write

Omit timestamp to stamp a point with the event time — that is the supported way to say "now", and on a store-and-forward replay it keeps the produce time rather than drifting to the drain moment. A timestamp that is present but is neither of the two accepted forms fails the write, naming the item (data[0]: timestamp …). It used to be silently replaced by the event time, which collapsed a whole batch onto one instant: InfluxDB keeps the last write per series and instant, so the node reported every point as written and the bucket held one (#5031).

Function NamePurposeCommon Use Cases
WriteWrite the data items as points into bucket under measurementSensor ingestion, KPI recording, event archival

InfluxDB List Buckets Node​

Function NamePurposeCommon Use Cases
List BucketsList the buckets of the connection's organization — its own _monitoring and _tasks system buckets included, another organization's neverDiscovery, dynamic routing of writes

InfluxDB List Measurements Node​

Function NamePurposeCommon Use Cases
List MeasurementsList the measurements stored in bucketDiscovery, schema checks before a query

Output​

Every InfluxDB node delivers its data under result, and execution facts (success, functionId, durationMs, timestamp) under _metadata:

NodeExpressionDescription
Query$node["Name"].result.recordsOne object per Flux row — _time, _value, _measurement, _field, every tag column, plus result and table as Flux emits them. $node["Name"].result.records[0]._value reads a value
$node["Name"].result.recordCountHow many rows were delivered
Write$node["Name"].result.pointsWrittenPoints written — one per data item that carried at least one field
List Buckets$node["Name"].result.bucketsOne object per bucket — name and id always; orgID and retentionSeconds when the server reports them
$node["Name"].result.bucketCountHow many buckets were listed
List Measurements$node["Name"].result.measurementsThe measurement names in the bucket
$node["Name"].result.measurementCountHow many measurements were listed

The call's own facts ride along under _metadata next to the four every connected node carries: $node["Name"]._metadata.organization on every node, $node["Name"]._metadata.bucket after a Write or List Measurements, and $node["Name"]._metadata.measurement after a Write.