WhatsApp · Order status
WorkflowD2C brandsAnswering "where is my order" on WhatsApp in one workflow
Order status questions are the largest share of many D2C support inboxes, and each one needs the same three lookups. This playbook builds one workflow that does the lookups, replies with buttons and passes the hard cases to a person.
Valnora & Elric team6 min read
- Format
- Playbook
- Steps
- 8
- Solution
- Workflow
- Parts used
- 4
"Where is my order" is the question a D2C support team answers most, and almost every answer is the same three lookups: find the order, find the tracking number, ask the courier for the latest scan. A person doing that by hand switches between Shopify, the courier panel and WhatsApp for every chat. On a sale weekend the queue grows faster than anyone can clear it.
This playbook builds one workflow in Agent Serve that does the lookups, replies on WhatsApp with buttons, and passes anything unusual to a person with the context already attached. The order numbers, hubs and thresholds below are illustrative.
From a WhatsApp question to a tracked answer
Workflow · Order status
- 01WhatsApp triggerEach incoming message reaches the workflow through the WhatsApp webhook trigger.
- 02Intent and order matchAn Agent block decides whether the message is an order status question and finds the order number or phone match.
- 03Shopify order lookupShopify Get or List orders returns status, fulfilment and tracking number.
- 04Courier statusThe API block calls the courier’s tracking endpoint with a key stored as a workspace secret.
Reply and hand-off
- 05Interactive replySend Interactive answers with the latest scan and buttons: Track, Change delivery, Talk to us.
- 06Conversations tableOne row per question: order, courier status, answer sent, hand-off flag.
- 07Support agentDelayed, lost or angry cases go to a person in Slack or the help desk with the lookups attached.
Step 1: Start the workflow from WhatsApp
Add the WhatsApp trigger to a new workflow and point your WhatsApp Business webhook at it. Every incoming message starts one run with the sender’s number and the message text.
Add Mark As Read as the first action, so the customer sees their message was received while the lookups run.
Step 2: Decide what the message is
Not every message is about order status. An Agent block classifies the text into a few labels: order status, return or exchange, product question, other. It also pulls out an order number if there is one, in formats such as "#51907" or "order 51907".
Only order status questions continue down this path. The rest go to your existing support flow, or straight to a person. Keep the labels few. A classifier with four labels is easy to check in the run log; one with twenty is not.
Step 3: Find the order in Shopify
With an order number, use the Shopify Get order operation. Without one, use List orders filtered by the customer’s phone number and take the most recent open order.
From the order, keep: financial status, fulfilment status, items, the tracking number and the courier name. If the order is not yet fulfilled, the workflow can answer straight away: "Your order is being packed and will ship within two working days." The wording comes from a delivery policy document in the Knowledge Base, so it matches what your site promises.
If more than one open order matches, the workflow sends a list message with Send Interactive and lets the customer pick.
Step 4: Ask the courier for the latest scan
Couriers and shipping aggregators such as Delhivery, Shiprocket or iThink Logistics are not native integrations. Use the generic API block to call your courier’s tracking endpoint, with the API key stored as a workspace secret. Map the response to three fields: latest status, location and time of the last scan, and expected delivery date if the courier provides one.
If you use more than one courier, add a condition on the courier name and one API block per courier. Each returns the same three fields, so the rest of the workflow does not care which courier carried the parcel.
Step 5: Reply with buttons
Because the customer wrote first, the 24-hour service window is open and you can reply with an interactive message. Send Interactive sends the latest scan in plain words with up to three reply buttons:
- Track shipment sends the courier’s tracking link.
- Change delivery asks what they need and records it for the team. Changing the address in Shopify is a person’s job: the Shopify order update covers note, tags and email only.
- Talk to us hands the chat to a person, every time it is pressed.
What the solution produces
WhatsApp reply with buttons (illustrative)
MessageHi Arjun, your order #51907 (1 item) shipped on Tuesday.
Latest update: Out for delivery from the Andheri East hub, 09:12 today.
The courier expects to deliver it by 8 pm.
[Track shipment] [Change delivery] [Talk to us]
Hand-off card for a support agent (illustrative)
Record- Customer
- WhatsApp +91 98xxx xx214 · order #51644
- Question
- "It has been 9 days, where is it?"
- Shopify
- Fulfilled 2 Oct · tracking number on file
- Courier
- Last scan 4 Oct: in transit, Nagpur hub. No scan since.
- Why handed off
- No courier scan for more than 72 hours
- Sent so far
- Holding reply: "A teammate is checking with the courier."
Step 6: Hand off what the workflow should not handle
A rule decides when a person takes over. Typical conditions:
- No courier scan for more than 72 hours.
- The courier status says delivered, but the customer says it has not arrived.
- The order is marked RTO or the courier reports a failed delivery attempt.
- The message reads as a complaint, or the customer has asked twice in a day.
On a hand-off, the workflow sends a short holding reply ("A teammate is checking this with the courier"), then posts a card to a Slack channel or creates a ticket in your help desk with everything it found. The agent who picks it up does not repeat a single lookup. For failed attempts, the non-delivery follow-up playbook covers what happens next.
Step 7: Keep a record and watch the numbers
Each run writes a row to a conversations table in Tables: order, courier, status found, reply sent, and whether it was handed off. A small dashboard on that table shows questions per day, the share answered without a person, hand-offs by reason, and which courier hubs produce the most "no scan" cases.
How to measure it
3 lookups
Done by the workflow for every question
Order, fulfilment and latest courier scan, in one run. Illustrative.
72 h
Example no-scan threshold for a hand-off
Illustrative; set your own in the rule.
Illustrative example. Figures show how the workflow is measured; they are not customer results.
That last panel often matters more than the replies. A hub that goes quiet for three days shows up in the table before it shows up in your reviews.
Controls
Controls and governance
Run logs
Every workflow run records each block’s inputs, outputs and errors, so a reviewer can trace how a result was reached.
Deployed versions
Workflows run from a deployed version, so a change is reviewed before it reaches production runs.
PII detection
A Guardrails block detects personal data and blocks or masks it before text reaches the next step.
Roles and permission groups
Admin, write and read roles per workspace, plus permission groups that limit which models, blocks and integrations a team can use.
Audit trail
Proposals, approvals, declines and executed actions are written to the workspace audit log, which admins can export.
More on how Agent Serve handles access, data and audit on the security page.
Every run is in Logs with each block’s input and output, so when a customer says the bot told them the wrong date, support can see the courier response it was based on. Phone numbers can be masked in logs with PII redaction, and the workflow runs from a deployed version, so a change to the reply wording is reviewed before customers see it.
Questions teams ask
Do you have a native integration with our courier or shipping aggregator?
No. Delhivery, Shiprocket, iThink Logistics and similar services are not native integrations. The workflow calls their tracking API with the generic API block, using your API key stored as a workspace secret, or uses an MCP server if the provider offers one under Settings → Tool connections.
Can the customer message first and still get buttons?
Yes. When the customer writes to you, WhatsApp opens a 24-hour service window in which you can send free-form and interactive messages. Messages you start outside that window need an approved template.
What if the order cannot be found?
The workflow asks once for the order number with a short reply. If there is still no match, it hands the chat to a person rather than guessing.