Overview
Liquid Template Language is a simple and flexible templating language used to insert dynamic content into messages, experiences, or templates. Intempt uses Liquid to let you reference attributes, feeds, and snippets, enabling personalization and dynamic content rendering.
With Liquid tags, you can:
Personalize communication at the user or account level;
Dynamically insert brand data;
Reference products from feeds;
Reference product from catalog;
Reuse content with snippets.
For example:
Hello {{attribute.user.first_name}}, welcome to Intempt!
will be rendered as:
Hello Anna, welcome to Intempt!
π Good to know
Liquids are placeholders β they are replaced with real values when the message or experience is delivered.
If a variable does not exist (e.g., a user attribute is missing), the output will be blank.
You can test your liquids inside the SMS, Slack, or Email editor by selecting a sample user.
Always make sure your attributes (like phone number, company, or website) are properly stored in Intempt before using them in liquids.
Steps to use Liquid tags manually
Identify your use case
Server-side experience personalization
SMS, Slack, or Email message template
Snippet reuse
Feed-based product recommendations
Choose the liquid type
Depending on what data you want to reference, select the appropriate structure (see below).Insert the liquid into your template
Place the variable inside{{ ... }}
brackets where you want the dynamic value to appear.Test with sample data
Preview the result in the editor or use test delivery to ensure the correct substitution.
π Important about attributes
When using Liquid tags, always reference the attribute name β not the attribute title.
Attribute title is the human-readable label you see in the interface.
Attribute name is the technical identifier that Liquid requires.
To find the correct attribute name:
Go to the Attributes section.
Select the attribute you want to use.
In the details panel, copy the value shown under Name.
For example:
If an attribute has the title βFirst nameβ but the name first_name, the correct Liquid tag will be:
{{attribute.user.first_name}}
Types of Liquid tags
1. User attributes
Use user-level attributes stored in Intempt.
{{attribute.user.company}} {{attribute.user.email}}
Example:
Hi {{attribute.user.first_name}}, thanks for signing up with {{attribute.user.company}}!
2. Account attributes
Reference attributes stored at the account (organization) level.
{{attribute.account.account_website}} {{attribute.account.account_name}}
Example:
We noticed your company website is {{attribute.account.account_website}}.
3. Brand variables
Insert brand-level configurations.
{{brand.banned_words}}
Example:
The following words are restricted: {{brand.banned_words}}.
4. Feed values
Reference dynamic product feeds.
Format:
{{feed.<feed_id>.<item_index>.<field_name>}}
<feed_id>
β ID of the feed (e.g., 3914)<item_index>
β Position of the product in the feed (starting from 0)<field_name>
β Attribute of the product (e.g., description, title, price)
Example:
Check out this product: {{feed.3914.0.description}}
5. Snippets
Insert prebuilt reusable text blocks or templates.
{{snippet.demo_simple_snippet}}
Example:
{{snippet.promo_banner}}
6. Products from Intempt Catalog
In addition to feeds, you can use product data directly from the Intempt Catalog.
Format:
{{products.<product_id_in_intempt_catalog>.<field_name>}}
<product_id_in_intempt_catalog>
β the unique ID of the product in the Intempt Catalog<field_name>
β the product attribute, e.g.,title
,price
,description
Example:
Check out our featured product: {{products.1024.title}} for just {{products.1024.price}}!
Testing Liquid tags
In SMS templates β use βSample dataβ to preview how variables will render for real users.
In server-side experiences β run a test request with a sample profile to see the resolved values.
π Good to know
If a Liquid tag does not have a value for a user, account, or feed item, Intempt will render it as a space rather than showing the raw {{ ... }}
. Make sure that the attributes or feed fields you reference exist and are correctly populated to avoid blank values in your messages or experiences.