Liquid Guide

Appropo uses Liquid, the same templating language as Shopify, to personalise the emails and notifications you send to customers. This guide covers the basics. For the full list of available variables and filters, see Liquid Templates in the developer docs.

Variables

Variables let you drop a customer’s own details into a message. Wrap the variable name in double curly braces to output its value.

Hello {{ customer.first_name }},

Thanks for your order of {{ order.total | money }}.

If a customer named Sam places a $24 order, that becomes:

Hello Sam,

Thanks for your order of $24.00.

Filters

Filters change how a value is displayed. Add one with a pipe | character, and chain as many as you need.

{{ order.total | money }}          outputs $24.00
{{ customer.first_name | upcase }}  outputs SAM
{{ order.placed_at | date: "%d %B %Y" }}  outputs 13 June 2026

Tags

Tags add simple logic, so a message can change based on the order or customer.

Show different text depending on the order type:

{% if order.type == "delivery" %}
  Your order will be delivered to {{ order.address }}.
{% else %}
  Your order will be ready for pickup.
{% endif %}

Loop over each item in an order:

{% for item in order.items %}
  - {{ item.name }} x{{ item.quantity }}
{% endfor %}

Tips

  • Always test a template with a real order before sending it widely.
  • If a variable is empty, it simply outputs nothing, so keep the surrounding text readable either way.
  • Stick to the variables listed in Liquid Templates. A variable that doesn’t exist will be blank.