What Is Handlebar Notation?
What does this article cover?
This article explains when and how to use handlebar notation in Intelligence Hub.
What are handlebar-style references?
Handlebar-style references are placeholders written with double curly braces that Intelligence Hub resolves at runtime. Examples include: , , .
- They inject values into settings like topics, paths, and properties.
-
They can be JSON if the value of a parameter is JSON, and they can execute JS in some fields, primarily in pipelines.
- They're pointers to static references or dynamic placeholders.
Where do you use handlebar notation (and why)?
- Component References: Inputs, Conditions, Instances, and Pipelines are evaluated using handlebar syntax in expression fields (e.g. )
- Dynamic Outputs: build topics/paths/keys from payload data, and routes or name writes based on the data itself.
- Use to reference attributes in the output payload (e.g., MQTT topic)
- Parameters: substitute configuration values before expressions run because it reuses a single definition across many sources.
- Use this inside Inputs and Instances that define parameters.
- Dynamic References: pulls values from other components
- Example: a SQL Input referencing an OPC UA Input.
- SELECT * FROM machineTable WHERE machineID=''
- Event-aware write properties: in Write stages that allow it, you can reference the event to shape write properties (e.g., name, date, time) and even combine with a write-properties expression
- Example: a SQL Input referencing an OPC UA Input.
Where to not use handlebar notation (JSON included)
- Transform stage expressions can only be used with JavaScript.
-
Component references and parameters are supposed in instance attributes of expression-type.
Rule of thumb: Fields labeled Template or Dynamic Output typically accept . But, fields labeled Expression are JavaScript and do not.
How does handlebar notation differ from JSON or JavaScript?
- JSON is a data format. That means braces like {} define objects. inside strings are placeholders that IH resolves before sending the JSON to a connector
- JavaScript runs in expressions (e.g., Transform blocks, Instance Expressions). You can write code there, but don’t wrap JavaScript in .
- Some write stages (e.g., Write New) let you combine dynamic placeholders and a JavaScript write-properties expression; IH merges them to build the final write settings.
Other related material