Skip to content
  • There are no suggestions because the search field is empty.

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

Where to not use handlebar notation (JSON included)

  1. Transform stage expressions can only be used with JavaScript.
  2. 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