Case Study · Enterprise Retail · SFMC

Loyalty
Campaign
Architecture

End-to-end design and build of an enterprise loyalty automation suite — Tier Recognition, Birthday/Anniversary celebration journeys, and URRC (Unredeemed Reward Reminder Campaign) — integrating Salesforce Marketing Cloud with Vii voucher services, Salesforce CRM, and a customer-facing mobile app.

Dynamic Module AMPscript Voucher Integration Automation Salesforce CRM
Three-Program Suite

Loyalty Automation Programs

Three interconnected journeys sharing a unified data architecture, centralised voucher integration, and reusable personalisation templates.

Program 01

Tier Recognition

Automated tier upgrade recognition delivering personalised reward emails the moment a member moves from Silver → Gold → Platinum. Vouchers are created in real time via Vii API and embedded directly in the email.

Journey Builder Vii API AMPscript CRM Trigger
Program 02

Birthday and Anniversary Journeys

The Journeys dynamically deliver personalised emails/sms and landing pages to eligible members, providing them with a seamless experience for redeeming their rewards. Automated, running daily to target and send reward journeys on their special day.

SQL Automation Mobile Studio Email Studio Studio Voucher Allocation Vii API AMPscript
Program 03

Unredeemed Reward Reminder

Tracks members with active but unredeemed reward cards and re-engages them before expiry. A daily CRM-to-SFMC sync checks redemption status; unredeemed members receive a targeted reminder email with their reward details displayed for a seamless redemption experience.

Dynamic Module CRM Sync Cloud Pages Automation
Technical Architecture · Program 02

Birthday / Anniversary Journey Flow

End-to-end data flow — from SFMC journey trigger through Vii voucher creation to CRM sync and mobile app delivery

SFMC — Salesforce Marketing Cloud
Birthday
Entry DE
Voucher
Allocation CP
logs to DE
Vii
Voucher Log
Redeemed?
No
Reminder
Email
Exit
Journey
✓ Yes path
Redeemed → Exit Journey immediately

① Entry Criteria

A SQL daily query selects the target audience and injects them into the journey at 9 AM local time.

② Voucher Allocation

Cloud Page calls the Vii REST API to create or retrieve a unique voucher code per member. Code, value, and expiry are written back to a Data Extension.

③ Decision Logic

A Reward Card Redeemed DE is imported daily from Salesforce CRM. The journey decision split reads this DE to check each member's redemption status.

☁️

Vii Service Integration

Cloud Page makes REST API call to Vii to create or retrieve a unique voucher. Voucher code, value, and expiry written back to SFMC Data Extension and embedded in email via AMPscript.

🔄

CRM Sync — Reward Card Object

Vii sends a Daily Zero Balance File to Salesforce CRM, updating the Reward Card Object. An Automation Studio import job syncs redemption status back into SFMC for the journey decision split.

📱

Mobile App Delivery

Post voucher creation, the Reward Card Object in CRM triggers a push notification to the mobile app, displaying the reward in the member's "Your Rewards" module for in-store redemption.

Deliverable 01 · Program 02

Birthday Reward Email

AMPscript-personalised email with dynamic tier-based reward value, embedded voucher code, and member barcode. Sent 7 days before birthday with a 30-day redemption window.

email client · Birthday Reward
Deliverable 02 · Program 02

Anniversary Reward Landing Page

A personalised Cloud Page served via the email CTA. Displays the member's reward card with live balance, barcode for in-store redemption, and full card details. Powered by AMPscript + Vii data.

cloud.memberoffers.loyalty.au/AnniversaryReward
LOYALTY one

Exclusive Offer for %%FirstName%%

Member No. %%FormattedMemberNumber%%

🛍️

Here's to another year!

Happy Anniversary
to you %%FirstName%%

Treat yourself to your %%AnniversaryRewardValue%% Anniversary Reward.

Expires %%ExpiryDate%%

To redeem, present in-store or enter online as a Reward at checkout.

SHOP NOW
LOYALTY one
%%CardNumber%%
Current Balance: %%CurrentBalance%%

Original Value: %%AnniversaryRewardValue%%


%%IssueDate%%
%%CardNumber%%
%%ExpiryDate%%
%%AccessCode%%
Deliverable 03 · Program 03

URRC — Unredeemed Rewards Module

The customer-facing output of the URRC program. All active, unredeemed rewards are displayed here — accessible via the mobile app and loyalty portal. Each reward links to its personalised redemption Cloud Page. Updated daily via CRM sync.

loyalty app · Your Rewards

Your Rewards


🎂
Birthday Reward Expires on 18/11/25
Access
$15

💵
$10 Reward Expires on 15/10/26
Access
$10

All active rewards displayed above. Updated daily via CRM sync.

Technical Process

How It Was Built

Three key engineering phases — from data architecture through integration to personalisation and redemption tracking.

Phase 01 · Data & Entry

Audience & Architecture

  • Subscriber Key strategy aligned across all 3 programs
  • Tier, birthday, and anniversary dates sourced from Salesforce CRM
  • SQL daily query identifies eligible birthday and URRC contacts
  • Data Extensions designed for voucher logging and audit trail
  • Journey entry injects contacts at 9AM local time
SQL Automation Studio Contact Builder
Phase 02 · Voucher Integration

Vii API & Allocation

  • Cloud Page calls Vii REST API using SSJS on page load
  • API creates or retrieves existing voucher per member
  • Voucher code, value, barcode, and expiry written to DE
  • AMPscript retrieves voucher from DE for email embedding
  • Error handling for failed API calls with fallback logic
REST API SSJS AMPscript Cloud Pages
Phase 03 · Redemption & Sync

CRM Sync & URRC Logic

  • Vii sends daily Zero Balance file to Salesforce CRM
  • CRM updates Reward Card Object redemption status
  • Automation Studio imports status back into SFMC daily
  • URRC journey identifies unredeemed members for reminder
  • Reminder email + mobile app "Your Rewards" module surfaces active cards
CRM Connect Automation Studio Journey Builder
Outcomes

What Was Delivered

Automation

  • 3 fully automated loyalty journeys from zero
  • Daily SQL-driven audience refresh replacing manual lists
  • Voucher delivery within minutes of journey entry

Personalisation

  • Tier-based reward values (Silver / Gold / Platinum)
  • First name, reward value, expiry dynamically rendered
  • Anniversary milestones with historical spend display

Integration

  • Vii REST API for real-time voucher creation/retrieval
  • Bidirectional CRM sync for redemption status tracking
  • URRC rewards visible in mobile app post voucher creation

Scalability

  • Shared Subscriber Key architecture across all 3 programs
  • Reusable AMPscript framework for future loyalty programs
  • Full documentation and marketing team self-service
✦ Case Study Complete

Want to See
More Work?

Explore the full portfolio or get in touch to discuss your next project.