Skip to content

Rich text

Available on
  • Free (available)
  • Starter (available)
  • Pro (available)
Compare plans

Rich text shows a block of text. You can use formatting such as bold, links, and lists, and variables such as the customer’s name. Rich text is also shown on the Free plan.

  • Display label: Small text shown above the body (optional).
  • Body: The text to show (required).
  • Copyable: Shows the body in a read-only field so customers can copy it, for example a discount code. When this is on, formatting isn’t applied and the text is shown as written.
WriteShows as
**bold**bold
*italic*italic
[link text](URL)A link
- itemA bulleted list
A blank lineA new paragraph

Variables in the body are replaced with each customer’s own values. Click a variable to see how to write it and what it shows.

VariableShows
{{customer.firstName}}The customer’s first name
{{customer.lastName}}The customer’s last name
{{customer.displayName}}The customer’s display name
{{customer.email}}The customer’s email address
{{customer.tags}}The customer’s tags (comma-separated)
{{order.name}}The order number (for example, #1001). Only available in blocks on the order status page

If a value isn’t set, nothing is shown.

Use {% if %} to show part of the text only to some customers. You can use contains, == (equal), != (not equal), or check whether a value exists.

Shows (customers tagged “VIP”): Here’s an exclusive offer for our VIP members.

Shows (everyone else): Join our membership to unlock rewards.

{% if customer.tags contains "VIP" %}
Here's an exclusive offer for our VIP members.
{% else %}
Join our membership to unlock rewards.
{% endif %}

With {% elsif %}, conditions are checked from the top, and the first match is shown.

Shows (customers tagged “Silver”): Silver members get free shipping on orders over $50.

{% if customer.tags contains "Gold" %}
Gold members always get free shipping.
{% elsif customer.tags contains "Silver" %}
Silver members get free shipping on orders over $50.
{% else %}
Join our membership to unlock free shipping.
{% endif %}

== shows the text when the values are equal, and != when they aren’t.

Shows (customers without a first name): Please add your name to your profile.

{% if customer.firstName == "" %}
Please add your name to your profile.
{% endif %}

Shows (a customer named Emma): Hi Emma!

Shows (customers without a first name): Nothing.

{% if customer.firstName %}
Hi {{customer.firstName}}!
{% endif %}

To show or hide a whole section, use the section’s display conditions.

Variables and conditions also work in the text and URL of links.

Replaced with the customer’s first name. If it isn’t set, nothing is shown. If some customers may not have a first name, combine it with Show text only when a value exists.

Shows: Hi Emma, thanks for shopping with us.

Hi {{customer.firstName}}, thanks for shopping with us.

Replaced with the customer’s last name. If it isn’t set, nothing is shown.

Shows: Welcome back, Ms. Smith.

Welcome back, Ms. {{customer.lastName}}.

Replaced with the name Shopify shows for the customer. This is usually their first and last name, or their email address if no name is set.

Shows: Account details for Emma Smith

Account details for {{customer.displayName}}

Replaced with the customer’s email address.

Shows: We'll send updates to emma@example.com.

We'll send updates to {{customer.email}}.

Shows the customer’s tags, separated by ”, ”. If there are no tags, nothing is shown. To change the text by tag, use Show text by customer tag.

Shows: Your tags: VIP, Gold

Your tags: {{customer.tags}}

Replaced with the order number. Only available in blocks on the order status page. Nothing is shown in blocks on other pages or on custom pages.

Shows: Shipping details for order #1001

Shipping details for order {{order.name}}

Start free today

Install on the Free plan and upgrade anytime as your store grows.

Try the app for free