Ecommerce

WhatsApp Automation for D2C Brands in India (2026): The Five Flows, What Each Costs, and What to Hand to an AI Agent

Most D2C WhatsApp stacks in India run the same five flows. Here is each one with its Meta template category and rupee cost, the limits that quietly block messages, and a worked monthly bill for a brand doing 5,000 orders.

12 min readAmomic-AI

The short answer

  • 5WhatsApp flows that cover most of a D2C brand's volume
  • ₹0.1150per utility message to an Indian number (order updates, COD confirmation)
  • ₹0.8631per marketing message (abandoned cart, re-engagement)
  • 250 → 2,000first messaging-limit step for a new business portfolio

WhatsApp automation for a D2C brand in India comes down to five flows: order updates, COD confirmation, abandoned-cart recovery, “where is my order” support, and returns. Three of them are utility templates at ₹0.1150 a message on Meta’s India rate card. One is a marketing template at ₹0.8631. The last two are conversations a customer starts, which an AI agent can answer from your order data.

The opportunity is in what happens after the message. An order update can become an answered tracking question; a COD reminder can become a confirmed address. Adya connects those replies to your order data and gives your team a handoff when needed. Budget for both Meta messaging and the platform that handles the conversations, then measure the orders and support work the flow helps your team manage.

Where D2C brands lose money on WhatsApp today

Three leaks show up in almost every brand we look at. Each one maps to a flow below.

Returns to origin. A COD parcel refused at the door costs forward shipping, reverse shipping, packaging and the ad spend that won the order. Industry figures for Indian RTO rates vary widely by category and courier, and no regulator publishes one, so measure your own. The direction is not in doubt: an unconfirmed COD order is your riskiest shipment.

“Where is my order?” tickets. Every status question a human answers costs agent time, and most of them have an answer already sitting in your order system. The customer wanted the tracking scan, not a person.

Checkouts that stop at the OTP. A customer who added to cart and left gave you a phone number and intent. A single, opted-in reminder recovers some of them. The trap is sending it as a utility template and getting it reclassified as marketing, or sending it to someone who never opted in.

Flow 1: order confirmation and tracking

This is the flow to build first, because it is cheap, it is expected, and it opens the door for Flow 4. Your store fires a webhook when an order is created, paid, shipped and out for delivery; each event sends one utility template.

EventStore triggerTemplate categoryMeta cost per message
Order placedShopify orders/create; WooCommerce order topicUtility₹0.1150
Payment receivedShopify orders/paidUtility₹0.1150
Shipped, with tracking linkShopify orders/fulfilled or fulfillments/updateUtility₹0.1150
Out for delivery / deliveredCourier webhookUtility₹0.1150
Cancelled or refundedShopify orders/cancelled, refunds/createUtility₹0.1150
Order-update templates and what each costs on Meta's India rate card. Shopify topic names from Shopify's webhooks reference, fetched October 10, 2026.

Shopify delivers each webhook as an HTTPS POST with an HMAC signature in the X-Shopify-Hmac-SHA256 header. It expects a 200 within five seconds, and retries 8 times over the next 4 hours if it gets anything else. WooCommerce configures webhooks under Settings → Advanced → Webhooks with a shared secret, and disables a webhook after more than five consecutive delivery failures. Acknowledge first, send the template afterwards.

Two rules keep this flow at ₹0.1150. Send one message per real event, not one per attempt — an idempotency key such as order-4821-shipped makes a retry safe. And keep the copy to the order: name, order number, what happened, when to expect the next step. The order-update recipe in our docs walks the whole loop, including the webhooks that tell you the message was delivered and that the customer replied.

Flow 2: COD confirmation and RTO

We worked this one through in full in the cheapest way to confirm a COD order, so here is the shape and the conclusion rather than a repeat.

Confirm by WhatsApp first: one utility template within minutes of the order, with quick-reply buttons to confirm, change the address or cancel. Call only the customers who did not reply after a few hours, with an AI agent that confirms the same three things and corrects the address on the call. Hold or convert to prepaid the orders that answer neither.

In the illustrative scenario in that guide, the ladder cost less per confirmation than calling everyone. Your WhatsApp reply rate, call connection rate and average call length determine your result; the example is not measured performance or a guarantee. Write every outcome, including address corrections, back to your order system.

Flow 3: abandoned-cart recovery

This is the one flow on the list that is marketing, and it is billed like it: ₹0.8631 per delivered message, about 7.5 times a utility message. Meta’s own template guidelines list “You left {{items}} in your cart!” as a marketing example. Submitting it as utility does not make it cheaper; Meta assigns the category and reclassifies mixed content as marketing.

Shopify’s checkouts/create and checkouts/update webhooks carry an abandoned_checkout_url, which is the link your template should deep-link to. Send one reminder, not a sequence, and only to customers whose opt-in covers marketing messages. Meta’s policy requires that opt-in to name your business and state what the person is agreeing to receive, and it recommends a separate opt-in per message category.

