Key takeaways
- Connect a WhatsApp Business API number (WABA) — not the personal app — so you can send order updates at scale.
- Get utility-category templates approved for order confirmed, shipped, out-for-delivery, delivered and cart recovery.
- Map each Shopify order status to a template so messages fire automatically as the order moves.
- Set variables — name, order number, amount, tracking link — so every message is personalised, not generic.
- Turn on COD-confirm, shipped, delivered and cart-recovery flows, respect quiet hours, then send yourself a real test order.
What 'WhatsApp automation' actually means here
Forget the buzzwords. WhatsApp automation for a Shopify store is just this: when an order changes state — placed, confirmed, shipped, delivered — the customer gets a WhatsApp message about it automatically, with their name and order details filled in. No one sits and types it. It fires off the Shopify order status.
Done right, it does three jobs: cuts your 'where is my order' support tickets, reduces RTO by confirming COD orders, and recovers abandoned carts. Done wrong, it spams people and gets your number flagged. This guide is about doing it right the first time.
Before you start: what you need
- A Shopify store (any plan) with orders flowing through it.
- A phone number that is NOT already on personal WhatsApp — it has to be free to register on the WhatsApp Business API.
- A WhatsApp Business Account (WABA), via Meta or through a platform like Kwikfy that manages the API for you.
- Your business name and, ideally, a verified Meta Business — it helps with the green tick and higher messaging limits.
One rule to save you pain: the number you use for the API cannot also be logged into the WhatsApp app on a phone. Pick a fresh SIM or a number you can free up. People burn a whole afternoon on this one mistake.
Step by step: the setup
- Connect your WhatsApp Business number. Register your WABA and verify the number via OTP. If you're using a platform, you'll do a guided connect and it handles the Meta plumbing. Confirm the number shows 'Connected' before moving on.
- Connect Shopify to your WhatsApp tool. Install the app or paste your API credentials so the tool can read order events. Once linked, your orders, statuses and customer phone numbers sync across automatically.
- Submit your utility templates for approval. Meta requires pre-approved templates for automated order messages. Create one each for: order confirmed / COD confirm, shipped with tracking, out for delivery, delivered, and abandoned cart. Keep them in the UTILITY category — it's cheaper and approves faster than marketing.
- Wait for approval and fix rejections. Utility templates usually clear in a few hours to a day. If rejected, it's almost always promotional language sneaking into a utility template — strip the 'Buy now!' tone, keep it transactional.
- Map each order status to a template. In your automation settings, connect Shopify's order events to the matching template (see the table below). This is what makes it fire automatically.
- Set the variables in each template. Map the {{1}}, {{2}} placeholders to real Shopify fields — customer name, order number, amount, tracking URL. Get this right or every message says 'Hi {{1}}' to a real human.
- Turn on the flows you want. Enable COD-confirm, shipped, out-for-delivery, delivered, and cart-recovery. Start with just COD-confirm and shipped if you're nervous, then add the rest.
- Set quiet hours. Block sends between roughly 9pm and 9am so you're not pinging people at midnight. Messages queue and go out when the window opens.
- Send a real test order. Place an actual COD order to your own number, walk it through confirmed → shipped → delivered in Shopify, and check each message lands correctly with the right details.
Mapping Shopify statuses to templates
This table is the heart of the setup. Each Shopify state maps to one template and a trigger. Copy this as your starting map and adjust to your store.
| Shopify status / event | Template (utility) | When it fires |
|---|---|---|
| Order placed (COD) | COD confirmation | 5-15 min after order |
| Order placed (prepaid) | Order confirmed | Immediately after payment |
| Fulfilment created | Shipped + tracking | When you add tracking / AWB |
| Out for delivery | Out for delivery | On courier OFD scan |
| Delivered | Delivered + review ask | On delivered scan |
| Checkout abandoned | Cart recovery | 30-60 min after abandon |
For COD specifically, the confirmation message should carry Confirm / Cancel / Pay-Online buttons — that's the flow that does the real RTO damage. The full playbook for that sequence is in our guide to the WhatsApp COD confirmation sequence. For the shipped and delivered side, our note on WhatsApp delivery notifications covers what copy actually reduces support pings.
Setting variables so messages feel human
A template is a skeleton with blanks. The blanks are variables, and Shopify fills them per order. Here's a shipped template with its variables mapped:
Hi {{1}}, your order {{2}} has been shipped 🚚 Track it here: {{3}}. Expected delivery in 3-5 days. — Team {{4}}
Where {{1}} = customer first name, {{2}} = order number (#1043), {{3}} = tracking URL, {{4}} = your store name. The tracking link is the one people click most, so make sure it's a real branded tracking page and not a raw Delhivery URL that looks sketchy. The variables you'll use across almost every template:
- Customer name — first name only reads friendlier than full name.
- Order number — always with the # so it matches their Shopify email.
- Amount — critical on COD messages so people remember what they owe at the door.
- Tracking link — for shipped and out-for-delivery messages.
- Store name — signs off the message so it doesn't look like spam.
Turning on cart recovery without being annoying
Abandoned cart recovery over WhatsApp converts far better than email, but it's also the easiest way to annoy people. Keep it to one, maybe two messages. Fire the first 30-60 minutes after abandon while the intent is warm:
Hi Priya, you left a Silk Dupatta (₹1,299) in your cart at Bhakti Leela. Complete your order here — we've saved it for you 👉 [link]
If they don't bite, one follow-up the next day with a small nudge (free shipping or ₹50 off) is plenty. More than that and you're a pest. The deeper strategy — timing, offers, sequencing — is in our WhatsApp cart recovery playbook and the broader abandoned cart recovery for India guide.
Utility vs marketing templates — get this right
Meta splits templates into utility and marketing, and it matters for both cost and approval. Order updates — confirmed, shipped, delivered — are utility. They're transactional, cheaper, and approve fast. Promotional blasts — sales, new drops — are marketing, cost more, and need explicit opt-in.
The mistake stores make is dressing up a marketing message as utility to save money. Meta catches it and either rejects the template or flags your number. Keep order messages strictly transactional, and run your promos through proper marketing templates. If promos are your goal, read WhatsApp marketing for Shopify for how to do it without getting your number rate-limited.
Respecting quiet hours and rate limits
New API numbers start with a low daily messaging limit (often 250-1,000 unique customers) and scale up as your quality rating stays green. Don't try to blast past it — sends will queue or fail. And set quiet hours so nothing goes out overnight. A delivered message at 2am helps no one and costs you a block.
The test that catches everything
Before you flip this live for real customers, run the full loop once yourself:
- Place a COD order to your own number and confirm the confirmation message arrives in a few minutes with the right amount.
- In Shopify, add tracking — check the shipped message fires with a working link.
- Move it to out-for-delivery and delivered — check each message lands and reads right.
- Abandon a checkout and confirm the recovery message shows up on schedule.
- Check all variables filled correctly — no stray {{1}} or blank order number.
If all five pass, you're live. From here it mostly runs itself — you'll just watch the quality rating and tweak copy. For the complete flow logic behind these triggers, see the WhatsApp order automation flow.
Skip the Meta setup grind
Kwikfy connects your Shopify store to WhatsApp, ships pre-approved utility templates, and maps every order status to the right message — so you go from install to live in an afternoon, not a week.
Start Free →Where to go from here
Once the basics run clean, layer on the high-value flows: COD-to-prepaid nudges, RTO-based holds on risky orders, and NDR recovery when a delivery fails. Start with confirmed and shipped, prove it works on your own orders, and add one flow at a time. That's how you build a WhatsApp system your customers actually like hearing from instead of muting.