Key takeaways
- Automation is triggered by order status changes from Shopify and your courier, not by the clock, so the right message fires at the right moment on its own.
- The core sequence: order placed, COD confirmation, prepaid nudge, shipped, out for delivery, delivered, then feedback or an NDR rescue if delivery fails.
- Confirming COD orders on WhatsApp cuts RTO by weeding out fakes and wrong numbers before the courier even picks up.
- Proactive shipped and out-for-delivery updates kill WISMO (Where Is My Order) support tickets almost entirely.
- Outside the 24-hour service window you must use pre-approved WhatsApp templates; inside it you can send free-form. Getting this rule right is what keeps your number healthy.
Ask any D2C founder where their time goes and a scary amount of it is the same three WhatsApp messages, typed by hand, all day: 'Confirm your COD order?', 'Your order has shipped', 'Sir it is out for delivery today'. Multiply by 200 orders a day and you have hired a person just to copy-paste.
WhatsApp order automation replaces that person with a flow. Not a chatbot that annoys people, a flow: when an order reaches a certain status, one specific message goes out from your own number. Nothing more. Let me walk the whole thing end to end so you can see exactly what fires and when.
What triggers a message: status, not a timer
The important idea first. These messages are not scheduled by time. They are triggered by order status changes flowing in from Shopify and from your courier's tracking. When Shopify marks an order 'fulfilled', the shipped message fires. When Delhivery pushes an 'out for delivery' scan, that message fires. When the order is placed, the confirmation fires.
This matters because it means the message is always true. You never send 'your order shipped' before it actually shipped. The automation reacts to real events, so timing takes care of itself. If you have not wired this up yet, the groundwork is in setting up WhatsApp automation on Shopify.
The full order flow, step by step
Here is the standard sequence for a COD order, which is the more complex path. Prepaid orders skip a couple of steps.
- Order placed. The instant the order is created, a friendly confirmation goes out: 'Hi Rohan, we got your order #1043 for the Cotton Kurta, COD, ₹899. We will confirm and pack it shortly.' This alone reassures the buyer and sets the tone.
- COD confirmation. For COD orders, a message asks the customer to confirm they still want it, usually with a Yes / No button. Confirmed orders proceed to packing. No reply or a 'No' gets held or cancelled. This is the single biggest RTO saver.
- Prepaid nudge (COD only). Before shipping, an optional message offers a small incentive to switch to prepaid: 'Pay online now and get ₹40 off, plus faster dispatch.' A tap opens a UPI or Razorpay link. Converted orders never RTO.
- Shipped. When Shopify marks it fulfilled and a tracking ID exists, the customer gets the courier name and a branded tracking link: 'Packed and shipped via Delhivery. Track here.'
- Out for delivery. When the courier scans 'out for delivery', a message tells the customer to keep the phone reachable and cash ready. Fewer failed first attempts.
- Delivered. On the delivered scan, a thank-you goes out and, a day or two later, a feedback or review request.
- NDR rescue (if it fails). If the courier logs a failed delivery (NDR), instead of a silent RTO, the customer gets a message: 'We tried to deliver but could not reach you. Reply 1 to reattempt tomorrow, 2 to reschedule.' Their reply can push a reattempt back to the courier.
That is the whole spine. Every message is a reaction to something that genuinely happened to the parcel.
Why COD confirmation is the star
If you only automate one step, make it step 2. A large share of COD RTO in India is not malice, it is orders placed on a whim, wrong numbers, or duplicate carts. Asking for a one-tap confirmation before you spend money packing and shipping filters out most of that.
I have seen stores drop RTO from the high 30s to the low 20s just by adding a WhatsApp COD confirm with a Yes/No button and holding anything unconfirmed for 24 hours. Pair it with the prepaid nudge and the effect compounds, because your riskiest orders either get confirmed, get converted to prepaid, or get filtered out. The playbook is in confirming COD orders over WhatsApp and the sequence detail in the WhatsApp COD confirmation sequence.
The 24-hour window vs templates
Here is the rule that trips everyone up, and getting it wrong is how numbers get flagged. WhatsApp splits your messaging into two modes.
- Inside the 24-hour window. Once a customer messages you, you have 24 hours to reply with free-form messages, no template needed. If they tap 'Yes' on the COD confirm, that opens the window and your automation can chat freely for a day.
- Outside the window. To message a customer who has not written to you recently, you must use a pre-approved template. Order confirmations, shipped updates, out-for-delivery pings, these are all business-initiated, so they go as approved templates.
In practice almost every automated order message is an outbound template, because you are reaching out to the customer, not replying. So you pre-build templates for each stage (order placed, shipped, out for delivery, delivered, NDR), get them approved once, and the automation slots the order details into them. Approval usually takes a few hours to a day.
| Order stage | Message type | Sent as |
|---|---|---|
| Order placed | Business-initiated | Approved template |
| COD confirm | Business-initiated | Approved template (with buttons) |
| Customer taps Yes | Opens 24h window | Free-form allowed |
| Shipped / Out for delivery | Business-initiated | Approved template |
| Delivered / Feedback | Business-initiated | Approved template |
| NDR reattempt reply | Inside 24h window | Free-form allowed |
Use the customer's own variables (name, order number, amount, courier, tracking link) inside these templates so each message reads personal even though it is automated. Filling those slots correctly matters, an empty variable can get a template rejected.
From your own number, that is the whole point
All of this fires from your approved WhatsApp business number, not some shared gateway sender. The customer sees your brand name and green tick at every step. That continuity is why open and reply rates on these messages sit near the top of any channel you have, and why the tracking link they tap should be a branded delivery notification, not a bare courier URL.
What this actually saves you
Stack it up. COD confirmation cuts RTO. The prepaid nudge converts your riskiest orders to zero-RTO prepaid. Shipped and out-for-delivery messages gut your WISMO ticket load. The NDR rescue recovers parcels that would otherwise have quietly bounced. And the whole thing runs without a human typing anything.
None of it is clever AI wizardry. It is just the right true message, at the right real moment, from the right number. The reason it works is that it is honest and timely, which is exactly what a customer waiting on a ₹899 kurta actually wants. For the recovery side of the same engine, see the WhatsApp cart recovery playbook.
Turn on the full order flow in minutes
Kwikfy triggers each of these WhatsApp messages automatically from your own approved number, using your templates, tied to real Shopify and courier status.
Start Free →Map your own order stages to these seven messages, build the templates once, and let status changes do the sending. You will spend less time in your inbox and lose fewer parcels to RTO. That is the entire pitch, and it holds up.