Liquid bindings reference
Every dynamic field a notification email can use, which email types can use it, and the rules publishing checks.
This page lists the dynamic fields for notification emails and the rules they follow. For a short introduction, see Personalise emails with dynamic fields.
A field is written {{ name }} and works in the Email Subject Line, Email Preheader, Email Content, Email CTA Label and Email CTA Link. When a participant has no value for a field, it's left blank.
The fields
| Family | Fields | Holds |
|---|---|---|
| Organisation | enterprise_name, group_name, group_display_name, sender_from_name, sender_from_email, reply_from_email, facebook_link, instagram_link, tiktok_link, twitter_link | Your organisation, its sender and social links |
| Participant | contact_fullname, contact_firstname, contact_lastname, contact_email, contact_phone_number, contact_external_id | The person receiving the email |
| Touchpoint | collectible_title, collectible_subtitle, collectible_description, collectible_location, collectible_image_url | The touchpoint the email is about |
| Reward | reward_display_name, reward_title, reward_description, reward_image_uri, reward_winner_title, reward_eligible_title | The prize |
| Coupon | coupon_code, coupon_name, coupon_url | The prize's code |
| Activity | event_title, event_subtitle, event_location | The booked activity |
| Booking | booking_id, booking_slot_start_date, booking_attendees_count, booking_ticket_type_display_name | The booking itself |
Custom variables set for your organisation work by their own name, such as {{ country }}.
Greeting a participant
Use {{ contact_fullname }}. It shows the full name, or the first and last names together, whichever the participant gave. contact_firstname and contact_lastname are empty for participants who signed up with one full name field, so "Hello {{ contact_firstname }}," can come out as "Hello ,". Templates aren't updated for you when a campaign switches to a full name field.
Which email can use which
| Organisation, Participant | Touchpoint | Reward | Coupon | Activity, Booking | |
|---|---|---|---|---|---|
| Participate | Yes | No | No | No | No |
| Touchpoint Unlocked | Yes | Yes | No | No | No |
| Winner, Reward Redeemed | Yes | No | Yes | Yes | No |
| Loser, Eligible | Yes | No | Yes | No | No |
| Booking Confirmation, Booking Cancellation, Booking Confirmation Reminder | Yes | Yes | No | No | Yes |
Examples
You've won {{ reward_display_name }}!Hi {{ contact_fullname }},
You've won {{ reward_display_name }}. Your code: {{ coupon_code }}Hi {{ contact_fullname }},
Your place at {{ event_title }} is booked for {{ booking_slot_start_date }}, at {{ event_location }}.Rules
- Spell each field exactly as listed. An unknown field blocks publishing.
- Use a field only in the emails that can use it: a coupon code in a Loser email blocks publishing.
- Close every
{{with}}. - Keep formatting outside the brackets:
<b>{{ contact_fullname }}</b>, never{{ <b>contact_fullname</b> }}. - In Email CTA Link, a field on its own must hold an address:
coupon_url,reward_image_uri,collectible_image_urlor a social link. Inside a longer address, any field works, as long as the rest is a valid address. - Write each sentence so it still reads when a field is blank.
What publishing reports
| Problem | Message | Fix |
|---|---|---|
| Unknown field | Undefined liquid variable '…' used in … | Use a field from this page |
| Field not allowed in this email | Liquid variable '…' (… binding) cannot be used in … notification | Use a field that email type allows |
| Brackets not closed | … has invalid liquid template syntax: … | Close every {{ with }} |
| Formatting inside the brackets | … contains HTML tags inside liquid template: … | Move the formatting outside |
| The button link isn't an address | … notification uses '…' as its CTA link, but that variable does not hold a URL | Use an address field, or a full address |
Next steps
- Notification types reference
- About webhooks, when another system needs the same events