Key takeaways
- Send proactive updates at four moments: shipped, out-for-delivery, delivered, and on any NDR/failed attempt.
- Every message carries a tracking link โ ideally to your own branded tracking page, not the courier's site.
- Proactive updates cut 'where is my order' tickets sharply and reduce RTO, because customers stay in the loop.
- The out-for-delivery message is the highest-value one โ it's your last chance to fix a delivery before it fails.
- Keep tone warm and branded, respect quiet hours, and don't over-message.
Pull up your WhatsApp inbox or support tickets right now and count how many say some version of "order kaha hai" or "kab aayega." On most stores I've looked at, it's the number one message by a mile โ often 40% or more of all inbound. Every one of those is a customer who's anxious, and an agent's time you're paying for. The fix isn't a bigger support team. It's telling people what's happening before they have to ask. Proactive delivery updates on WhatsApp do exactly that, and done well they cut those tickets dramatically while quietly reducing RTO too. Here's how to set them up so they actually help instead of adding noise.
The four moments that matter
You don't need to narrate every courier scan. Customers don't care that the parcel reached the Bhiwandi hub at 3am. There are four moments where a message genuinely reduces anxiety or changes an outcome. Hit those, skip the rest. And if you only build one of them, build the out-for-delivery message โ more on why in a second.
| Status | When it fires | What the message does | Include |
|---|---|---|---|
| Shipped | On dispatch / AWB generated | Confirms the order is real and moving | Courier name, AWB, tracking link, ETA |
| Out for delivery | Morning of delivery attempt | Prepares them to receive; last chance to fix | Tracking link, delivery window, "keep cash ready" for COD |
| Delivered | On delivery scan | Closes the loop, builds trust, invites review | Thank-you, review/reorder nudge |
| NDR / failed attempt | On a failed delivery scan | Recovers the order before it becomes RTO | Reason, one-tap reschedule/confirm link |
Shipped: confirm it's real and moving
The shipped message does more than share a tracking number. For a lot of first-time buyers, especially COD, this is the message that tells them the order was genuine and something is actually coming. That reassurance alone cuts a wave of "did my order go through" messages.
A good shipped message looks like: "Good news, Rahul! ๐ฆ Your order #1042 has shipped via Delhivery. Track it live here ๐ [link]. Expected delivery: 3โ5 days. We'll ping you when it's out for delivery." Three things make it work:
- Name the courier (Delhivery, Blue Dart, XpressBees, Ekart, DTDC, Ecom Express) โ customers trust a named carrier more than a vague "your order shipped."
- Give a realistic ETA and under-promise. "Arriving in 3-5 days" that lands in 3 beats "arriving tomorrow" that takes 4.
- Link to tracking โ and make it your tracking, which we'll get to.
Out for delivery: your highest-value message
This is the one that earns its keep. When a parcel goes out for delivery, that's the moment a customer can still change the outcome โ be home, keep cash ready, share a landmark, or tell you they've moved. Miss this window and a deliverable order turns into a failed attempt, and failed attempts are how COD orders quietly become RTO. For COD especially, a simple "your order is out for delivery today, please keep โน1,499 ready ๐ต" removes the number one reason for the classic "customer didn't have cash" failure. We dug into this pattern in why COD orders fail at delivery โ a lot of it comes down to the customer simply not being ready, which a well-timed message fixes.
Delivered: close the loop, don't waste it
The delivered message feels optional. It isn't. It closes the emotional loop โ the customer knows you know it arrived โ and it's the warmest moment you'll ever have with them. They just got the thing they wanted, so that's when a review request or a gentle reorder nudge actually lands. Keep it genuinely short and warm: "Delivered! ๐ Hope you love your order, Rahul. If anything's off, just reply here and we'll sort it. A quick review would mean a lot ๐ [link]." Don't stack three CTAs. One soft ask.
NDR: the message that saves the order
When a delivery fails โ nobody home, phone unreachable, address unclear โ the courier logs an NDR (non-delivery report). You usually get one or two more attempts before the parcel gets returned to origin, and RTO on a COD order means you eat the two-way shipping and get nothing. This is where a fast WhatsApp message is worth real money.
The instant an NDR fires, message the customer: tell them plainly what happened and give them one tap to fix it โ reconfirm the address, pick a reschedule slot, or share a landmark. Something like: "Hi Rahul, our courier tried to deliver order #1042 today but couldn't reach you ๐ Want us to try again tomorrow? Tap to confirm your address & pick a time ๐ [link]." Speed matters here because the next attempt might be tomorrow morning. Our NDR management guide goes deep on the workflow, and it ties directly into any serious RTO reduction playbook.
Always send them to YOUR tracking page
Here's a habit worth changing. Most stores link straight to the courier's tracking site. That page is ugly, plastered with the courier's branding, sometimes shows scary internal statuses, and often carries ads or upsells for someone else. You spent money acquiring this customer and now you're handing them off to Delhivery's website.
Link to your own branded tracking page instead. Same live tracking data, but on your domain, with your logo, your colours, and room for a reorder or cross-sell block. It keeps the customer in your world during the most-checked page of the whole journey. We made the full case in the branded tracking page guide โ if you're already sending WhatsApp updates, pointing them at a branded page is the obvious pairing.
Setting it up without hand-typing anything
Nobody should be sending these manually. The whole point is that they fire automatically off courier status. Here's the rough build order.
- Connect your courier and store so status updates flow in automatically (AWB, out-for-delivery scan, delivered, NDR).
- Map each of the four statuses to a WhatsApp template message with the right variables (name, order number, amount, tracking link).
- Wire the tracking link to your branded tracking page, not the courier URL.
- Set quiet hours (9pmโ9am) so a 2am delivered-scan doesn't ping someone in their sleep.
- Turn on the NDR trigger last, with the one-tap reschedule link, since it's the highest-stakes one.
If you're building your broader WhatsApp setup, this slots in next to your confirmation and update flows โ see setting up WhatsApp automation on Shopify and the wider order automation flow. With Kwikfy these delivery triggers ship as ready templates that read off live courier status, so it's mostly toggling things on and adjusting the copy to your brand voice.
Tone and restraint
Two quick rules I'd insist on. First, sound like your brand, not like a logistics API โ warm, human, a light touch of emoji, the customer's name. Second, don't over-message. Four moments, not fourteen. If you narrate every hub scan, people mute you, and then they miss the out-for-delivery message that actually mattered. Restraint is what keeps the important messages getting read.
Turn courier scans into WhatsApp updates automatically
Kwikfy fires shipped, out-for-delivery, delivered and NDR messages off live courier status โ each linking to your own branded tracking page. Fewer tickets, less RTO.
Start Free โ