This page shows how to use Liquid with event and transaction data in Blueshift. You'll find examples for event attributes, timestamps, event-based product data, and three ways to access transactions: segment-based, event-triggered, and direct transaction lookups.
All examples are verified for Blueshift's Liquid syntax and supported filters.
On this page
- Access event name
- Access event attributes
- Use event timestamp
- Transaction access (segment-based)
- Transaction access (event-triggered)
- Transaction lookup via mixins
- Event-triggered purchase details
- Days since event
- Cart abandonment loop
- Event value comparisons
- Combine user + event data
Access event name
Retrieve the triggering event name/type from bsft_event_context.
Liquid:
{{ bsft_event_context.event }}
Example data:
{
"bsft_event_context": { "event": "purchase" }
}
Access event attributes
Use properties sent with the event payload.
Liquid:
Product: {{ bsft_event_context.product_name }}
Price: ${{ bsft_event_context.amount }}
Quantity: {{ bsft_event_context.quantity }}
Example data:
{
"bsft_event_context": {
"product_name": "Leather Wallet",
"amount": 45,
"quantity": 1
}
}
Price: $45
Quantity: 1
Use event timestamp
Format the timestamp associated with the event.
Liquid:
{{ bsft_event_context.timestamp | date: "%B %e, %Y" }}
{{ bsft_event_context.timestamp | time_zone: "America/New_York" | date: "%B %e, %Y %l:%M %p" }}
Example data:
{
"bsft_event_context": { "timestamp": "2025-08-20T14:30:00Z" }
}
August 20, 2025 10:30 AM
Event-triggered purchase details
Show purchase info in event-triggered emails.
Liquid:
Order ID: {{ bsft_event_context.order_id }}
Total: ${{ bsft_event_context.amount }}
Payment: {{ bsft_event_context.payment_method }}
Example data:
{
"bsft_event_context": {
"order_id": "ORD-87421",
"amount": 129.99,
"payment_method": "credit_card"
}
}
Total: $129.99
Payment: credit_card
Transaction access (segment-based)
In segment-triggered campaigns, use user_transaction to access the most recent transaction that matched the segment.
Liquid:
{% if user_transaction %}
Last purchase: {{ user_transaction.order_id | default: "" }}
Brand: {{ user_transaction.hotel_brand | default: "" }}
Amount: {{ user_transaction.amount | default: "" }}
{% endif %}
Example data:
{
"user_transaction": {
"order_id": "ORD-87421",
"amount": 129.99,
"hotel_brand": "BlueStay Hotels"
}
}
Brand: BlueStay Hotels
Amount: 129.99
Transaction access (event-triggered)
In event-triggered campaigns, the transaction is embedded in bsft_event_context.
Liquid:
Order: {{ bsft_event_context.order_id }}
Total: {{ bsft_event_context.amount }}
First item: {{ bsft_event_context.items[0].title }}
Example data:
{
"bsft_event_context": {
"order_id": "ORD-87421",
"amount": 129.99,
"items": [
{ "title": "Running Shoes" },
{ "title": "Socks Pack" }
]
}
}
Total: 129.99
First item: Running Shoes
Transaction lookup via mixins
Use transaction mixins like transactions.Hotel_Booking to loop through related transactions and show details.
Liquid:
{% if transactions.Hotel_Booking and transactions.Hotel_Booking.size > 0 %}
{% for booking in transactions.Hotel_Booking %}
Hotel: {{ booking.property }}
Check-in: {{ booking.check_in_timestamp | date: "%b-%d-%Y" }}
{% endfor %}
{% else %}
No previous bookings found.
{% endif %}
Example data:
{
"transactions": {
"Hotel_Booking": [
{
"property": "BlueStay Downtown",
"check_in_timestamp": "2025-08-20T14:30:00Z"
}
]
}
}
Check-in: Aug-20-2025
Days since event
Calculate how many days have passed since this event fired.
Note: bsft_event_context is available only in event-triggered campaigns.
Liquid:
{% assign event_s = bsft_event_context.timestamp | date: "%s" %}
{% assign now_s = now | date: "%s" %}
{% assign days = now_s | minus: event_s | divided_by: 86400 %}
{{ days }} days ago
Example data:
{
"bsft_event_context": { "timestamp": "2025-08-20T00:00:00Z" }
}
Cart abandonment loop
Show items included in the cart event.
Liquid:
{% if bsft_event_context.items and bsft_event_context.items.size > 0 %}
{% for item in bsft_event_context.items %}
{{ item.title }} – ${{ item.price }}
{% endfor %}
{% else %}
Your cart is empty.
{% endif %}
Example data:
{
"bsft_event_context": {
"items": [
{ "title": "Running Shoes", "price": 80 },
{ "title": "Socks Pack", "price": 12 }
]
}
}
Socks Pack – $12
Event value comparisons
Change messaging using numeric or string comparisons.
Liquid:
{% if bsft_event_context.amount >= 100 %}
Thanks for your big purchase!
{% else %}
Thanks for shopping with us!
{% endif %}
Example data:
{
"bsft_event_context": { "amount": 120 }
}
Combine user + event data
Personalize event-triggered messages using user profile fields.
Liquid:
Hi {{ user.firstname }}, thanks for buying {{ bsft_event_context.product_name }}!
Example data:
{
"user": { "firstname": "Alex" },
"bsft_event_context": { "product_name": "Wireless Headphones" }
}
Comments
0 comments