Required
1. Paste the code snippets into the Title and Message blocks
New variable names - January 2026
Variable names in this code snippet have changed. When using make sure to update your Connected Content block.
For Title:
{% assign JQRDExperimentId = 'experimentID' %}
{{content_blocks.${JQRDContent}}}{% comment %}{% endcomment %}
{% if {{variants.variant_text}} == blank or {{variants.variant_text}} == null %}
PASTE YOUR HUMAN CONTROL HERE
{% else %}
{{variants.variant_text | split: '〽' | first }}
{% endif %}For Message:
{% assign JQRDExperimentId = 'experimentID' %}
{{content_blocks.${JQRDContent}}}{% comment %}{% endcomment %}
{% if {{variants.variant_text}} == blank or {{variants.variant_text}} == null %}
PASTE YOUR HUMAN CONTROL HERE
{% else %}
{{variants.variant_text | split: '〽' | last }}
{% endif %}If your Jacquard language variants contain any personalisation tags, please expand the section below for further instructions.
Add personalisation tags to the language code snippet (optional)
Personalisation includes anything from first name to product. It is any field Braze will need to process to plug in information unique to a user.
You'll need to add your personalisation tags them to your subject line code snippet in between the {% comment %} and {% endcomment %} tag.
If you don't include the personalisation tags within the comment tags, Braze won't process them properly and they'll be rendered as literal text within your subject line. This would result in something like Hi, {{$first_name}} showing up in a subscriber's inbox.
Our example below shows how a code snippet might be configured with Braze's default first name personalisation field:
{% assign JQRDExperimentId = '69287a23e29261ae299e24a9' %}{{content_blocks.${JQRDContent}}}{% comment %} {{${first_name}}} {% endcomment %}
{% if {{variants.variant_text}} == blank or {{variants.variant_text}} == null %}
🛠️ There's so much to explore out there
{% else %}
{{variants.variant_text}}
{% endif %}Note the placement of the {{${first_name}}} tag between the comment tags.
If you require multiple personalisation tags, you can simply add them between the {% comment %} and {% endcomment %} tag with a space between them, as in:
{% comment %} {{${first_name}}} {{${last_name}}} {% endcomment %}
If your personalisation tag uses Liquid Filters to modify the output, then these filters need to be assigned along with the tag to a new variable. It's this variable that would then appear in your Jacquard language.
For example, if you want to capitalise the first_name field with {{${first_name} | capitalize}}, then you must first assign this to a new variable before calling the Jacquard Content Block:
{% assign capitalizedFirstName = {{${first_name} | capitalize}} %} {% assign JQRDExperimentId = '69287a23e29261ae299e24a9' %}{{content_blocks.${JQRDContent}}}{% comment %} {{capitalizedFirstName}} {% endcomment %} {% if {{variants.variant_text}} == blank or {{variants.variant_text}} == null %} 🛠️ There's so much to explore out there {% else %} {{variants.variant_text}} {% endif %}Note how the assign capitalizedFirstName appears before the assign JQRDExperimentId and also how the newly created variable, {{capitalizedFirstName}}, now appears between the comment tags instead of the default personalisation tag.
2. Replace the experimentID placeholder with your experiment ID
Each Jacquard experiment has a unique experiment ID. You'll need to paste your experiment's unique ID over the <experimentID> placeholder in the code snippet.
If you need help locating your experiment ID, see our ID documentation.
Give it a test
Once you've added your code snippets properly to Braze and activated your experiment in Jacquard, you should be able to preview the push and see your message populating dynamically.
After you've set all of this up for the first time, save your code snippets somewhere safe so you can simply reuse them in the future by swapping out the experiment ID.
Preparing for deployment
Once you've verified your code snippets and personalisation tags are functioning properly, you've completed your minimum push setup. You can now deploy your pushes via your preferred trigger method if you're deploying triggered message experiments.
If you're sending broadcast message experiments, please proceed to the broadcast message experiment rate limiting article to learn about an additional setting you'll need to use.
When deploying to a preconfigured Segment for both triggered and broadcast messages with Dynamic Optimisation, ensure your segment has Analytics Tracking turned ON as in the example below:
