Skip to content

What Are Liquid Tags (and How Can You Use Them on TicketingHub?)

Have you ever wanted to personalise every email or ticket your customers receive—without rewriting the whole thing each time? That is exactly where Liquid Tags shine. This guide is for TicketingHub users who want to send smart, dynamic messages that pull real-time information from each booking.

Whether you are welcoming guests by name, changing messaging based on language or adjusting details depending on the day of the week, Liquid Tags help you automate the process while keeping it personal. No coding knowledge is required.

What Exactly Is a Liquid Tag?

Liquid Tags are placeholders — small pieces of code that automatically insert personalised information from a customer’s booking into your emails, tickets or automated messages.

For example, if you write:

Hello {{ customer.first_name }}, your tour is confirmed!

Your customer will receive:

Hello Carl, your tour is confirmed!

Important: All Liquid tags in TicketingHub use double curly braces {{ }} for output variables and {% %} for logic. Always use this format — do not use single braces { }.

Note on AI tools: If you ask ChatGPT, Gemini or another AI assistant to write Liquid tag templates, the syntax they suggest may not match TicketingHub’s implementation. Check the Liquid Supported badge popover when shown and use the examples on this page as guidance.

Types of Liquid Tags You Can Use

TicketingHub supports two main types of Liquid Tags:

Output Tags

These display specific booking details such as names, dates and product information.

Hello {{ customer.first_name }}, your tour on {{ booked_for_date }} is confirmed.

Logic Tags

These allow you to create rules and display different content depending on conditions — such as the booking language, ticket type or day of the week.

{% if order.language == "fr" %}
Add your French-language message here.
{% else %}
Hello! Thank you for your booking.
{% endif %}

How to Check Whether an Area Supports Liquid Tags

There is no activation toggle. Liquid works in an editor or field where a Liquid Supported badge is shown. It is also supported in ticket and voucher booking messages and in ticket footers.

Hover over the Liquid Supported badge to open its popover. Use it as the live reference for that area, but do not assume the popover lists every possible field. Preview or test your message before sending it to customers.

Where to Use Liquid Tags in TicketingHub

Liquid Tags work in:

  • Editors and fields marked with the Liquid Supported badge
  • Supported ticket booking and voucher booking messages
  • Ticket footers
  • Supported product and account email templates

Not all variables are available in every location. Booking emails can use details for one booking, while receipts, invoices, refunds and payment requests cover the wider order and have a different set of details. If a tag is blank, check the badge popover and the context guidance below, then test it with a real example.

Add Liquid to a Product Email

  1. Open the product and go to Emails.
  2. Find the template you want to change and select View, then Edit.
  3. Add supported Liquid output or logic to the message.
  4. Save the template.
  5. Use Send Test Email when available and check the rendered result before using the template for customers.

Customise by Language

If you have international and local customers, you can tailor your messaging based on the language selected during booking.

Update: The {{ order.language }} variable now correctly captures the language your customer chose in the booking widget. Your conditional language logic will work reliably across all new bookings.

{% if order.language == "es" %}
Add your Spanish-language message here.
{% elsif order.language == "fr" %}
Add your French-language message here.
{% else %}
Hello! Thank you for your booking.
{% endif %}

Personalise by Ticket Type

Want to give special messages to VIPs or students? Use conditional tags to customise content based on ticket type.

{% if tier_names contains "VIP" %}
Welcome VIP! Enjoy your complimentary welcome drink.
{% elsif tier_names contains "Student" %}
Don't forget to bring your student ID.
{% else %}
Thanks for booking! Please arrive on time and enjoy the tour.
{% endif %}

Change the Meeting Point Based on the Day of the Week

If your meeting location changes on certain days, you can set up a rule to display the correct information automatically.

{% assign weekday = booked_for_date | date: '%a' %}
{% if weekday == 'Mon' %}
Please meet at our annex building.
{% else %}
Please meet at our main office.
{% endif %}

Advanced Language Conditions

Many operators run tours for international audiences. These examples keep the output as an English placeholder so you can replace it with your reviewed translation.

Right-to-left message:

{% if order.language == "he" %}
<p style="direction: rtl; text-align: right;">
Add your reviewed right-to-left message for {{ customer.first_name }} here.<br>
<strong>Product:</strong> {{ product.name }}
</p>
{% else %}
Hello {{ customer.first_name }}! Thank you for your booking.
{% endif %}

Language-specific message:

{% if order.language == "ja" %}
Add your Japanese-language message for {{ customer.first_name }} here.
Product: {{ product.name }}
{% else %}
Hello {{ customer.first_name }}, thank you for your booking.
Tour: {{ product.name }}
{% endif %}

Pro Tip: You can combine conditions for ticket type, language and day in a single message. Check the Liquid Supported badge when it is shown and always preview the result.

Check Support Before Publishing

Do not assume that Liquid works in every text field. If there is no Liquid Supported badge and the field is not a supported ticket or voucher booking message or ticket footer, test it before relying on dynamic content.

Unsupported tags may appear blank or remain as typed. Send a test email or create a test ticket or voucher before publishing changes that will be shown to customers.

Why Use Liquid Tags?

Because they help you:

  • Automatically personalise customer messages with real booking data
  • Send emails in your customers’ own language without maintaining separate templates
  • Avoid manual edits and reduce human error
  • Show accurate, dynamic information for each booking — meeting points, pickup times, guide details and more

