Azure IoT Hub Source Node
Quick Reference
Data Asset The Azure IoT Hub data asset to read from. The asset supplies the Event Hub-compatible connection, endpoint name, consumer group, and checkpoint store.
Encoding Type The format of the device telemetry message bodies.
Initial Position
Where to start reading when there is no prior checkpoint. Earliest replays retained telemetry; Latest starts from new messages only.
Overview
The Azure IoT Hub Source node streams device-to-cloud telemetry from an Azure IoT Hub into your workflow. It reads through the hub's built-in Event Hub-compatible endpoint, so it gets the same partition balancing and durable checkpointing as the Azure Event Hub Source.
What makes this node different is enrichment. Beyond decoding the telemetry body, it attaches the IoT metadata that identifies where each message came from — the sending device id, the time IoT Hub enqueued the message, and any application properties the device set — under an _iothub key on every record. The telemetry payload's own fields stay at the top level, so downstream nodes address them directly.
Connection details come from the Azure IoT Hub data asset you select, which stores the Event Hub-compatible endpoint values from your hub's built-in endpoint settings.
Configuration
| Field | Description | Required | Default |
|---|---|---|---|
| Data Asset | Select or create an Azure IoT Hub data asset. It provides the Event Hub-compatible connection and endpoint name, the consumer group, and the blob checkpoint container. | Yes | — |
| Encoding Type | How each telemetry message body should be interpreted. Options: CSV, JSON Object, JSON Array, JSON Lines. More info here. | Yes | JSON Object |
| Initial Position | Where to start reading on a partition that has no stored checkpoint. Earliest reads all retained telemetry; Latest reads only messages arriving after the workflow starts. Once a checkpoint exists this setting is ignored. | No | Earliest |
Record Shape
Each record combines the telemetry body with an IoT metadata envelope:
{
"temperature": 21.4,
"humidity": 38,
"_iothub": {
"deviceId": "sensor-42",
"enqueuedTime": "2026-07-23T14:02:11.318Z",
"properties": {
"messageType": "telemetry",
"schemaVersion": "2"
}
}
}
Reference the device in downstream nodes with $._iothub.deviceId, and an application property with $._iothub.properties.messageType.
A few details to be aware of:
- The
_iothubkey appears only when the message carried metadata. When it is present,_iothub.propertiesis always present too — an empty object if the device set no application properties. - All metadata values are strings, including
enqueuedTimeand any numeric application properties. Convert them downstream if you need numbers. - If a telemetry body contains its own field named
_iothub, the envelope overwrites it.
Notes
Give each workflow its own consumer group. IoT Hub allows a limited number of consumer groups per hub, but sharing one between independent consumers makes them compete for offsets so each sees only part of the telemetry. Create a dedicated group per workflow on the built-in endpoint.
The data asset needs the Event Hub-compatible values, not the IoT Hub name. These come from the Azure portal under IoT Hub → Hub settings → Built-in endpoints. The IoT Hub's own resource name and service connection string will not work.
Delivery is at-least-once. Messages read but not yet checkpointed are redelivered after a restart.
Related Nodes
- Azure Event Hub Source: Read from a plain Azure Event Hub
- MQTT Source: Ingest device telemetry over MQTT
- Sparkplug B Source: Consume Sparkplug B industrial telemetry