Wanderlust Travel Co.
Where Next?
A luxury-editorial World Tourism Day member privilege campaign architected in Salesforce Marketing Cloud (SFMC). Featuring relational catalog lookups, real-time date countdown math, tier-based mathematical discount engines, and a responsive MJML built email.
Email Preview
Rendered dynamic template
|
|
|
|
|
|
|
Campaign Architecture
Wanderlust Travel Co. honors World Tourism Day (September 27) by delivering highly personalized,
editorial travel recommendations to private club members.
Instead of relying on generic static promotional blasts, this lifecycle campaign uses relational
data lookups based on the member's past trip style (Beach, Adventure, City, Culture, Foodie,
Wildlife) to curate their next luxury escape.
The email architecture incorporates a real-time countdown engine using DateDiff() to
drive urgency toward the September 27 deadline, programmatic loyalty discount math
(calculating custom pricing by tier), dynamic asset orchestration, and fail-safe fallback logic.
Data & Render Pipeline
Members & Sendable Audience DE
│
▼
SQL Query Activity (Segmentation by Active Tier & Activity)
│
▼
Sendable Campaign Data Extension
│
├─► DateDiff(Now(), PromoDeadline) ──► Real-Time Urgency Badge & Countdown
├─► LoyaltyTier Logic ───────────────► Dynamic Discount Math & Subject Lines
├─► LookupRows(Destinations, Style) ─► Relational Package Query & Fallbacks
└─► Style Matrix Index ──────────────► Dynamic Hero & Staggered Editorial Imagery
│
▼
Compiled MJML Responsive Engine (High-End Editorial Aman Layout)
│
▼
Personalized Member Inbox Delivery
Audience preparation is orchestrated via SQL queries in Automation Studio, while full content curation, image mapping, and price calculations run dynamically at send time using AMPscript.
Relational Data Model
Wanderlust Club
SubscriberKey (PK)
EmailAddress
FirstName
HomeCity
LoyaltyTier
PointsBalance
TravelStyle
LastDestination
LastTripDate
Destinations (Catalog)
DealID (PK)
TravelStyle
Destination
Country
Region
Nights
FromPrice
Tagline
BookURL
HeroBgImage
Editorial_Assets
StyleID (PK)
TravelStyle
HeroBgImage
StaggeredImg1
StaggeredImg2
DiscoverCardImg
Wanderlust Club (Send DE)
│
│ TravelStyle (Match Category)
▼
Destinations (LookupRows)
│
│ TravelStyle Fallback (LookupOrderedRows 'All' DESC)
▼
Dynamic Editorial Image Matrix & Calculations
AMPscript: Relational Lookups & Date Math
Queries dynamic destination rows based on individual preference, manages multiple fallback tiers, and evaluates the campaign deadline in real-time.
/* 1. Real-Time Expiry Math (Sept 27 - World Tourism Day) */
SET @today = Now()
SET @promoEndDate = StringToDate("2026-09-27")
SET @daysRemaining = DateDiff(@today, @promoEndDate, "D")
IF @daysRemaining > 2 THEN
SET @urgencyBadge = Concat('• ', @daysRemaining, " Days Remaining <br> Valid Through Sept 27")
ELSEIF @daysRemaining >= 0 THEN
SET @urgencyBadge = "• Final Call <br><span style = 'color:#c59b27; font-weight:700;'>Ends September 27</span>"
ELSE
SET @urgencyBadge = ''
ENDIF
/* 2. Relational Catalog Lookup with Ordered Fallback */
SET @destinationRows = LookupRows('Destinations', 'TravelStyle', @travelStyle)
IF RowCount(@destinationRows) > 0 THEN
SET @destRow = Row(@destinationRows, 1)
SET @destination = Field(@destRow, 'Destination')
SET @country = Field(@destRow, 'Country')
SET @region = Field(@destRow, 'Region')
SET @nights = Field(@destRow, 'Nights')
SET @fromPrice = Field(@destRow, 'FromPrice')
SET @tagline = Field(@destRow, 'Tagline')
SET @bookURL = Field(@destRow, 'BookURL')
ELSE
SET @destinationRows = LookupOrderedRows('Destinations', 1, 'FromPrice DESC', 'TravelStyle', 'All')
SET @destRow = Row(@destinationRows, 1)
SET @destination = Field(@destRow, 'Destination')
SET @country = Field(@destRow, 'Country')
SET @region = Field(@destRow, 'Region')
SET @nights = Field(@destRow, 'Nights')
SET @fromPrice = Field(@destRow, 'FromPrice')
SET @tagline = Field(@destRow, 'Tagline')
SET @bookURL = Field(@destRow, 'BookURL')
ENDIF
Mathematical Discount & Tier Pricing Engine
Discounts are determined programmatically by tier (Platinum: 25%, Gold: 20%, Silver: 15%, Base: 10%). The discount price is calculated on the fly using AMPscript math operators rather than hardcoded copy.
/* Tier Discount Rules */
IF @loyaltyTier == "Platinum" THEN
SET @discountPercent = 25
SET @subjectline = Concat(@firstName, ", your Platinum privilege: 25% sitewide through Sept 27")
ELSEIF @loyaltyTier == "Gold" THEN
SET @discountPercent = 20
SET @subjectline = Concat("A 20% World Tourism Day privilege for our Gold members")
ELSEIF @loyaltyTier == "Silver" THEN
SET @discountPercent = 15
SET @subjectline = Concat(@firstName, ", unlock 15% off your next escape")
ELSE
SET @discountPercent = 10
SET @subjectline = "Your World Tourism Day invitation: 10% off all itineraries"
ENDIF
/* Dynamic Mathematical Price Calculation */
SET @formattedFromPrice = FormatNumber(@fromPrice, "C0", 'en-US')
SET @calcDiscountPrice = Multiply(@fromPrice, Subtract(1, Divide(@discountPercent, 100)))
SET @formattedDiscountPrice = FormatNumber(@calcDiscountPrice, "C0", 'en-US')
Key Engineering Highlights
LookupRows and LookupOrderedRows.
DateDiff and triggers sub-48hr warning tags.
Multiply, Subtract, and Divide.
credits
Source Code
The complete AMPscript, SQL queries, MJML template, and compiled HTML files are available on GitHub.