Common Liquid Tags

The following commonly used tags are grouped by category. Availability depends on where you use them, and this reference may not include every possible field. Use the Liquid Supported badge popover when shown and see Which Tags Each Email Supports below for email context.

Order & Booking

{{ reference }}
{{ order.reference }}
{{ order.language }} — Language selected by the customer in the booking widget.
{{ order.referral_code }}
{{ order.checkout_url }}
{{ booked_for_date }}
{{ size }} — Number of people in the booking.
{{ group_booking }}
{{ questions_with_answers }}
{{ extra_names }}

Voucher

{{ voucher }} — Note: returns true or false indicating whether this is a voucher
booking. It does not contain a voucher or reference code — use
{{ reference }} for the booking reference.

Product

{{ product.name }}
{{ product.address.name }}
{{ product.address.building }}
{{ product.address.street }}
{{ product.address.city }}
{{ product.address.region }}
{{ product.address.postal_code }}
{{ product.address.country }}
{{ product.address.google_maps_url }}
{{ product.formatted_address }}

Season, Variant & Option

{{ season.name }}
{{ variant.name }}
{{ tier_names }}
{{ option.name }}
{{ option.time }}

Customer

{{ customer.first_name }}
{{ customer.last_name }}
{{ customer.full_name }}
{{ customer.company }}
{{ customer.email }}

Attendee

{{ attendee.first_name }}
{{ attendee.last_name }}
{{ attendee.full_name }}
{{ attendee.company }}
{{ attendee.email }}

Pickup

{{ pickup.location }}
{{ pickup.time }}
{{ pickup.note }}
{{ pickup.map }}

Supplier

{{ supplier.name }}
{{ supplier.logo }}
{{ supplier.logo_url }}
{{ supplier.website }}
{{ supplier.telephone }}
{{ supplier.email }}

Guide

{{ guide.name }}
{{ guide.first_name }}
{{ guide.last_name }}
{{ guide.telephone }}

Channel & Reseller

{{ channel.name }}
{{ reseller.name }}

Payment & Refund

{{ amount }}
{{ payment_link }}

Merchandise

{{ merchandise.name }}

Other

{{ notes }}
{{ manage_booking_url }}
{{ smartwaiver_url }}
{{ tickets_download_url }} — Link for the customer to download their tickets.

Which Tags Each Email Supports

Not every tag works in every email. A tag that is not supported in a particular email may render as blank, so test templates before using them. The Liquid Supported badge popover is the live reference for that template when shown, although it may not list every possible field.

Important — booking vs. order details: Tags such as {{ attendee.* }}, {{ product.* }}, {{ option.* }}, {{ pickup.* }} and {{ guide.* }} describe a single booking and only work in booking emails. Receipt, Invoice, Refund and Payment Request emails cover the whole order, which can contain several bookings, so those tags are not available there — use {{ customer.first_name }} for the greeting instead.

Booking emails

Ticket Booking Confirmation, Voucher Booking Confirmation, Booking Reminder, Booking Changed, Booking Cancelled, Booking Feedback, Abandoned Booking Recovery.

Supported: Order & Booking, Voucher, Product, Season/Variant/Option, Customer, Attendee, Pickup, Supplier, Guide, Channel & Reseller, Other.

Receipt & Invoice emails

Receipt (sent when the order is paid in full) and Invoice / Proforma Invoice (sent when a deposit or balance is outstanding).

Supported: Customer, Supplier, Order.

In these emails, the order is the subject of the message, so write order fields without the order. prefix: {{ reference }}, {{ language }}, {{ referral_code }}, {{ checkout_url }}.

Refund emails

Sent when a refund is issued.

Supported: Customer, Supplier, Order, {{ amount }}.

Payment Request emails

Sent when you ask a customer to pay an outstanding balance.

Supported: Order, {{ amount }}, {{ payment_link }}.

In these emails, the customer and supplier are nested under the order — use {{ order.customer.first_name }} and {{ order.supplier.name }}.

Gift Card emails

Sent when a customer buys a gift card.

Supported: Customer, Supplier, {{ reference }}, {{ merchandise.name }}.

Common Mistakes to Avoid

1. Using single braces instead of double braces

Wrong: { customer.first_name }
Correct: {{ customer.first_name }}

2. Mixing up product and tour in variable names

Wrong: {{ tour.name }}
Correct: {{ product.name }}

TicketingHub uses product — this is the most common syntax error we see.

3. Trusting AI-generated tag syntax

ChatGPT and Gemini may suggest Liquid Tag formats that do not match TicketingHub’s implementation. Check the Liquid Supported badge when shown and compare the suggestion with the examples on this page.

4. Using Liquid Tags without checking support

Look for the Liquid Supported badge or use a supported ticket or voucher booking message or ticket footer. Preview the result before publishing.

5. Variable unavailable in that email type

Some variables are only available in specific email types. If a tag is not rendering, check Which Tags Each Email Supports above — the variable may not be supported in that email.

Liquid Tags Made Simple

Liquid Tags might sound technical, but once you get the hang of them, they are a real game-changer. They are perfect for busy operators who want to automate communication without losing that personal touch.

And if you are ever unsure about how to structure a tag, we are here to help — just get in touch!