Automation · Customer service and scheduling
Answer a Shopify order-status question over WhatsApp
Look up a Shopify order over WhatsApp, verify it belongs to the contact, and return real status and tracking without exposing another customer's purchase.
How do I answer where a Shopify order is without exposing another customer's order?
A Met opens the record of the contact who is writing and fixes the email or phone that was already stored. It searches by the exact order number or, when that is missing, by the pre-existing email; it pages the results, compares the literal match, and opens one GID. Before answering, it matches the order email or phone against that same record again. Only then does it report Shopify's financial and fulfillment display states, keeping each fulfillment and its real carrier, tracking number, and URL separate. It does not turn SUCCESS into delivered or REFUNDED into a banking promise. It can leave a minimal internal note and schedule a future invitation to check again when the customer asks.
What starts it
When the customer writes
It starts when a contact in a WhatsApp conversation asks about their order. No webhook or background watcher runs this flow. Every answer begins with a new read initiated by that message.
Nothing to set up. The Met assigned to that channel picks up the conversation and runs the procedure inside it.
Who runs it
After-sales support Met
Customer service team
The work happens inside a support conversation and ends in a verifiable answer. The Met does not operate the sale or the carrier. It protects buyer identity, reads Shopify, and escalates what the order itself cannot prove.
Channels: WhatsApp
What you need connected
- Shopify Run stores and orders
- Meteor CRM Sell and serve
6 steps · 6 tools
The procedure, step by step
Each step shows the tool that runs. They belong to the real connector: if one of them stopped existing, this page would not build.
- 1
Fix the conversation contact
The Met calls crm_get_contact with the contact_id supplied by the channel context. The handler ignores a different id written by the model and returns the record as private data. It fixes the email and phone that existed before this lookup. A similar name or an identifier supplied during the same attempt does not authorize disclosure of an order.
- 2
Search only bounded candidates
When the customer supplies the number, shopify_list_orders uses an escaped name filter, pages the results, and compares the literal returned name. Without a number, it can only use the record's pre-existing email in an escaped email filter. It never scans recent store orders by name or product. Zero exact matches means not verified; more than one means disclose nothing and escalate.
- 3
Open one order and prove ownership
With one candidate it calls shopify_get_order with the exact GID. Before reading any status aloud, the normalized email or complete normalized phone from the contact must literally match order, customer, shippingAddress, or billingAddress. It never compares only the last digits and never uses the name. With no pre-existing identifier match, it stops.
- 4
Return literal states and packages
The Met returns the name and keeps displayFinancialStatus separate from displayFulfillmentStatus. For each fulfillment it reports status and displayStatus, and cites company, number, and url only when that trackingInfo entry contains them. SUCCESS means Shopify completed the fulfillment, not physical delivery. Only deliveredAt or an explicit delivery displayStatus supports “delivered.” Return and refund states are reported without promising an amount, date, or bank credit.
- 5
Leave a minimal internal note
When the business privacy policy calls for traceability, crm_add_note records the order number and the states that were answered on the current contact. The note is optional and does not copy email, phone, address, Shopify notes, or the full order. It changes neither the order nor the conversation.
- 6
Schedule an invitation only on request
If the customer asks for a later message, the Met agrees on a future instant and explains that the notice neither watches Shopify nor confirms a change. crm_list_reminders first checks this contact's pending reminders: one exact time-and-message match is reused and several stop the flow. Only zero matches allow one crm_schedule_reminder call. The approved template invites the person to write back so a fresh order read can run.
Before you start
What you need ready
The Met solves none of these for you. If one is missing, the automation stops there.
-
Connected Shopify store with order read access
Install a custom app with read_orders and connect its store URL and token in Meteor. Orders older than sixty days can require Shopify's additional all-orders access.
-
WhatsApp channel with an identified contact
The conversation must supply a workspace contact_id, and the record needs a prior email or phone that also appears on the order. Without that match the Met discloses nothing.
-
Approved template for optional follow-up
Configure a default reminder template in the workspace. It is needed only when the customer asks for a message outside the WhatsApp window; the order lookup itself does not depend on it.
The limits
What this automation does NOT solve
Better said here than discovered halfway through the rollout.
-
It does not search by buyer name, approximate product, or an open list of recent orders. Those criteria can mix people and do not authorize disclosure of a purchase.
-
It does not promise a carrier, tracking number, or URL when trackingInfo is empty. It neither locates the parcel nor queries the carrier network outside Shopify.
-
It does not equate fulfillment SUCCESS with physical delivery. Without deliveredAt or an explicit delivery displayStatus, it only reports Shopify's stored state and invents no arrival date.
-
It does not cancel or edit the order, create a fulfillment, move stock, or mark the order fulfilled. Every Shopify tool in this recipe is read-only.
-
It neither starts nor confirms returns or refunds. REFUNDED, PARTIALLY_REFUNDED, and returnStatus are informational and do not prove when or how much a bank or gateway will credit.
-
The optional reminder does not poll Shopify or detect state changes. It sends an approved template at the agreed time, inviting the contact to request a fresh read.
FAQ
Questions about this automation
No. Names repeat and do not prove ownership. A number or pre-existing email must bound the search, then an email or phone from the record must match the order before any status is disclosed.
No. It says that Shopify completed the fulfillment. The recipe says delivered only when the same record includes deliveredAt or an explicit delivery displayStatus.
It says Shopify does not yet return tracking for that fulfillment. It does not guess a carrier, build a URL from the number, or promise when one will appear.
No. It is an approved template sent at a fixed time to remind you that you can check again. The status is read only after you write back and identity is verified again.
Keep going
Other automations built on the same tools
Orders and fulfillment
Create a Shopify order over WhatsApp for cash on delivery
How do I take a Shopify order over WhatsApp and leave it marked for cash on delivery?
- Starts:
- when the customer writes
- Steps:
- 5, with 7 real tools
- Needs:
- Shopify
Sales and quoting
Create a Shopify quote and share its payment link
How do I create a Shopify quote over WhatsApp and share its payment link?
- Starts:
- when the customer writes
- Steps:
- 5, with 5 real tools
- Needs:
- Shopify
Content and publishing
Publish a Shopify product listing in Webflow with human approval
How do I publish a Shopify product in Webflow without duplicating it or copying data I cannot keep current?
Social
- Starts:
- when someone asks for it
- Steps:
- 6, with 11 real tools
- Needs:
- Shopify · Webflow
Customer service and scheduling
Book, remind and reschedule appointments over WhatsApp
How do I let customers book over WhatsApp without double-booking anyone?
Customer service
- Starts:
- when the customer writes
- Steps:
- 5, with 10 real tools
- Needs:
- Meteor Scheduling · Meteor CRM
Want this automation running on your own data?
We will show it to you with your accounts connected, not with a canned demo.