What is Shopify WhatsApp integration, and what should it send first?
A Shopify WhatsApp integration is a small piece of software that hears what happens in your store (an order placed, a checkout left half-done, a parcel handed to the courier) and sends the matching WhatsApp message to that customer through Meta’s official API. It is different from a floating “chat with us” button, which only opens a conversation; the integration starts conversations for you, at the moment they are useful.
For most Indian stores the first message to automate is the COD confirmation. Cash-on-delivery orders that the buyer never meant to accept go out, travel, fail and come back, and you pay shipping both ways. A two-button “confirm or cancel” message before packing catches a good share of those while they are still cheap to cancel. After that, order and shipping updates reduce the “where is my order” chats your team answers every day. Cart recovery comes third, because it is the only one of the three that is marketing, costs more per message and needs a clean opt-in.
If your store takes almost no COD and sells to a few repeat buyers, you may need nothing beyond the Shopify order emails and a chat button. We say that plainly when it is true.
- First: COD confirm-or-cancel before packing
- Second: order placed, shipped, out for delivery, delivered
- Third: abandoned-cart reminder to opted-in shoppers
- Later: reorder nudges, review requests, back-in-stock alerts
The message map: matching Shopify events to WhatsApp messages
Every message in a Shopify WhatsApp integration needs three things decided before any code is written: which store event triggers it, which template it uses, and what should happen when the customer replies. We write this down as a one-page message map and agree it with you first.
Shopify publishes webhook topics for this. Its developer documentation lists order topics such as orders/create, orders/paid, orders/cancelled and orders/fulfilled, checkout topics such as checkouts/create and checkouts/update, and fulfilment topics including fulfillments/create and fulfillment_events/create. Your integration subscribes to the ones your map needs and ignores the rest.
The map also records delays and conditions. An order confirmation goes immediately. A COD check might wait two minutes so that a buyer who edits the order does not get two messages. A cart reminder waits long enough for the shopper to finish on their own, and is skipped if an order from the same phone number arrives in the meantime. A delivered message might be followed three days later by a review request, but only for orders that were not returned.
Writing the map first saves money. It shows you which messages are utility and which are marketing, how many of each a normal month produces, and which replies need a person rather than code.
How does WhatsApp COD confirmation reduce RTO on Shopify?
It filters out orders that were never going to be accepted before you spend on shipping them. The buyer gets a message within minutes of ordering, with the items, total and delivery address, and two buttons: confirm or cancel. Confirmed orders are packed; cancelled ones are closed at no cost; silent ones get one reminder and then go to a call list.
Return to origin, or RTO, is what couriers call a parcel that could not be delivered and travels back. On COD it usually means the buyer refused, was unreachable, or gave a wrong address. Each of those is easier to catch at the confirmation step than at the doorstep, because the message also shows the address and pincode. A buyer who spots “Flat 12” instead of “Flat 21” can reply before dispatch.
In the build, the buyer’s button tap arrives at your webhook as a reply to that template. Our service then calls the Shopify Admin API to add a tag such as cod-confirmed or cod-cancelled to the order, and optionally a note with the time. Your team filters orders by tag, or your shipping app picks up only confirmed ones. Cancellations can be automatic or left for a person to approve; starting with approval is the safer choice while you watch the flow.
A COD confirmation that only asks the buyer to confirm an order they just placed is an update about their own action, so it is written as a utility template with no offers in it.
Silent buyers
One reminder after a few hours, then a task for a person to call. Never three automated nags.
Repeat buyers
Customers with several delivered COD orders can skip the check; that rule lives in your integration, not the app’s defaults.
High-value orders
Above a value you choose, the flow can also offer a prepaid link so the buyer can switch from COD to UPI.
How do you recover abandoned carts on WhatsApp from Shopify?
You listen for checkouts that were started but did not become orders, wait a short while, and send a marketing template with the shopper’s cart link, but only if that shopper has agreed to hear from you on WhatsApp. The consent check is the part many setups skip, and it is the part that keeps your number healthy.
Shopify creates a checkout record once a shopper enters contact details, which is why the checkout webhooks can fire before any order exists. Our service stores each checkout with its phone number, cart value and consent flag, then a scheduled job looks for ones older than your chosen delay with no matching order. For those, it sends one reminder. If an order arrives from the same number later, the pending reminder is cancelled.
Meta’s template categorisation guidance lists recovering abandoned carts among the purposes of marketing templates, and its pricing page says all marketing template messages are charged. So a cart reminder always costs more than an order update, and it goes only to opted-in shoppers. One well-timed reminder with the product name and a link back to the saved cart usually does better than a sequence of three discount-led messages, and it annoys far fewer people.
If you want a sales assistant that answers product questions when the shopper replies, that is a separate piece; see AI chatbots for ecommerce.
Shipping and delivery updates: getting courier status into WhatsApp
Shipping updates come from two places: Shopify, which knows when an order is fulfilled and the tracking number, and your courier or shipping aggregator, which knows where the parcel actually is. A Shopify WhatsApp integration that uses only Shopify can say “shipped”; to say “out for delivery today” it usually needs the courier’s status too.
When your team or shipping app creates a fulfilment, Shopify fires a fulfilment webhook with the tracking number and company. That is enough for a dispatched message with a tracking link. Shopify also has fulfilment event topics, which carry statuses like in transit or delivered when your shipping app posts them back to the order. Many Indian aggregators do post these; some do not, or post them late. Where they are missing, our service can poll the courier’s tracking API or accept the aggregator’s own webhooks.
Keep the sequence short. Placed, shipped, out for delivery, delivered: four messages is plenty for most parcels. A failed delivery attempt is worth its own message, because a quick “reschedule or update your address” reply can save a return. All of these are order updates, so they are written as utility templates with no promotion inside.
One detail matters in India: send the out-for-delivery message early in the morning of delivery day, with the delivery person’s contact only if your courier shares it, so the buyer keeps cash ready for COD.
Capturing WhatsApp opt-in at Shopify checkout and on the store
Before a Shopify WhatsApp integration sends anything, it needs permission. The WhatsApp Business Messaging Policy says you may contact people only if they have given you their number and you have received opt-in permission confirming they want messages from you. It also says you must respect requests to opt out, on or off WhatsApp.
Order updates rest on the buyer having just ordered and given a phone number for delivery. Marketing, including cart reminders, needs a clear, separate yes. We usually capture it in three places: a checkbox or line at checkout, a pop-up or footer form on the store, and a “Chat on WhatsApp” entry point where the customer’s first message itself starts the relationship.
Shopify’s help centre now lists WhatsApp alongside email and SMS in the marketing opt-in section under Settings > Checkout, where you can choose the regions in which the WhatsApp box appears. Where that built-in option suits you, the integration reads the shopper’s consent from it; an SMS or email tick is never treated as a WhatsApp yes. For pop-ups and store forms we add wording that names WhatsApp and your store, and save the answer, time and source against the Shopify customer record as a metafield or tag. Every marketing flow checks that field before sending. A reply of STOP, or a tap on an opt-out button, flips it back and removes the person from future campaigns.
India’s Digital Personal Data Protection Act, 2023 also applies to the phone numbers you collect. We build the consent record and opt-out handling; how your privacy notice is worded is for your own lawyer to confirm.
App, Shopify Flow or custom webhooks: three ways to build a Shopify WhatsApp integration
There are three workable routes, and they suit different stores. The right one depends on how unusual your rules are, how many orders you ship, and whether you mind a third party holding your WhatsApp account.
A WhatsApp app from the Shopify App Store
Install, connect a number through the app’s provider, pick templates, switch flows on. Fast and fine for standard needs. You pay the app’s plan, and sometimes a margin on messages. Check whose Meta business portfolio holds the number and whether you can take your opt-in list and templates with you.
Shopify Flow calling your own endpoint
Shopify’s help centre describes Flow as a free app on the Basic, Grow, Advanced and Plus plans, but says the Send HTTP request action is available only on Grow, Advanced and Plus. On those plans, Flow can decide when to send and call a small service that talks to the WhatsApp API. Useful for simple rules; replies still need a webhook service to receive them.
A custom app with webhooks, built for you
A private Shopify app subscribes to order, checkout and fulfilment webhooks, a small service on your hosting sends templates through the Cloud API, and replies write back to Shopify. Most flexible and no monthly plan, but someone has to maintain it. This is what we build.
Decision rule: start with an app if your flows are standard and you ship a modest number of orders; choose custom when you need your own COD rules, want chat data in your database, already pay for a CRM, or your monthly app bill keeps climbing with volume.
How much does Shopify WhatsApp integration cost in India?
It has two parts: the build (once) and the messages (every month). With BtechWaleTech, a custom Shopify WhatsApp integration starts at ₹40,000 (US$600) and takes 2–4 weeks. Meta’s message charges go on your own WhatsApp Business account, and we never resell or mark them up.
What moves the build cost up or down is the number of flows and how much logic sits inside them. A store that wants COD confirmation plus four order updates is a compact job. Adding cart recovery with consent checks, courier tracking from an aggregator, Hindi and English template sets, a return-request flow and a support inbox each adds a line. A full custom team inbox is priced as software from ₹60,000. If you do not have a store yet, a new Shopify or custom online store starts at ₹50,000, and the WhatsApp lines are itemised inside it.
App subscriptions vary widely by provider and plan, and their pricing pages change often, so compare them on shape rather than headline: a monthly fee, per-message margin, per-agent seats, or all three. Multiply by 24 months and add the margin on your expected message volume. That is the fair number to set against a one-time build plus upkeep, which with us is free for two months and then from ₹8,000/mo.
For the monthly Meta side in detail, including free windows and sample bills, read WhatsApp Business API cost in India. For what the store itself costs to run, see Shopify store cost in India.
Only template messages are charged, per delivered message, at a rate set by category. Meta’s pricing page says it moved to per-message billing on 1 July 2025, that all marketing templates are charged, and that utility templates and ordinary replies inside an open 24-hour customer service window are free.
For a Shopify store this sorts neatly. COD confirmations, order placed, shipped, out for delivery and delivered are utility: charged when sent outside an open window, free inside one. Cart reminders, back-in-stock offers, festive sale announcements and win-back messages are marketing and always charged. Anything you type back to a customer who messaged you in the last 24 hours is free.
Two practical effects follow. A buyer who ordered and then asked a question on WhatsApp has an open window, so the confirmation or tracking update you send during that window costs nothing. And keeping discounts out of your order updates matters: Meta’s categorisation guidance says utility templates cannot carry promotional content, and a template that does can be moved to marketing.
Meta also opens a free entry point window of 72 hours when someone messages you from a Click to WhatsApp ad and you reply within 24 hours. Stores that run such ads can take orders and send confirmations inside that window without message charges. Meta changes rates only on the first day of a quarter, so recheck the rate card before a big sale.
Making Shopify webhooks reliable: timeouts, retries and duplicates
Shopify webhooks are dependable but not perfect, and a Shopify WhatsApp integration that treats them as perfect will one day send a buyer two COD messages or none. Shopify’s developer docs are frank about this, and the build should plan for it.
According to Shopify’s documentation, if your app does not respond within five seconds the delivery fails, failed calls are retried up to eight times in a four-hour period, and if failures persist the subscription is removed. The docs also say ordering is not guaranteed within a topic or across topics, and that apps should not rely only on webhooks, recommending reconciliation jobs that fetch data from Shopify periodically.
- Reply to Shopify at once, then do the WhatsApp work in a queue, so the five-second limit is never at risk
- Verify the X-Shopify-Hmac-Sha256 signature on every webhook before trusting it
- Store each X-Shopify-Webhook-Id and skip ones already processed, so retries never double-send
- Look up the order’s current state before sending, since a fulfilled event can arrive before the created one
- Run a reconciliation job every few minutes that asks Shopify for recent orders and fills any gaps
- Alert a person if the subscription is removed or the queue backs up
None of this is visible to the buyer when it works. It is the difference between a flow that runs quietly through a festive sale and one that falls over on the busiest night of the year.
Writing Shopify WhatsApp templates Meta approves, in English and Hindi
Templates are the fixed message formats Meta reviews before you can send them outside a customer’s window. Good ones are short, use variables for the order details, and say exactly what the buyer should do next. Weak ones read like ads, cram in emojis and get rejected or re-categorised.
A COD confirmation might read: “Hi {{1}}, thanks for your order {{2}} from {{3}}. Total to pay on delivery: {{4}}. Deliver to: {{5}}. Please confirm so we can pack it.” with two quick-reply buttons, Confirm order and Cancel order. A shipped update: “Your order {{1}} has shipped with {{2}}. Track it here:” with a URL button. A cart reminder, which is marketing: “You left {{1}} in your cart at {{2}}. It is saved for you here:” with a button to the checkout link.
For Hindi-speaking buyers we create a second set in Hindi (Devanagari) or plain Hinglish, whichever your customers write in, and pick the language per customer from the store language or their previous replies. You approve the wording; we handle the variables and submission.
- One job per template: confirm, inform or remind, never all three
- No coupon codes or “shop more” lines in utility templates
- Show the order number and amount so the buyer trusts it is genuine
- Buttons for the expected replies, so answers arrive as clean data
- A plain opt-out line on marketing templates
How long does a Shopify WhatsApp integration take?
Two to four weeks from approval for a typical custom build, and most of the calendar is spent on Meta’s side and on testing, not coding. If your business is already verified with Meta and on the API, the first flow can be live in the first week.
Week one: we agree the message map, set up or check your Meta business portfolio and WhatsApp Business account, register the number, and submit templates. In parallel we create the Shopify custom app with only the permissions it needs and subscribe to the webhooks in the map. Week two: the webhook service, the send queue, COD reply handling and order tagging are built and tested on a development store or with test orders on yours. Week three: shipping updates, consent capture and cart recovery if ordered, plus the message log. Week four is buffer for template rejections, courier quirks and a supervised go-live with real orders.
Things that stretch the timeline are nearly always outside the code: business verification documents that do not match, a number still active on the WhatsApp Business app that needs moving, or a shipping aggregator whose status updates need their own connection. Our API integration guide covers verification and number migration in detail.
Is Shopify WhatsApp integration safe for customer data?
It can be, if the build asks for as little access as it needs and keeps secrets out of reach. Customer names, phone numbers and addresses flow through the integration, so it deserves the same care as your payment settings.
On the Shopify side we create a custom app with narrow access scopes, typically reading orders, checkouts and fulfilments and writing order tags and notes, not full admin rights. The app’s API token lives in your hosting’s secret store, not in code or chat messages. Every incoming webhook is checked against Shopify’s HMAC signature, so a forged request cannot trigger messages. On the Meta side, a system user token in your own business portfolio sends messages, and it can be rotated or revoked from your Meta settings whenever you like.
The message log keeps what you need to trace a problem (order number, template, status, time) and can mask phone numbers in dashboards for staff who do not need them. Old logs are pruned on a schedule you choose. When the project ends, you hold every account and credential; nothing depends on our access continuing.
Red flags when buying a Shopify WhatsApp integration
The warning signs are consistent across apps and developers: anything that risks your number, hides your costs or leaves you unable to leave. Watch for these before you pay.
- Unofficial senders or browser automations presented as “WhatsApp API”, which risk the number being banned
- Bulk cart reminders to every checkout phone number, with no opt-in check
- A per-message price with no split between marketing and utility
- The WhatsApp account registered in the provider’s portfolio, with no written export path
- Discount codes inside order update templates
- No duplicate handling, so retried webhooks send the same COD message twice
- Full admin access requested for a job that needs order read and tag write
- No log of what was sent, so you cannot check the monthly bill
If an offer ticks more than one of these, ask for changes in writing or walk away. The rules behind them are covered on our pages on sending bulk WhatsApp messages safely and WooCommerce WhatsApp integration, which faces the same risks on a different platform.
Measuring whether your Shopify WhatsApp integration is paying off
Measure three numbers before launch and again after two months: the share of COD orders that return undelivered, the number of “where is my order” chats per hundred orders, and orders that came back through a cart reminder link. If none moves, change the flows before adding more.
For COD, compare RTO on orders confirmed by WhatsApp with orders where the buyer stayed silent. That gap tells you whether to auto-cancel silent orders, call them, or push a prepaid link. For support load, count chats and calls that ask about order status; good shipping updates should shrink that pile. For cart recovery, tag the checkout link in each reminder with a UTM parameter so orders from it show up in Shopify’s reports, then subtract what those shoppers might have bought anyway by comparing with a small group who were not messaged.
We add a simple weekly view to the message log: templates sent by category, delivery and read rates, button taps, confirmations versus cancellations, and cart links clicked. If you run Meta ads, WhatsApp orders can be sent back as conversions; see Meta Conversions API setup.
Worked example: a block-print kurta store with heavy COD
This is a hypothetical scenario to show how the pieces fit, not a client story. Say a Jaipur label sells block-print kurtas on Shopify to buyers across India, around sixty orders a day, most of them COD, and two staff spend their mornings phoning buyers to confirm orders and answering tracking questions.
The message map would start with a COD confirmation sent two minutes after each cash order, in English or Hindi depending on the store language, showing the order total and address. Confirm tags the order and releases it to the shipping app; cancel tags it for a staff member to close; silence triggers one reminder after four hours and then lands on a short call list. Prepaid orders skip that step and get only the placed message.
Fulfilments from the shipping app trigger a shipped message with a tracking button, and the aggregator’s status webhooks drive out-for-delivery and failed-attempt messages. Cart reminders go only to shoppers who ticked the WhatsApp line at checkout. Buyer replies to any message drop into a shared inbox against the order.
The staff would then call only silent buyers instead of everyone, and the owner would see RTO split by confirmed versus silent orders in the weekly view. The build would fall inside the ₹40,000 starting scope plus lines for cart recovery and aggregator tracking, quoted before any work starts.
Shopify WhatsApp integration for stores across India
We work remotely with Shopify sellers in every state, in English or Hindi, and the setup is the same whether you ship from a metro warehouse or a small workshop. What changes city to city is the product and the payment mix: some regions lean heavily on COD, others on UPI prepaid.
Our city pages describe local businesses we build for, including Bengaluru, Gurgaon, Noida, Vadodara, Mysuru, Bhubaneswar, Patna, Chandigarh, Bikaner and Thiruvananthapuram. Payments are by UPI or bank transfer, with GST details on the invoice as agreed in your quote. Stores selling abroad from India pay the same way, while overseas clients are quoted in USD and pay by Wise, bank wire or PayPal.
What we do not do: visit your warehouse, handle your courier contracts or give legal advice on consent wording. What we do is wire Shopify and WhatsApp together properly, hand you every account, and look after it for two months free.