What Are Liquid Tags (and How Can You Use Them on TicketingHub?)
Ever wanted to personalize every email or ticket your customers receive—without rewriting the whole thing each time? That’s 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’re welcoming guests by name, changing messaging based on language, or tweaking 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 — tiny pieces of code that automatically insert personalized 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 like 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 — like 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 with a real example.
Add Liquid to a Product Email
- Open the product and go to Emails.
- Find the template you want to change and select View, then Edit.
- Add supported Liquid output or logic to the message.
- Save the template.
- Use Send Test Email when available and check the rendered result before using the template for customers.
Customize by Language
If you have international and local customers, you can tailor your messaging based on the language selected at 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 %}Personalize by Ticket Type
Want to give special messages to VIPs or students? Use conditional tags to customize 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 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 info 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 customer-facing changes.
Why Use Liquid Tags?
Because they help you:
- Automatically personalize 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 info 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 given 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 like
{{ 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 don’t 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 isn’t 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’re a total game-changer. They’re perfect for busy operators who want to automate communication without losing that personal touch.
And if you’re ever unsure about how to structure a tag, we’re here to help — just reach out!