# Personalization Using Merge Tag and Liquid Template

Engage Studio enables marketers to personalize emails easily with Merge Tags and Liquid templates. Merge Tags offer a simple, no-code interface for inserting dynamic content, while Liquid templates allow for advanced personalization logic. This guide explains how both systems work—individually and together—and how to use them effectively.

## Using Merge Tags in Engage Studio

Agentic Engage provides a visual Merge Tag interface built on top of Liquid. Merge Tags let you insert personalization fields such as name, email, or loyalty points into your content.

### Configuring Merge Tags

* Click **Manage Merge Tags** from the top of the Email Editor.
* You'll be taken to the merge tag management screen.
* Templates do not automatically link to profile attributes. You must define the tags you need.


![](/assets/personalization-merge-tags-overview.66bdcef9da23cee01394b56b179450d12928abb315fb70d47a36ccebcec45777.5be018a0.png)

**Fields to configure:**

* **Display Name** : The user-friendly name that appears in the editor (e.g., "Name").
* **Attribute Name** : The Liquid-compatible key from your profile data (e.g., `name` maps to `{{ profile.name }}`).
* **Preview Text** : Sample value shown in the editor preview (e.g., "Toru").
* **Default Value** : Used when the attribute is not present (e.g., "Customer").


![](/assets/personalization-merge-tag-manage.e6c871bdf32a12de9f763db45651dbd5587691c2e4090337fe7e95cdd1354b03.5be018a0.png)

![](/assets/personalization-merge-tag-preview.36cc4a54ea262e539f6cac68b22af914d1dc3ce6e2e4bede8f8e810c6e600ffe.5be018a0.png)

Once created, you can insert the tag into content blocks via the **Merge Tags** button in the inline toolbar.

### Merge Tags and Liquid Integration

The Merge Tag interface enables marketers to insert personalization tokens without writing any code. Behind every visual merge tag is a fully functional Liquid expression. This hybrid approach ensures flexibility for advanced users while remaining approachable for content creators.

When you insert a personalization field using the Merge Tag button (e.g., `Customer Name`), Engage Studio automatically renders the underlying Liquid template:


```liquid
{{ profile.first_name }}
```

**Key Behaviors:**

* Merge Tags insert human-friendly labels that map to Liquid syntax.
* When previewed or rendered, Merge Tags are evaluated as Liquid variables.
* Defined Merge Tags should be used in your activation. If not, the email sending returns an error.
* If you want to define a non-required tag, insert a liquid syntax in the content directly.


## Getting Started with Liquid

[Liquid](https://shopify.github.io/liquid/basics/introduction/) is the underlying template language powering dynamic personalization. It uses three main components:

* **Objects** : Insert dynamic content using `{{ }}`
* **Tags** : Control logic using `{% %}`
* **Filters** : Format and transform output


### Basic Syntax


```liquid
{{ profile.name }} -> outputs the customer's name
{% if profile.vip %}VIP Customer{% endif %} -> conditional logic
{{ profile.name | upcase }} -> converts name to uppercase
```

## Commonly Used Liquid Features

### Conditional Statements


```liquid
{% if profile.subscription == "premium" %}
  Thank you for being a premium member!
{% else %}
  Upgrade to premium for more benefits.
{% endif %}
```

### Filters

| Filter | Description | Example | Result |
|  --- | --- | --- | --- |
| `upcase` | Converts text to uppercase. | `{{ "hello" | upcase }}` | `HELLO` |
| `downcase` | Converts text to lowercase. | `{{ "Hello" | downcase }}` | `hello` |
| `date` | Formats date values. | `{{ "2024-01-01" | date: "%B %d, %Y" }}` | `January 01, 2024` |
| `default` | Provides a fallback value. | `{{ profile.name | default: "Guest" }}` | `Guest` if `profile.name` is `nil`, `false` or empty. |
| `url_encode` | URL-encodes the string. | `{{ "test@example.com" | url_encode }}` | `test%40example.com` |


## Dynamic Content with Display Conditions

Engage Studio supports **Display Conditions** , allowing you to visually show or hide content blocks based on profile data using conditional logic.

* Display Conditions can be applied to rows, columns, or content blocks.
* UI-driven conditions are translated into Liquid under the hood.
* You can combine multiple conditions using AND/OR.


![](/assets/personalization-display-conditions.ad7b2df90250af42aa75c980473cf88fdedf658a196a2e8a02e9db661c2f00c1.5be018a0.png)

### Examples

* Select a row
* Click **Display Condition > Add Condition**
* Enter:

```liquid
{% if profile.subscription == "premium" %}
{% endif %}
```
* Use Preview to validate visibility.


![](/assets/image6.c82e5076cc37c73e25ba59a89c8747e01a573350bd4081208515046f1217216f.5be018a0.png)

## Dynamic Content with Dynamic Image URL

The Dynamic Image URL feature allows for image personalization based on customer preferences.

When a user has multiple favorites products and you want to recommend them in emails. However, each email recipient may have a different number of favorites. In this case, you can create multiple rows and insert images dynamically using Liquid. Select dynamic images at Image block and insert {{ profile.image_url }} in the url. You can change a image content based on your attribute.

![](/assets/image-20250806-020817.482c4dc31155429f87e2cc358edb2818d128714012cd50b90caefdd4e0adc94e.5be018a0.png)