Two limits sit on this flow and on nothing else. Meta’s per-user marketing limit can block your reminder because the customer has had too many marketing messages from other brands this week; you are not charged, but it does not arrive. And your own frequency cap should be stricter than Meta’s — Adya’s sending rules hold every person to one message per campaign per day and four per rolling week, and the weekly cap can only be lowered.

Flow 4: “Where is my order?” answered by an AI agent, not a ticket

A customer replies to the shipping update with “it says out for delivery but nothing came.” That reply opens a 24-hour customer service window. The pricing example below includes applicable Meta service-message charges. With a live order lookup, Adya can answer a routine tracking question in that conversation and pass exceptions to your team.

The agent needs a live read tool pointed at your order data. In Adya that is a knowledge-base source in “call it live” mode with a URL like https://api.yourbrand.in/orders/{order_id} and a name such as check_order. It also needs a one-line rule for when to use it: “after the customer has given an order number or you have identified them by phone.” The agent calls it mid-answer and reads back the latest scan, the courier and the expected date. Read tools cannot change anything in your system; that is enforced, not advisory.

Shopify, WooCommerce and most Indian courier aggregators expose this over REST already. If your tracking lives in a spreadsheet, that is the thing to fix before any WhatsApp work.

Flow 5: returns, exchanges and human handoff

Returns are where automation should stop short of the decision. Let the agent collect what a human would ask anyway — order number, item, reason, a photo if your policy needs one — and read your return policy back accurately. Then either take the action your rules allow, or hand off.

The distinction that matters is read versus action. Looking up whether an order is inside the return window is a read. Accepting the return is an action, and an action tool should confirm the customer asked, gather details one at a time, and never claim it is done before your system says so. If you are not ready to let an agent accept returns, switch actions off and it can still answer every question about them.

Handoff is the other half. Adya’s human handoff moves a WhatsApp thread to a live person inside your live hours, with an AI-written summary and the full thread, so the customer does not repeat themselves. Outside live hours it creates a ticket with a reference the customer can quote. A staff reply on WhatsApp still has to respect the 24-hour window and any opt-out, the same as the agent’s.

Templates: utility vs marketing, and why wording changes your bill

Meta reviews every template and assigns one of three categories. Utility templates must be non-promotional and either requested by the user or essential to them. Authentication is one-time codes. Everything else is marketing. Meta’s guidelines state that a template mixing utility and marketing content is categorised as marketing.

WordingCategoryMeta cost per messagePer 5,000 orders
“Your order AM-4821 has shipped and should arrive in 2–3 days.”Utility₹0.1150₹575
“Your order AM-4821 has shipped! Use code BACK10 on your next order.”Marketing₹0.8631₹4,315.50
“Your package is out for delivery today.”Utility₹0.1150₹575
“You left {{items}} in your cart! Complete your order.”Marketing₹0.8631₹4,315.50
The same event, two wordings, two prices. Meta's India rate card as used in our pricing post; India unchanged on the October 1, 2026 card, checked October 10, 2026.

The practical rule: one template per job, and no second job in the same template. Put the discount in a separate, opted-in marketing message, and keep every status template to the status. A category you disagree with can be appealed in WhatsApp Manager, but you pay the applied category until it changes.

Write the variables carefully. Meta rejects templates with placeholder gaps, variables at the very start or end, and content that looks like it is collecting sensitive data. In Adya a template that is submitted but not yet approved is refused at launch with template_not_approved, which is better than forty thousand delivery failures.

Messaging limits, quality rating and the per-user marketing limit

Messaging limits

A new business portfolio can message 250 unique customers in a rolling 24 hours, outside open service windows. The next tier is 2,000, not 1,000. Meta’s messaging-limits page gives three ways to reach it: verify your business, have the partner that onboarded you verify it, or deliver 2,000 high-quality templates to unique numbers within 30 days. Above 2,000 the tiers are 10,000, 100,000 and unlimited. You move up one level when your quality is good and you have used at least half your limit in the last 7 days.

For a brand doing 5,000 orders a month, 250 is a day-one problem and 2,000 is comfortable. Replies inside a customer service window never count, which is one more reason to let customers open the window.

Quality rating

Each business phone number carries a Green, Yellow or Red rating based on the last 7 days of customer feedback, mainly blocks and reports. Red moves the number to Flagged; if it has not recovered after 7 days, Meta drops the messaging limit one tier. Sending marketing to people who did not opt in is the fastest way to get there.

The per-user marketing limit

Separately, Meta limits how many marketing templates one person receives from all businesses in a period. The number is not published and adapts to the person’s recent read rate and inbox. A blocked message fails on the status webhook with error code 131049; wait at least 24 hours before resending, because repeated retries can suspend delivery to that user for up to 24 hours. Marketing sent inside an open service window does not count towards it.

