Braze Retention in Practice: Wiring Predictive Churn and Purchases into Canvas

There are a dozen Klaviyo articles on this site and this is the first Braze one, so let me place it before you spend time here. If you run a Shopify store with email and SMS and nothing else, Braze is probably not your tool, and Klaviyo will cost less and annoy you less. Braze earns its keep at brands with an app and several live touchpoints: email, push, in-app messages, SMS and WhatsApp all orchestrated on one canvas, triggered off a real-time behavioral stream rather than a list that refreshes hourly. This piece covers one thing only, which is getting the two predictive models into Canvas instead of watching scores accumulate in a dashboard.

What Braze predictions do differently

The visible difference is where the score comes from. Klaviyo hands you a churn risk label that works out of the box and you never touch the definition. Braze Predictive Churn makes you write the definition first: which behavior counts, how many days without it means churned, which population trains the model, how far back to look. Only then does it train. That freedom cuts both ways. Get the definition right and it beats a generic label comfortably. Get it wrong and the model diligently learns the wrong thing without ever flagging that it did.

The most common ecommerce mistake is defining churn as days since last app open. It sounds reasonable and it quietly labels a large block of loyal web-only buyers as high risk, after which your win-back numbers look inexplicably bad. Define the churn event on something that touches revenue, a purchase or at minimum a checkout started. App opens belong in the feature set where the model can weigh them, not in the label.

Worth clearing up one naming thing. BrazeAI, also branded Sage AI, is the umbrella over the whole AI feature set, and predictive churn, predictive purchases and send-time optimization all sit under it. It is not a 2026 launch. What is new is a number from the 2026 Braze Customer Engagement Review, published on 2026-02-24: the highest-performing Braze customers were 30% more likely to use AI to anticipate purchase intent. That is a correlation from a survey. High performers lean toward these features; it does not mean flipping the switch produces a 30% lift. Do not put it in a deck as a product result.

Cold start: how much data before the model stops guessing

Predictive Churn is a binary classifier, so it needs volume on both sides, enough users who genuinely churned and enough who stayed. New stores fail the first condition because nobody has had time to leave yet. Low-volume stores fail both. Braze will tell you whether the sample clears its bar, but it will not tell you whether the sample is any good.

My own line, an operating heuristic rather than a documented requirement: at least 6 months of continuous behavioral history, a few thousand users who produced a churn event inside the lookback window, and repeat buyers making up 20% or more of the training population. If your store is still doing three-digit monthly orders, this will not outperform an RFM split. It will learn your noise and present it back as signal.

Window settings break more implementations than sample size does. Both the lookback and the prediction window have to match the repurchase cycle of your category. Thirty days is fine for consumables. Durables and seasonal categories need 90 to 180. Point a 30-day window at a brand people buy from once a year and the model will tell you every week that everyone is churning, which under that definition is technically correct and completely useless. Do not sit and wait through cold start either. Build the Canvas skeleton now with rule-based conditions, days since last purchase plus an RFM tier will do, and write those into the Audience Paths. When the model trains and the score distribution looks sane, swap each branch condition from the rule to the prediction. Structure, copy and frequency caps all survive untouched. That sequencing saves you one full rebuild later.

Turning a score into a Canvas branch

Mechanically this is easy. The prediction lands as a user attribute, it works in segment filters, and it works as a Canvas branching condition. Use Audience Paths rather than a Decision Split. Audience Paths splits many ways at once; a Decision Split gives you yes and no, so a six-tier design built out of them nests into something nobody on your team will be able to read in a month.

One design rule deserves its own paragraph: do not trigger entry on the score, trigger on behavior. Prediction scores refresh in batch, typically daily, so using one as a real-time trigger drifts entry timing by most of a day. Behavior is what happens in real time, a browse, an add to cart, a refund, a subscription cancel. Let those start the Canvas and let the score decide only which path the user takes once inside. Trigger on behavior, branch on prediction. Get that split right and a cart abandon fires within minutes instead of waiting for the next overnight batch. The table below is a tiering I have used, and it is an orchestration design example rather than a set of Braze-recommended thresholds, so recalibrate it against your own data:

