Types of dynamic content
The three email types in Loops have different dynamic content available to them:- Campaign emails can contain contact properties.
- Emails within Loops can contain contact properties and event properties.
- Transactional emails can contain data variables.
- Contact properties are pieces of data related to each contact in your audience. There are a set of default properties like name and source, but you can also add any number of custom contact properties. If you sync contact data to Loops with the API, an integration or with CSV uploads, you can include that data in your email.
- Event properties are pieces of data that can be sent along with every event (which are used to trigger loop emails) via integrations or API calls.
- Data variables are pieces of data included in transactional emails, which are populated in the API call. You can utilize optional data variables to make your transactional emails more dynamic.
Add dynamic content to emails
If you want to add dynamic content to a custom MJML
email, check the Dynamic tag
syntax section below.
{}
dynamic content icon in the email editor toolbar. Using either of these options will open the dynamic content menu, a filterable list of all available properties you can insert.



- Type
{
or hit the{}
icon in any editor field - Continue typing to filter results:
{fir
shows “firstName” - Use
↑/↓
to navigate,Enter
to select,Escape
to close
If you send an email and the dynamic content is missing a value, the email
will not be sent. Make sure to add fallback values to avoid missed sends.
Read more below.
Fallback values
Fallback values are important for campaign and loop emails. If a contact doesn’t have a value for a property, or an event property is missing, the email won’t send. When you insert a contact or event property using the dynamic content menu, you’ll be prompted to enter a fallback. This default text ensures your email still sends even when data is missing.
Example | Fallback | Result |
---|---|---|
Hey {firstName} | there | Hey there |
Welcome to {companyName} | your company | Welcome to your company |

Data variables in transactional emails
In transactional emails, dynamic tags work slightly differently: you can create new data variables in your email as you type.
- Type
{orderTotal
(using a new name that doesn’t exist). - Select Create “orderTotal” from the menu or press
Enter
. - The variable is created and you can edit it from the editor panel (change the name or change to an optional variable).
Dynamic tag syntax
As well as using the dynamic content menu, you can write dynamic content “tags” directly in the email body. This is especially useful when uploading custom emails. These tags are the only way to add dynamic content in custom MJML emails.Contact properties
If you have a custom contact property namedteamName
that you want to add to a campaign, you can write it surrounded by curly brackets in the email:
teamName
value for each contact will be added to the email.

{firstName}
, {lastName}
, {email}
, etc.

Event properties
To add dynamic data to emails within loops using event properties, the tag requires anEVENT_PROPERTY:
prefix:
Data variables
To add data variables in transactional emails, the tag requires aDATA_VARIABLE:
prefix:
It is important to use the right names in your tags, for example contact
property names from API settings and
event property names from the Events
settings page. If you have any
questions about how to format your tags, reach out to us!