Monthly cost for a brand doing 5,000 orders

Assumptions, all replaceable: 5,000 orders, 60% COD, three utility updates per order, and 4,000 abandoned checkouts with a marketing opt-in. 20% of orders generate a tracking question and 5% a returns conversation, with four AI replies each. COD voice uses the ladder from the COD post: 45% confirm on WhatsApp, 68% of the rest answer a 1.2-minute call.

LineVolumeRateMeta cost
Order updates (utility)15,000₹0.1150₹1,725
COD confirmation (utility)3,000₹0.1150₹345
Abandoned cart (marketing)4,000₹0.8631₹3,452.40
AI replies in the service window5,000First 1,000 free, then ₹0.1150₹460
Meta total27,000 messages₹5,982.40
Meta fees only, India rates, before GST and Adya charges. Service charges use the October 2026 assumptions in our pricing guide and one connected WhatsApp number.

Count customer windows, not just incoming replies. For this scenario assume each order belongs to a different customer, its three updates fall in three separate 24-hour windows, and the COD prompt and its replies share the first window. That creates 15,000 windows. Assume the 4,000 cart nudges and 1,250 tracking/returns conversations each open additional windows: 20,250 WhatsApp conversations in total. Messages within an already open customer window do not add another conversation. Your own schedule and repeat customers may change this count substantially.

Use Growth for this outbound campaign workflow: 5,000 conversations, 500 call minutes and one Indian phone number are included. The COD voice rung assumes 1,650 attempts, 68% connected and 1.2 minutes per connected call: 1,346.4 minutes, rounded up to 1,347 billable minutes in this estimate. Voice is billed separately from the conversation allowance. Plan campaign batches within your recipient limits.

LineCalculationCost
Growth subscription5,000 conversations + 500 call minutes₹7,999
Extra conversations(20,250 − 5,000) × ₹2₹30,500
COD voice overage(1,347 − 500) × ₹6₹5,082
Indian phone numberOne included with Growth₹0 extra
Adya subtotalSubscription + conversation and voice overages₹43,581
Meta messaging, billed separatelyTemplates ₹5,522.40 + service ₹460₹5,982.40
Combined monthly estimateBefore GST; no extra numbers or services₹49,563.40
Per order₹49,563.40 ÷ 5,000₹9.91
The same month on Adya, before GST. Voice at ₹6/minute includes telephony. Replace every assumption with your own numbers; the method is the point.

Compare this estimate with your own avoided return costs, contribution from recovered orders and support hours saved. For example, preventing 60 returns at an assumed ₹500 cost each would avoid ₹30,000. Assess that alongside contribution from recovered checkouts and time saved answering order questions. Bring your volumes to our team to compare the listed plan with a custom setup. Include integration work, extra numbers and taxes in your rollout budget. Our WhatsApp Business API pricing post explains the Meta portion separately.

Go beyond broadcasts with conversations that resolve

A status message is often the start of a customer question. Adya helps your team manage what follows: tracking, return policy questions and a handoff with the conversation history.

Start with one connected workflow. Bring your store events and order-data endpoint into the setup conversation. Plan the webhook or integration work, test one order update and its likely replies, then expand when the answers and handoffs meet your criteria.

Make campaigns useful to the recipient. Keep consent and frequency caps in the rollout plan. Use delivery outcomes and customer replies to evaluate a campaign, with your team ready for exceptions that need judgment.

Pick Adya when the replies are the point. A status message turns into a tracking question, a return, an address change or a call, and you want one agent handling all of it with a human one click away.

Frequently asked questions

Sources

  1. 1.Meta for Developers — Pricing on the WhatsApp Business Platform (rate cards, India INR billing, free entry point window)
  2. 2.Meta for Developers — Upcoming pricing updates for service and utility messages (effective October 1, 2026)
  3. 3.Meta for Developers — Template categories and guidelines (utility, marketing, authentication examples)
  4. 4.Meta for Developers — Messaging limits (250 → 2,000 → 10,000 → 100,000 → unlimited)
  5. 5.Meta for Developers — Per-user marketing template message limits (error 131049)
  6. 6.Meta for Developers — Get opt-in for WhatsApp
  7. 7.Meta Business Help Center — About your WhatsApp Business phone number's quality rating
  8. 8.Shopify.dev — Webhooks reference (orders/create, orders/paid, orders/fulfilled, checkouts/update)
  9. 9.Shopify.dev — HTTPS webhook delivery, HMAC verification and retries
  10. 10.WooCommerce — Webhooks documentation
  11. 11.Amomic-AI docs — Campaign sending rules (opt-outs, consent, frequency caps)
  12. 12.Adya pricing — our full price list