If you sell electronics, the three Klaviyo flows that actually earn money post-purchase are a warranty registration flow triggered on fulfilment, an accessory cross-sell timed to how long the device takes to become part of someone's routine, and a consumable or upgrade flow keyed to a date property you set yourself. Not a 30-day replenishment reminder. A soundbar is not shampoo, and the standard replenishment logic that ships with most Klaviyo setups quietly does nothing on an electronics catalogue for months before anyone checks the revenue column.
What follows is how we build these, including the data work nobody puts in the pitch deck.
Why replenishment logic fails on a device catalogue
Replenishment flows assume a predictable consumption curve. Buy 200ml of face wash, use it in six weeks, get an email in week five. The maths works because the product is consumed at a roughly constant rate.
Devices don't behave like that. A ₹6,000 pair of earbuds gets replaced when the battery degrades, when one bud is lost, or when a newer model launches — three completely different timelines, none of them 30 days. Meanwhile the revenue sitting on the table in the first month isn't a repeat device purchase at all. It's a case, a stand, a spare cable, an extended warranty, a set of replacement ear tips, a wall mount. Small tickets, decent margin, and a buying window that opens once the customer has the thing in their hands and has hit its first limitation.
So the useful frame for Klaviyo flows in electronics is device lifecycle: delivered, set up, in daily use, out of warranty, due for replacement. Each of those states has a different message and a different trigger.
Trigger on fulfilment, not on the order
Most stores build post-purchase flows on Placed Order. For electronics in India that's the wrong clock. A prepaid Razorpay order and a COD order placed the same evening can land four days apart, and a COD order that gets one failed delivery attempt lands a week apart. If your "how's your setup going?" email arrives before the courier does, you've burned the sequence.
Use Fulfilled Order as the trigger where you can. Better, if you're pushing delivery status into Klaviyo from Shiprocket, Shipway, Delhivery or your own webhook, trigger on the delivered event and count days from there. The difference is not cosmetic. On stores with a meaningful COD share, the gap between order date and device-in-hand date is wide enough that a fixed day-3 email hits some customers on day 3 and others on day minus 1.
One more thing about COD: your accessory cross-sell to a COD buyer needs to be prepaid-incentivised or you'll ship a ₹499 cable on COD and lose money on the RTO. A small prepaid discount in the accessory email pays for itself.
The warranty registration flow, and the data it buys you
This is the flow that makes everything downstream possible, and almost nobody builds it properly.
Two days after delivery, send a single-purpose email: register your warranty. Ask for serial number and nothing else you don't need. Push the response into the customer's Klaviyo profile as properties — serial_number, device_model, warranty_start, warranty_expiry. Once warranty_expiry exists as a date property, you can run date-triggered flows off it: 30 days before expiry, on expiry, 60 days after. That single field unlocks extended warranty sales, service reminders and upgrade offers, all of which are impossible if the only date you hold is the order date.
Registration rates go up sharply when there's something in it for the customer. Extend the warranty by three months for registering. Unlock the setup guide. Offer a one-time accessory discount. Registration is also the cleanest way to get an email address you actually own for people who bought your device on a marketplace, which matters more than most brands admit.
The awkward parts, in order of how often they bite:
- Marketplace registrants have no Shopify order. Every flow filtered on "has placed order" skips them. Build a separate branch, or accept that a third of your registered device base never sees your post-purchase content.
- Serial numbers get typed wrong. Validate the format on the form — a regex on length and prefix catches most of it. We still end up with a batch of unmatchable serials on the first pass and clean them manually.
- Replacements and exchanges create a second device against the same profile. If your properties are flat, the new warranty date overwrites the old one and your service reminders go out on the wrong date. Two devices per customer is where a flat profile model starts to strain.
A Klaviyo-hosted form gets you off the ground in a day. If you want serials validated against your own database, warranty cards generated as PDFs, or a customer-facing portal that shows registered devices and service history, that's a small custom app rather than a form. We build these as embedded Shopify apps with the warranty record in a metafield or an external database depending on volume — more on the approach on our Shopify app development page.
Accessory cross-sells timed to the device, not the calendar
The instinct is to send the accessory email on day 3. Too early. On day 3 the customer is still deciding whether they like the thing. The accessory purchase happens after the first friction point — the cable is too short, the earbuds slip during a run, there's nowhere to put the controller.
Our default spacing, counted from delivery:
- Day 2: setup help plus warranty registration. No selling.
- Day 10 to 14: compatible accessories. One or two products, chosen by the device they bought, with a clear compatibility statement.
- Day 35 to 45: review request, then a second accessory angle if they didn't buy — usually protection or portability rather than performance.
Compatibility is where these flows fall over, and it's a product data problem, not an email problem. If your accessories aren't tagged with the models they fit, a dynamic product block will happily recommend a Type-C dock to someone who bought the Lightning variant. Add a compatible_with metafield or a tag per model, build a Klaviyo catalogue feed that exposes it, and use conditional splits on the purchased product to pick the right block. It's a couple of days of catalogue work that decides whether the flow is useful or embarrassing.
Send the click to a filtered accessories page for their exact model, not the full accessories collection. If your catalogue is deep enough that customers have to guess which case fits, that's worth fixing on the storefront too — we built FilterPro partly for stores where accessory discovery depends on filtering by device model.
A worked example: does the accessory flow pay?
Assume a store that delivers 900 units a month of a ₹4,499 earbud. Two accessory candidates.
Replacement ear tips at ₹499. Gross margin around 60%, so ₹299 a unit. Say the day-12 email converts 3% of the 900 recipients: 27 orders × ₹299 = ₹8,073 a month. Then subtract shipping on a ₹499 order. If you're paying ₹60 to ship it, you're down to roughly ₹6,450. Real, but small.
A charging case and cable bundle at ₹1,999. Margin 45%, so ₹900 a unit. At a lower 1.2% conversion: 10.8 orders × ₹900 = ₹9,720, and shipping barely dents it.
Fewer orders, more profit. Which is the whole point of running the arithmetic before you build: the high-attach-rate consumable feels like the obvious cross-sell and returns less than the mid-ticket accessory that half as many people want. Also worth saying plainly — neither number justifies a month of agency time. What justifies the build is that the same flow architecture runs across every SKU in the catalogue, and the warranty data it captures feeds the upgrade flow, which is where the real money is.
Consumables, where replenishment logic finally applies
Air purifier filters, water purifier cartridges, printer consumables, vacuum bags, trimmer blades. Here a time-based reminder does work, because consumption really is roughly linear.
Build it off a per-product replacement interval stored as a product metafield rather than one global setting. A HEPA filter at 8 months and a pre-filter at 3 months in the same flow means two branches, and if you hard-code 180 days you'll be wrong on both. Send at interval minus 21 days, then again at interval minus 3 if there's no purchase, then stop. A third reminder on a consumable reads as nagging and hurts your sender reputation more than it earns.
If the consumable is genuinely essential to the device working, a subscription offer converts better than a reminder. Just make sure the subscription app you use handles GST on recurring invoices correctly before you promote it.
The upgrade window is the flow worth the most
Thirty days before warranty expiry, you have the highest-intent audience in your entire list: people who own your product, have used it for a year or two, and are about to lose their safety net. Three messages work here, and they're not the same message.
Extended warranty or AMC, for the customer happy with what they have. Trade-in against the current model, for the one who's been eyeing the newer version. Service booking, for anyone whose device has been through a support ticket in the last 90 days — which you should be able to check, because sending an upgrade offer to someone with an open complaint is how you end up quoted in a Reddit thread.
Trade-in is operationally messy in India: valuation, reverse pickup, refurbishment, and GST treatment on the exchange. If you don't have that sorted, run the extended warranty angle first. It's software, it's high margin, and the flow is identical.
Suppression rules, before you turn anything on
Half of doing this well is deciding who doesn't get the email.
- Anyone with an open support ticket or an RMA in progress. Sync ticket status into Klaviyo as a profile property and add it as a flow filter. This is the single most valuable suppression you can build.
- Customers who already bought the accessory you're about to recommend. A flow filter on "has not ordered product X in the last 365 days" handles it.
- B2B and bulk buyers. Someone who bought 40 units for an office does not need a review request per unit. Tag them and exclude them.
- Returns and cancellations. If the order was refunded, kill the sequence. Klaviyo won't do this for you unless you add the filter.
On SMS and WhatsApp: check Klaviyo's country coverage before you design an SMS step for Indian numbers, and remember that promotional SMS in India needs DLT-registered headers and templates. A lot of teams end up keeping the Klaviyo flow email-only and firing WhatsApp through a separate provider. That's a fine outcome, just design for it upfront instead of discovering it mid-build.
What to build first
If you have nothing today, build the warranty registration flow. Two emails, one form, a date property. It takes a week including the catalogue tagging, it starts filling your profiles with device data, and it makes the accessory, consumable and upgrade flows straightforward instead of guesswork.
Then measure the accessory flow against your own numbers, the way we did above, before you build the next four branches. Some catalogues won't support it and it's better to know in week two.
If you want a second opinion on your current post-purchase setup — which flows are live, what's firing on the wrong trigger, where the product data is blocking you — our free audit covers it, and we'll tell you if the answer is "leave it alone and fix your delivery timings first". If you'd rather have the build done alongside the storefront work, that's the developer engagement.

