The scenario
The brand sells a small routine — a serum, a moisturiser and a gentle cleanser — direct to consumer on Shopify, with KNET, Tabby and cash on delivery at checkout. Two years in, its growth has come almost entirely from TikTok discovery: a founder who films her own routine, a following that trusts her specifically, and a first-order rate that most skincare brands in Kuwait would be glad to have.
What it did not have was a second order. The founder had assumed repeat purchase would happen on its own once people liked the product, the way it seemed to for the brands she followed, and had never built anything to prompt it. The serum lasted roughly six weeks with normal use; the brand's only outbound message in that window was an occasional promotional post that had nothing to do with any one customer's own bottle.
- Monthly revenue band
- pending client sign-off
- Average order value
- pending client sign-off
- Fulfilment
- Own stock, local courier, next-day across Kuwait
- Team
- Founder plus one part-time assistant on orders
A great first order and no plan for the second one
The cohort read was blunt in a way the founder had not expected. Split by the first product bought, most customers who ordered the serum alone never placed a second order at all, and the ones who did mostly reordered somewhere between two and four months after the first — well past the point the bottle would have actually run out. The gap in between was not a gap in satisfaction. It was a gap in memory.
There was no channel built to close it. Email addresses were collected at checkout and never used. WhatsApp existed only as a customer-service line for delivery questions, run from a personal number rather than the official Business API, which meant nothing could be sent to more than one person at a time without risking the number itself. The founder's own Ramadan routine — she had said publicly, more than once, that her skin changed with fasting and needed a lighter evening step — had never once become a message to the customers who had told her the same thing.
The brand had built a genuine relationship with its customers through content and then done nothing with it after the sale. It had an audience that trusted one person specifically, and it was letting that trust go cold the moment an order shipped.
What we did — the messages and flows
The losers are here on purpose. A test with only winners was never a test.
A replenishment check-in timed to the serum's own six-week life
Winner"Your serum is probably running low about now — want a refill sent?"
- Format:
- WhatsApp template message, sent five weeks after delivery, one tap to reorder
This was the single highest-converting message the brand ever sent, because it arrived exactly when the actual problem — an empty bottle — was becoming real, rather than on a promotional calendar unrelated to any one customer's supply. It reframed the brand from a one-time purchase into a subscription the customer had never formally signed up for but behaved like one anyway.
The founder's own Ramadan routine, sent as a message not a post
Winner"What I switch to during Ramadan, in case your skin does the same thing mine does."
- Format:
- WhatsApp broadcast, segmented to past serum buyers, sent two weeks before Ramadan
Sent as a personal note rather than a discount, this reached the exact segment likely to feel the seasonal shift the founder had already described publicly, and it arrived early enough for the customer to act before the month started rather than mid-fast when the habit is hardest to change.
The order-confirmation and delivery-update pair
Winner"Your order is confirmed. Here is when it lands."
- Format:
- Two WhatsApp template messages, automated at order placement and dispatch
Unglamorous and necessary rather than a growth lever on its own: this is the pair that got the customer to opt into WhatsApp in the first place, because it replaced an anxious wait with a clear answer on the channel she was already messaging the brand from for delivery questions.
A blanket monthly discount blast to the whole list
Lost"15% off everything this weekend, for everyone on our list."
- Format:
- WhatsApp broadcast, unsegmented, sent to the full opted-in list
This carried the highest opt-out rate of anything the brand sent, and it makes sense in hindsight: a customer six weeks into her bottle does not need a discount, she needs a refill, and a customer two weeks in does not need either. A message that fits nobody's actual moment trains the list to expect noise and mute it.
A sixty-day lapsed win-back offering a generic percentage off
Lost"We miss you — here's 20% off to come back."
- Format:
- WhatsApp broadcast to customers with no order in 60 days, generic copy
It read as generic to a list that had specifically bought into the founder's own routine content, and it performed worse than a version tested later that named the exact product the customer had bought and asked, plainly, whether it had suited her — the specific question outperformed the generic discount by a wide margin.
What we did — the optimizations, in order
Read repeat rate by first product, split at 30, 60 and 90 days
We pulled every order, grouped customers by the first product they bought and measured what share reordered within 30, 60 and 90 days, rather than looking at one blended repeat-rate figure for the whole store.
Why: This showed the actual reorder window ran later than the product's own life, which is the gap costing the brand money, and it revealed the serum specifically as the gateway product worth building the whole flow around.
Move WhatsApp onto the official Business API
We migrated the customer-service line from a personal number to the official WhatsApp Business API, with a clear opt-in captured at checkout and again on the order-confirmation page.
Why: A personal number cannot safely send a segmented broadcast without risking a ban, which is exactly why nothing had ever been sent. The official API with a real opt-in is what made every flow after this one possible at all.
Build the flows in the order a bottle is actually used
Order confirmation, delivery update, the replenishment check-in timed to the serum's own six-week window, a review ask two weeks after that, then a cross-sell into the moisturiser for serum-only buyers.
Why: Sequencing the flow around the product's real life rather than a calendar is what turned a vague sense that customers 'should come back' into a specific message arriving on the specific day it was needed. Each step also had a distinct job, so no two messages competed for the same moment.
Segment every broadcast by last product and days since purchase
We stopped sending anything to the full list at once and rebuilt the broadcast calendar around two to four segmented sends a month, each aimed at customers at a specific point in their own bottle's life.
Why: The blanket discount blast is the clearest evidence for this rule: a message that fits nobody's actual moment reads as noise to everybody, and it was also the single biggest driver of opt-outs on the whole list.
Match the offer to the product, not the calendar
The replenishment message offered a straight reorder rather than a discount, the Ramadan message offered relevant information rather than a promotion, and only the win-back segment carried an incentive, tied to naming the specific product rather than a generic percentage.
Why: A consumable with a known life does not need a discount to earn a reorder; it needs a reminder at the right time. Saving the incentive for the segment that had genuinely gone quiet kept the brand from training loyal, on-schedule customers to wait for a sale before buying.
Win back the lapsed segment with the product's own name, not a generic offer
For customers with no order in sixty days, we rewrote the win-back message to name the exact product they had bought and ask plainly whether it had suited her, offering to help her find the right next step rather than leading with a percentage.
Why: A generic discount addresses every lapsed customer the same way, and this list specifically had bought into a founder who spoke to them individually through content. Naming the product and asking a real question matched that relationship and outperformed the discount it replaced.
Measure repeat rate, revenue per recipient and opt-outs weekly
Every flow and broadcast was tracked on repeat purchase rate, revenue per recipient and opt-out rate in one shared log, reviewed weekly with the founder rather than left to a monthly summary.
Why: The blanket discount's opt-out spike showed up within the first week on this log, well before a monthly review would have caught it, which is what let the team retire it before it did more damage to the list's trust.
What changed
The table above carries the numbers once the client signs them off, and the shape worth stating now is that repeat purchase moved because the brand started messaging at the moment the bottle actually ran out, not because of a bigger discount. The replenishment check-in did more work on its own than the rest of the flows combined.
The two losing messages were as informative as the winners. The blanket discount confirmed that a list built on a founder's personal routine content reads noise from anyone the way it would from a stranger, and the generic win-back confirmed that naming the specific product a customer bought beats a percentage off nearly every time in this category.
There was a second-order effect the founder noticed before the data caught up with it: customers who received the Ramadan message started replying with their own routine questions, which is the same relationship her content had always built, just finally running on a channel that could hold a conversation with more than one person a day.
What we would do next
First, add a referral step to the replenishment flow, since a customer already reordering on schedule is the person most likely to have told a friend to try it and never been asked to make that explicit.
Second, build the same product-life logic into the moisturiser and cleanser, which have their own, different replenishment windows and currently ride on the serum's flow rather than having timing of their own.