Churn riskPurchase intentWhat the Canvas branch doesPrimary channel
High (top 10%)HighNo discount, reminders and friction removal onlyPush + Content Card
HighLowTwo escalating offers, 7 days apartEmail, push after 48h with no open
MediumHighCategory recommendation plus free-shipping threshold nudgeEmail
MediumLowContent-led touch, no money this roundEmail or Content Card
LowHighSend nothing, hand back to the regular calendarNot enrolled
LowLowQuarterly slow-burn reactivationEmail

Set thresholds by percentile, not absolute value. Score distributions shift a little every time the model retrains, so a hardcoded 0.7 can silently double the population on a branch three months from now and nothing in the UI will point that out. Write it as top 10% and the population stays fixed, which keeps send volume and budget predictable. Every branch also needs an exit condition, at minimum an immediate exit on purchase, or you will send a win-back offer the day after someone ordered.

Stop discounting people who were already buying

The classic waste with predictive purchase intent is pushing everyone who scores high into a promotional flow. Those people were already reaching for their wallet. You hand them a discount, the in-flow conversion rate looks spectacular because you selected for buyers, and what actually happened is that you drilled a hole in your own margin.

The correct use is close to inverted. On the high-intent branch, pull the discount and do reminder and friction work instead: back in stock, cart recovery, how far they are from free shipping, low stock on their size. Spend the discount on the low-intent segment with enough customer value to justify it, because that is the only place the money has a chance to change the outcome. That distinction is the whole difference between rows one and two in the table above. If you only build two branches, build those.

Proving it is not a job for in-flow conversion rate. Braze has a Global Control Group, a slice of users who receive nothing from any Canvas, and the number that matters is the gap between them and the enrolled population. A suspiciously high in-flow conversion rate is a warning sign, not a win; it usually means the model precisely identified the people who did not need contacting. For a sharper read, drop an Experiment Path into the high-intent branch, discount for half and reminder-only for the other half, run it two weeks, and compare net profit per user rather than conversion. Those two metrics regularly disagree.

Email versus push, and when to skip Braze

Push interrupts, email carries. Keep that split and you will not go far wrong. Push is for time-sensitive single facts, back in stock, price dropped, order out for delivery, one sentence with no subordinate clause. Anything that needs explaining goes to email: category recommendations, multi-SKU comparisons, content-led touches. In-app messages and Content Cards form a third tier that waits for the user to open the app, costs you no interruption budget, and suits information that is nice to see and harmless to miss.

One rule to hardcode: in a win-back flow, push is always the fallback, never the opener. High-churn-risk users are the most sensitive to push, and a user who gets irritated revokes the permission outright, which costs you the channel permanently and is far harder to recover than an email unsubscribe. Email first, push only after 48 hours with no engagement, no more than two pushes across the whole flow. Braze Intelligent Channel and Intelligent Timing can help pick channel and send time, but do not hand channel selection over wholesale. Encode the time-sensitive-only rule for push into the Canvas structure and give the model the remaining freedom.

Now the part about skipping it. Without an app you lose roughly half of what you are paying for and end up with an expensive email tool. Braze does not publish a price list, contracts are annual, and the path from signature to launch is usually weeks to months of engineering work: event taxonomy cleanup, SDK integration, aligning the user data model. None of that is something a marketer can complete alone. My cutoff, stated plainly: email and SMS only, no engineering resource for the SDK, nobody whose job is lifecycle, then stay on Klaviyo, because you will use under a third of the platform. An app, three or more channels, monthly actives in the millions, a dedicated CRM or lifecycle team watching it, and Braze starts paying for itself. Brands in the middle have the hardest call, and my advice there is to fix the event taxonomy first, since that work is required no matter which tool you land on.

Related Articles