
Traditional loyalty? It's kind of a mess. Points, tiers, clunky dashboards, it all sounds good in theory, but in practice? Slow, disconnected, and most customers don’t care. But here’s the good news: you don’t need a full-blown loyalty platform to drive retention. What you really need is the ability to experiment quickly, with incentives, timing, messaging, and rules, using tools that already talk to each other.
In this post, I break down how to run loyalty-style experiments right inside Braze with Voucherify powering your incentives behind the scenes. Treat it as a guide on how to go from “should we do loyalty?” to “we’re already testing five ways to boost LTV.” (And yes, the title says without leaving Braze, but if you're going to step out, make it worth it.)
Here’s how to reframe loyalty as a set of composable touchpoints, not a monolithic program:
Before you build anything, you need a clear view of when loyalty actually happens. Not loyalty as a status (“Gold Tier”), but loyalty as behavior: second purchases, high-margin baskets, repeat orders in short windows, referrals, app reactivations, and so on.
This starts with mapping out your customer journey, but this time, through the lens of retention experiments, not static programs. Ask yourself:
Then define what loyalty-worthy looks like for your brand. Some common triggers:
Use Braze to model these as event or attribute-based triggers, then route users into journeys via Canvas.

To map loyalty‑worthy journeys, your foundation is real‑time, unified customer data. Here’s how to connect the dots.
Orchestrate loyalty journeys with Canvas
Once you’ve mapped out your loyalty-worthy touchpoints and connected your data sources, Braze Canvas is where it all comes together. Canvas isn’t just a journey builder, flexible enough for simple nudges or full retention flows. It can also become your experimentation framework. Control groups and variants let you measure lift, not just activity, so every loyalty idea can be validated before it’s scaled.
Start with one loyalty moment. For example:
Canvas gives you full control:

In loyalty, not every user deserves the same reward and that’s where Braze’s AI Agent Console changes the game. Instead of fixed rules (“3 purchases = $5 off”), you can evaluate loyalty behaviors dynamically, one user at a time. Here’s how it works in practice:
It’s loyalty personalization at the decision layer: reward only when it matters, preserve margin where it doesn’t, and scale your strategy without bloated tiers or static logic.
Connected Content lets you call external APIs directly from your Braze messages and Canvas flows, pulling in real-time loyalty data at the moment of send. Static promo codes and pre-loaded rewards don’t cut it when you’re aiming for personalized, responsive loyalty experiences.
With Connected Content, you can:
In your Braze message, use Liquid to make a request to your loyalty engine. For example:
{% connected_content "https://api.voucherify.io/v1/loyalties/cards/{{custom_attribute.loyalty_card}}"
:method get
:headers { "X-App-Id": "APP_ID", "X-App-Token": "API_KEY" }
:content_type application/json
:save result %}
Then render the response dynamically: Hi {{${first_name}}}, you have {{ result.loyalty_card.balance }} points available.
Use code {{ result.reward.code }} to redeem your reward today.
Every message reflects the current state of that user’s loyalty data, no batch syncs or manual updates required.
Let’s see how Connected Content works in practice: https://app.demoboost.com/playback/mih79z9b
If Connected Content handles real-time lookups at send time, Braze custom attributes are how loyalty data sticks. They let you store the outcomes of incentive logic directly on the user profile, so Braze can remember what happened and act on it later.
Whenever something meaningful happens in Voucherify, including points awarded, tier changes, referral rewards, or promo code creation and redemption, those updates can be pushed back to Braze and saved as custom attributes on the user profile like loyalty_points_balance or current_tier.
Once stored, this data becomes native to Braze. You’re no longer dependent on a live API call to know where a user stands, as Braze already has the context.
That opens up a new class of loyalty flows:

This works especially well alongside Voucherify’s Distributions. Connected Content pulls data at send time, while Distributions push updates proactively.
The moment something changes in Voucherify, Braze receives the update, user profiles refresh, and active journeys stay in sync automatically. Take a look: https://app.demoboost.com/playback/mizqk523
Braze is your journey builder, it knows when to talk, where to reach users, and how to shape the flow. But when it comes to the logic behind incentives: who qualifies, what they get, how it’s validated, and what happens next, that’s Voucherify’s job.
Here’s how Voucherify handles everything behind the scenes to make your loyalty strategy secure, observable, and attributable.
Every loyalty message needs logic behind it. What exactly is the offer? Who qualifies? Has it been redeemed? Is it still valid?
Here’s what that looks like:
Voucherify gives you a powerful layer of logic with discount formulas, so you can encode rules directly into the incentive itself. Think of them as programmable safety rails that automatically adjust based on custom data like cart value, customer segment, or location.
This means your loyalty logic isn’t fully dependent on orchestration. You can push high-trust offers through Braze, knowing Voucherify will enforce the incentive rules at redemption time.
To see how this works in practice, take a look at the demo: https://app.demoboost.com/playback/miy7oc3m
It walks through a full end-to-end flow: a dynamic discount formula that returns different values per country, validation rules that control when the incentive applies, and a Braze campaign targeting the right audience.
At send time, Braze makes a Connected Content call. Voucherify generates a unique code, assigns it to the customer, and returns it straight into the email. The customer profile is created automatically, metadata is stored, and the incentive is fully attributable from issue to redemption. No pre-generated codes or manual synching needed.
Launching hundreds of promo experiments? That’s smart. Losing money on unchecked redemptions? Not so much.
Voucherify gives you programmable safety nets:
Rules are great on paper, but seeing them fire in real time is better. Here’s a fast look at how Voucherify handles eligibility checks, start dates, stackability, and error handling without any extra work from your Braze flow: https://app.demoboost.com/playback/miyfubw9
Braze knows when to send an offer, but it doesn’t know what happens next. Did the customer use it? Did it drive a repeat purchase? Was it shared, ignored, or misused? With full-lifecycle tracking, Voucherify gives you:
You’ve sent the offer. Now the real story begins. Here’s how Voucherify keeps you in control with live tracking, budget caps, and clean attribution that flows straight back into Braze: https://app.demoboost.com/playback/miyfw542
Loyalty shouldn’t be a multi-year platform decision. It should be a system of experiments you can run, measure, and iterate on today.
With Braze as your CEP and Voucherify as your Incentives Engine, you get: