Jinja is a templating language that inserts data and logic into text using `{{ ... }}` for output and `{% ... %}` for logic like loops and conditions. In Bloomreach Engagement it is the way a message or weblayer pulls in customer attributes and catalog data, and it runs on the server before the result reaches the browser.
Category
Bloomreach Engagement, template rendering
Also known as
Jinja2; Jinja templating
Two constructs do most of the work in templates. {{ ... }} outputs a value, such as a customer attribute or a catalog field, into the text. {% ... %} runs logic: conditions with {% if %}, loops with {% for %}, and assignments with {% set %}. Filters transform a value inside the output braces, written with a pipe, as in {{ price | round(2) }}. Because it renders server-side, the customer never sees the template, only its finished output.
In practice
Bloomreach implements only a subset of Jinja2, so filters and features that work in a standard Jinja sandbox can be missing or behave differently. Treat Bloomreach’s Jinja test tab as the source of truth for anything the documentation does not confirm, and watch for the traps that fail silently rather than throwing an error.