The scenario
The store sells phone chargers, cables, power banks and cases in Kuwait, direct to consumer, on a Shopify site with KNET, Tabby and cash on delivery at checkout. Three years in, a founder and one part-time hire, and a catalogue where every single item is something that physically wears out — a cable frays, a case scratches, a power bank's battery fades — on a schedule that has nothing to do with the calendar and everything to do with how the customer actually uses her phone.
The email list existed on paper and had never been messaged. The only channel that got used was a broad Instagram story before a sale, sent to everyone regardless of what they had bought or when, which is not a retention system so much as an occasional reminder that the store exists.
- Monthly revenue band
- pending client sign-off
- Average order value
- pending client sign-off
- Fulfilment
- Own stock, in-house courier, same-day across Kuwait City
- Team
- One founder, one part-time hire answering WhatsApp and packing orders
A category that repurchases itself, sold to once and never messaged again
The category should be one of the easiest in e-commerce to retain, because the products themselves have a built-in reason to come back: a charging cable has a working life measured in months, not years, and a phone case gets replaced when it scratches, when the phone changes, or before a trip. None of that natural repurchase timing was being used for anything.
When we read the order history by first product bought, the pattern was clear and surprising. Customers whose first purchase was a case rarely returned — a case is a considered, near-one-time decision tied to a specific phone. Customers whose first purchase was a cable or a charger came back at a noticeably higher rate, because the product itself creates the need again. The store's marketing had always pushed cases, the highest-margin and most visually appealing item, and had treated cables as an afterthought add-on rather than the door back in.
There was also no channel to act on any of this even once it was known. The store was selling a category with a repeat purchase built into the product, and had no way to reach a single customer between one order and the next.
What we did — the messages and flows
The losers are here on purpose. A test with only winners was never a test.
WhatsApp opt-in captured twice: checkout and the confirmation page
Winner"Get your delivery update and warranty reminder on WhatsApp" as a checkbox, on the official Business API
- Format:
- Checkout checkbox plus a second prompt on the order-confirmation page for anyone who skipped it
Framing the opt-in around something useful — a delivery update, not a promise of discounts — got a noticeably higher take rate than a generic newsletter checkbox ever had, and asking a second time on the confirmation page caught people who had rushed through checkout without reading it. This single channel is what made every flow after it possible.
The warranty-registration message as a soft second opt-in
Winner"Register your cable's 6-month warranty here" sent a week after delivery, with the flow ending in a soft opt-in for care tips
- Format:
- WhatsApp template message, one week post-delivery
Registering a warranty is a genuine service the customer wants, which made it a far more natural place to confirm interest in future messages than a cold marketing opt-in ever would be. It also gave the store an honest reason to message again later when that same warranty was close to expiring, which is exactly when a replacement conversation belongs.
The replenishment nudge timed to actual wear, not a fixed calendar
Winner"Cables usually start fraying around now — want the same one again, or try the braided version?" sent at month nine to cable buyers
- Format:
- WhatsApp broadcast, segmented by first product and purchase date
A generic thirty-day reminder would have landed while the original cable was still fine and read as pushy; timing it to the product's real wear-out window instead made the message read as a genuinely useful heads-up rather than a sales pitch, and it is the flow that produced the store's first repeatable second-order pattern.
A single monthly sale blast to the whole list
Lost"This month only — 20% off everything" sent to every opted-in number regardless of what they had bought
- Format:
- Single WhatsApp broadcast, unsegmented
It moved some volume the first time and produced the highest opt-out rate of anything tested. Sending the same discount to a customer who bought a case eleven months ago and one who bought a cable last week collapses a segmented list into an unsegmented one, and the customers who muted the number after this message never saw the far more relevant replenishment nudge that followed.
A referral ask sent the same day as delivery
Lost"Loved it? Share this code with a friend for 10% off their first order" sent the moment the courier confirmed delivery
- Format:
- Automated WhatsApp message, triggered on delivery confirmation
It asked for an endorsement before the customer had formed one. A referral request that arrives before the box is even opened reads as transactional rather than earned, and it produced almost no shares. Moving the same ask to two weeks later, after the review request and once the product had actually been used, is what eventually made it work.
What we did — the optimizations, in order
Read the cohort by first product, not by month
We pulled ninety-day repeat rate split by the first item each customer bought — case, cable, charger or power bank — instead of one blended repeat rate for the whole store.
Why: A blended repeat rate had been hiding the fact that cases and cables behave like two entirely different businesses. Splitting by first product is what identified the cable and charger buyer as the gateway customer, which the store's own marketing had never treated as one.
Capture WhatsApp opt-in on the official Business API
We set up opt-in at checkout and again on the confirmation page, framed around delivery updates and warranty registration rather than a generic marketing signup, on the official Business API rather than a personal number.
Why: A store this size messaging from a personal number risks the number getting banned and losing the whole customer database with it, which is a far bigger loss than any single campaign. The official API is also what let the store use pre-approved templates for warranty and delivery messages without a compliance headache.
Build the flows around how the product actually ages
Order confirmation, delivery update, warranty registration at one week, a replenishment nudge timed to each product's typical wear window, and a review ask timed after real use rather than delivery day, all written in Kuwaiti dialect.
Why: A cable and a case do not wear out on the same schedule, so one generic ninety-day flow for the whole catalogue would have been either too early for one product or too late for another. Building the timing around each product's own life is what made the replenishment message read as useful instead of as noise.
Segment the cadence by last product and recency
We moved from a single monthly blast to two to four segmented broadcasts a month, split by whether the last purchase was a case, a cable, a charger or a power bank, and by how recently they had ordered.
Why: The single unsegmented blast is what produced the study's highest opt-out rate, because it treated a customer eleven months past her last order the same as one from last week. Segmenting the cadence is the difference between a message that reads as timely and one that reads as spam with a discount attached.
Match the offer to the repurchase cycle, not the calendar
Bundle offers for consumables at the point of replenishment — a cable and adapter together, for example — early access to new-case drops timed to major phone launches, and accessory bundles built for White Friday and back-to-school specifically.
Why: A flat discount sent at a random moment trains a customer to wait for the next one instead of buying now. Matching the offer to the actual moment of need — the cable is fraying, the new phone just launched, school starts in three weeks — is what makes the message a service rather than a plea for revenue.
Win back the lapsed with a specific reason, not a blanket discount
Sixty and ninety-day lapsed segments each got a reason tied to their own history — a warranty about to expire, a case for a phone model the store now stocks in a new colour — rather than the same generic discount sent to everyone.
Why: The unsegmented blast had already shown what a generic offer does to this list. A specific reason to come back, drawn from the customer's own purchase, reads as the store remembering her rather than emptying a discount calendar on the whole database at once.
Measure repeat rate, revenue per recipient and opt-out weekly
Every flow and broadcast was tracked on its own repeat rate, revenue per recipient and opt-out rate, reviewed weekly, with the same-day referral ask retired once its numbers came in against the other flows.
Why: A message that sells in the moment but spikes opt-out is a net loss once the list it damages is priced in, and the only way to catch that trade-off is to watch opt-out alongside revenue rather than revenue alone. This is what caught the monthly blast early enough to fix the cadence before it emptied the list.
What changed
The table above carries the numbers once the client signs them off, and the shape worth flagging now is that the improvement came almost entirely from the cable and charger segment, not from cases, which confirms the cohort read rather than contradicting it. Repeat purchase moved because the replenishment nudge finally reached people at the moment their product was actually wearing out.
Revenue per recipient told a sharper story than repeat rate alone. The segmented, product-timed messages produced meaningfully more revenue per person reached than the single monthly blast ever had, even though the blast technically went to a larger list — a smaller, better-timed message beat a bigger, generic one.
The two losing messages were worth sending even though they underperformed. The blast confirmed that this list needs segmentation to avoid training people to mute the number, and the early referral ask confirmed that an endorsement has to be earned before it is requested. Both findings shaped the cadence the store now runs rather than a policy it copied from somewhere else.
What we would do next
Build a phone-model change trigger into the flow, since the customer replacing a case because she bought a new phone is also due for a matching charger and cable — one moment covering three products rather than three separate messages.
Second, pre-build the White Friday and back-to-school accessory bundles a month early with their own segmented broadcast, since a list this responsive to timing deserves a season plan rather than a discount decided the week of.