WhatsApp automation for Shopify: the seven events you get
Exactly which Shopify events reach WhatsApp, what each one costs to act on, and the one that quietly never fires for many stores.
Connecting Shopify to WhatsApp lets seven store events start an automation: order placed, payment success, payment failed, order shipped, order delivered, order cancelled and abandoned cart. There is no eighth. There is no stock-level event, no price-change event and no wishlist event, whatever a competitor's feature list implies.
Knowing the exact list matters, because a flow built on an event that does not exist does not error — it simply never runs, and you find out weeks later.
The seven events
| Event | Fires when | Best used for | Needs a template? |
|---|---|---|---|
| Order placed | An order is created | Confirmation with Confirm / Cancel buttons | Yes |
| Payment success | The order is paid | Receipt; skipping COD confirmation | Yes |
| Payment failed | A payment attempt fails | Retry link, or switch to cash on delivery | Yes |
| Order shipped | The order is fulfilled | Carrier and tracking link | Yes |
| Order delivered | The carrier reports delivery | Review request | Yes |
| Order cancelled | The order is cancelled | Confirming the cancellation | Yes |
| Abandoned cart | A checkout is abandoned | Recovery reminder | Yes — and it must be marketing |
Every one needs an approved template, and the reason is the same in all seven cases: a store event arrives on a chat the customer may never have written to, so the 24-hour customer service window is closed and Meta only permits approved templates outside it.
The event that quietly does not fire
Order delivered only arrives if your carrier reports delivery back to Shopify, and many carriers do not. This is the single most common disappointment in a Shopify WhatsApp setup: a review-request flow that looks perfect and never runs.
Test it with a real order before you build on it. Place an order, fulfil it, and watch whether a delivered event ever arrives. If it does not, build your review request off order shipped plus a delay instead — less precise, but it actually fires.
What data comes with an event
Each event carries the order's details, which your messages can use as variables: order number, order total, currency, the line items as a summary, the shipping address and city, the tracking number and link, the carrier, and the checkout link for an abandoned cart.
Two practical notes. First, a fulfilment event carries tracking details only if the fulfilment had them — a manual fulfilment with no tracking number sends an empty variable, and an empty variable is what produces error 132000. Second, the phone number comes from the order, so a customer who typed their number badly at checkout is unreachable no matter how good your flow is.
Connecting the store
- Go to Settings → Shopify and connect your store.
- Approve the permissions. If you want automations to cancel orders, the write-orders permission is required — a store connected before that scope existed must be reconnected, or the cancel step will fail quietly.
- Create your templates under Settings → WhatsApp Templates and wait for Meta's approval.
- Build the flows, test them, and publish.
What to build, in order
Build the utility flows first. They are free inside an open conversation window, they are deliverable everywhere including the United States, and customers welcome them. Marketing flows are charged, capped and regionally restricted.
- Order confirmation with buttons. In cash-on-delivery markets this is the highest-value automation that exists — confirming COD orders on WhatsApp. Everywhere else it still earns its place, because the customer's tap opens a free 24-hour channel.
- Shipping with tracking. The message customers most want.
- "Where is my order?" — answered automatically, which removes the most repeated question in ecommerce support.
- Review request after delivery — asking for a review, once you have confirmed the delivered event actually arrives.
- Abandoned checkout recovery — cart recovery, last, because it is marketing.
Writing back to Shopify
Flows can write as well as read. Two steps do it:
- Update Shopify Order Tags — add or remove tags on the order, which is how a confirmation flow records the customer's answer where your fulfilment team will see it.
- Update Shopify Order Status — including cancelling the order, which needs the write permission.
Order tags are the underrated half. A tag reading "confirm order" or "cancel order" turns a WhatsApp conversation into something your packing team can filter on without opening a chat.
What Shopify events cannot do
- Nothing watches stock. No back-in-stock trigger exists — see back-in-stock alerts for the honest workaround.
- No lifetime customer attributes are kept for you. Nothing tracks "total orders" or "last order date" automatically. Relative date filters do exist — "more than N days ago" is a real audience filter — so a lapsed-customer segment works once an automation stamps the date on each order. You have to build that stamping first, and it only sees orders after you switch it on.
- No per-contact scheduling. A flow can wait a fixed number of minutes; it cannot message someone on a specific future date.
- No product-interest capture. Browsing does not generate an event.
Anything your own systems know but Shopify does not can still start a flow — that is what the External Event trigger is for.
Costs, briefly
Every one of these flows sends its first message as a template, which Meta charges for. But utility templates are free when sent inside an open conversation window, per Meta's pricing documentation — so a store whose customers regularly message it pays far less than one that only broadcasts outward.
The design lever is the same one that runs through this whole site: make the first template a question rather than a statement. The tap opens the window, and everything after it is free. What WhatsApp automation actually costs works through the arithmetic.
WooCommerce and everything else
If you are not on Shopify, the store-event triggers above do not apply, but almost everything else does: keyword flows, the knowledge base, Google Sheets lookups and the shared inbox are all platform-agnostic. Order events can be pushed in from any platform through the External Event trigger, which is how a WooCommerce or custom store gets the same flows.
What arrives with each event
The data an event carries is what your templates can personalise, so it decides what is worth building. Across the order events you get:
| Value | Available on | Watch out for |
|---|---|---|
| Customer name | All | Falls back through shipping, billing then customer records |
| Order number and total | All | Reliable |
| Line-item summary | Order events | Naming products can push a template toward marketing |
| Shipping address, city, country | All | Useful for routing and address checks |
| Carrier and tracking link | Shipped | Empty on a manual fulfilment |
| Checkout link | Abandoned cart | The whole point of that flow |
That fourth row is the one that breaks flows in production. An empty variable makes Meta reject the entire message with error 132000, and the customer receives nothing while your dashboard shows a send. If you ever fulfil by hand, write the template so a missing tracking number still reads sensibly.
The phone number decides everything
Every store-event flow depends on the phone number attached to the order, and that number comes from a checkout form a customer typed. Three consequences worth designing for:
- A mistyped number is unreachable, no matter how good the flow is. In cash-on-delivery markets this is a data-quality problem before it is a messaging one.
- A local-format number needs resolving to international form — 0300… and +92300… are the same customer, and if they are stored differently you end up with two contacts and a split history.
- The order phone may not be their WhatsApp number. A customer who orders with a landline or a work number will never receive anything, and there is no signal telling you that beyond an undeliverable error.
Order of build, and why
If you are starting from nothing, this sequence gets value soonest and costs least:
| Order | Flow | Why here |
|---|---|---|
| 1 | Stop the bot when a human replies | Ten seconds, prevents a bad experience forever |
| 2 | Order confirmation with buttons | Catches bad orders before shipping cost; the tap opens a free window |
| 3 | Shipping with tracking | The message customers most want |
| 4 | Order-status answering | Removes the most repeated support question |
| 5 | Review request | Only after you have confirmed delivered events arrive |
| 6 | Abandoned checkout | Last — it is marketing, so it costs money on every send |
Five of those six are utility or service flows, which are free inside an open conversation window under Meta's pricing rules and deliverable everywhere including the United States. Build the free half first; it is also the half customers actually welcome.
Writing back to the order is half the value
A confirmation flow that only messages the customer has done half a job. The tags it writes are what change your operations, because your packing team can filter on them without opening a chat.
A workable convention is one tag per state — pending confirmation, confirmed, cancelled — so that "today's packing list" and "today's call list" are both just Shopify filters. That is the actual workflow change; the WhatsApp message is the mechanism that produces it. Details in the confirmation flow.
Every one of these flows gets sharper once it stops treating all orders alike. The order data each event carries — totals, payment status, address, the customer's purchase history — is listed in the Shopify order fields reference, along with the conditions stores build from them.
Frequently asked questions
Which Shopify events can trigger a WhatsApp automation?
Seven: order placed, payment success, payment failed, order shipped, order delivered, order cancelled and abandoned cart. There is no stock-level, price-change or wishlist event.
Why does my order-delivered flow never run?
Because the delivered event only arrives if your carrier reports delivery back to Shopify, and many do not. Test with a real order, and fall back to order-shipped plus a delay if it never fires.
Do Shopify-triggered flows need approved templates?
Yes, all of them. A store event arrives on a chat the customer may never have written to, so the 24-hour window is closed and Meta only allows approved templates outside it.
Can an automation cancel a Shopify order?
Yes, with the Update Shopify Order Status step — but it needs the write-orders permission. A store connected before that scope existed must be reconnected or the step fails quietly.