🛍️ Shopify on WhatsApp

Answering “where is my order?” without typing

Two flows, not one: a proactive update that prevents the question, and a reactive lookup for when it comes anyway.

Answering order-status questions automatically takes two flows: a proactive one that sends tracking the moment an order ships, and a reactive one that looks the order up when a customer asks anyway. Most stores build only the second and wonder why the volume stays high.

Both are free to run. The proactive one is a utility template, free inside an open conversation window; the reactive one is a reply to a customer who just messaged, which is free by definition.

Flow one: prevent the question

A large share of "where is my order?" messages exist because the customer was never told. A shipping notification with a real tracking link removes them.

Proactive: tell them before they ask

TriggerShopify: order shipped
SendCarrier and tracking linkUtility template, three variables

One caution worth building around: a manual fulfilment with no tracking number sends an empty variable, and Meta rejects the whole message with error 132000. If you fulfil by hand, put a fallback phrase in the template rather than relying on a variable that may be blank.

Flow two: answer the question when it comes

Some customers will ask regardless — they lost the message, or they want reassurance. This flow catches the question, asks for the order number, looks it up and answers.

Reactive: look it up and answer

TriggerCustomer messages you
ConditionMessage contains an order-status phrase
Ask"What's your order number?"Free text, saved to a contact field
Google SheetsFind the matching row
success
Send status and tracking
failure
"Let me get someone to check"
Assign the chat

Install the lookup flow

Needs three contact fields and your orders sheet connected.

Add this automation to my account It installs as a draft. Nothing is switched on and no customer is messaged until you press Publish.

Where the answer comes from

SourceGood forSetup effort
Google SheetA store whose team already keeps oneMinutes
Your own system, via an API stepLive, authoritative dataNeeds a developer once
Saved contact fields from the shipping flowThe simplest possible versionNone

That third row deserves attention because it costs nothing. If your shipping notification already stores the tracking link on the contact, the reactive flow can simply read it back — no sheet, no lookup, no failure branch. It only knows about the most recent order, which for most stores is exactly the order being asked about.

Catching the question reliably

The keyword list is what decides whether this flow ever runs. Start with: where is my order, order status, tracking, track my order, has it shipped, when will it arrive, delivery status, any update.

Then add how your customers actually write. In South Asian and Gulf markets that means transliterated phrasings — "kab ayega", "kab tak", "kidhar hai" — which contain no English words at all and will otherwise sail straight past the rule. See handling Roman Urdu and Hinglish.

If the flow shows zero runs, the keyword list is the culprit. Not the lookup, not the sheet. Check the automation's activity view: no runs means nothing matched, and the fix is twenty minutes reading real messages in your inbox.

Always have a human path

A lookup that finds nothing is routine, not exceptional — customers mistype order numbers, quote the wrong reference, or ask about an order placed by someone else. Wire the failure branch to a message and a handover every time.

The message matters as much as the routing. "I couldn't find that order number — let me get someone to check it properly" is honest and reassuring. Silence, which is what an unwired branch produces, is neither. Handing a chat to a human covers doing it well.

What this flow cannot do

Measuring whether it worked

The number to watch is what share of order-status conversations finish without a human. Compare your inbox volume for these questions before and after launching both flows — and expect the proactive flow to move it more than the reactive one, which is the opposite of most people's intuition.

Judge it against effort saved rather than messages sent. Measuring whether your automation works covers the distinction.

Answering the question behind the question

"Where is my order?" is rarely a request for a tracking number. It is usually one of three anxieties, and answering the actual one resolves the conversation in a single message instead of three.

What they typeWhat they meanWhat resolves it
"Where is my order?"Is it coming at all?Status plus a date
"It says shipped 3 days ago"Is it lost?Carrier scan detail, or a human
"Will it arrive before Friday?"Do I need a backup plan?An honest yes or no
"Has it been dispatched?"Did my order actually register?Confirmation it exists

The practical upshot: always include an expected date alongside the status, not just a link. A tracking link that says "in transit" answers none of the four.

What it costs, which is nothing

Both flows are free to run. The proactive shipping notification is a utility template, free when it lands inside an open conversation window and cheap when it does not. The reactive lookup is a reply to a customer who just messaged you, which Meta's pricing documentation confirms is free — service conversations have been free and unlimited since 1 November 2024.

So the cost of removing your most repeated support question is essentially the setup time. That is unusual, and it is the reason this flow tends to pay back faster than anything promotional.

The same-day cutoff question

A close cousin of "where is my order" is "will it go out today?", and it needs a different step: a Time of Day Check branches before or after a daily cutoff, so the answer reflects the actual time rather than a generic promise.

Set it to your real dispatch deadline and write both branches honestly — "order before 2pm and it goes today" on one side, "today's collection has gone, so it ships tomorrow" on the other. Customers forgive a next-day dispatch; they do not forgive being told it would go today when it did not. The block is covered in every automation step, explained.

Before you publish

  1. Keyword list built from real inbox messages, not guesses.
  2. Contact fields defined under Settings → Contact Attributes, or the saves silently do nothing.
  3. The lookup's failure branch wired to a message and a handover.
  4. An expected date in the reply, not just a link.
  5. Tested in the simulator with both a matching and a non-matching order number.

Where the data can come from

SourceBest forSetupHow current
Contact fields saved by your shipping flowThe simplest versionNone — you already have themMost recent order only
A Google Sheet your team updatesStores that already keep oneMinutesAs current as the sheet
Your own system via an API stepLive, authoritative dataA developer, onceReal time

Start at the top of that table. If your shipping notification already stores the tracking link on the contact, the reactive flow can read it straight back — no sheet, no lookup step, no failure branch to wire. It only knows about the latest order, which for most stores is the order being asked about anyway.

What it will not do

Being clear about the third case in your copy helps. "I can only see orders placed with this number — let me get someone who can check the others" is a better experience than a lookup that silently finds nothing.

Why the proactive half matters more

Most stores build the lookup and skip the shipping notification, then wonder why the question volume barely moves. The lookup answers a question that has already cost the customer some anxiety and your team some attention. The notification prevents it from being asked.

If you only build one, build the notification. It is a single utility template on a single trigger, it needs no keyword matching to be right, and it removes the cause rather than handling the symptom. Then add the lookup for the customers who lost the message or want reassurance anyway — there will always be some.

Why this flow is the cheapest one you will build

Both halves sit on the free side of Meta's pricing. The reactive lookup is a reply to a customer who just messaged you, and the proactive shipping notification is a utility template — free when it lands inside an open window.

Meta's sending messages documentation sets out the mechanic: the 24-hour customer service window opens when a customer messages or calls you, and resets to a fresh 24 hours each time they do. Service conversations inside it have been free and unlimited since 1 November 2024.

So removing your most repeated support question costs setup time and close to nothing per message — which is unusual, and the reason this flow tends to pay back faster than anything promotional.

Frequently asked questions

How do I automate 'where is my order' on WhatsApp?

Two flows: a proactive shipping notification with a tracking link, and a reactive flow that catches order-status keywords, asks for the order number, looks it up and answers — handing over the ones it cannot find.

Where does the order status come from?

A connected Google Sheet, your own system via an API step, or contact fields your shipping flow already saved. The third costs nothing to set up and covers the most recent order.

My order-status flow never runs. Why?

Almost always the keyword list. Check the automation's activity view — no runs means nothing matched, so add the phrasings customers actually use, including transliterated ones.

Why does my tracking template fail to send?

Usually an empty variable. A manual fulfilment with no tracking number sends a blank where Meta expects a value, which produces error 132000 and the customer receives nothing.

Need help? Message us