How to Connect Shopify to Macha (OAuth) and Answer "Where Is My Order?" Automatically
"Where is my order?" is the single most common question in ecommerce support. Gorgias pegs it at roughly 18% of incoming requests on average for Shopify brands, and shipping-analytics firm LateShipment puts WISMO ("where is my order?") at 20–40% of all support tickets, spiking past 50% during peak season. Each one costs somewhere between $5 and $12 to answer ([Metricnet Service Desk benchmarking](https://www.hellorep.ai/blog/wismo-automation-shopify)). The frustrating part: almost none of that work needs a human. The answer is sitting in Shopify — order status, fulfillment, carrier, tracking number — and a customer just wants it read back to them.
This guide walks through wiring Shopify to Macha over OAuth and building an agent that does exactly that: when a "where's my order" ticket lands, it looks up the order, reads the fulfillment and tracking, and replies on the ticket — without an agent touching it. Macha sits on top of the helpdesk you already use (Zendesk, Freshdesk, Gorgias, or Front); Shopify is a connector that hands your agents live commerce context. It's not a new storefront or a helpdesk replacement — it's the automation layer between them.
The Shopify connector shipped on March 22, 2026 with OAuth auth and seven tools. Here's the full setup, end to end.
What the Shopify connector gives an agent
Connecting Shopify exposes seven tools your agents can call. Each tool call is a metered AI action (more on cost below), and the agent decides which to use based on the ticket:
| Tool | What it does |
|---|---|
get_order | Look up one order by ID or order number — line items, fulfillment, payment status |
search_orders | Find orders by email, fulfillment status, financial status, or date range |
lookup_customer | Pull a customer profile and contact details |
get_customer_orders | List a customer's full order history |
search_products | Search the catalog by title, SKU, vendor, or product type |
get_discounts | View active discounts and codes |
create_refund | Issue a refund — gated behind an explicit confirmation step |
For WISMO specifically, the workhorses are get_order and search_orders. A customer who quotes an order number gets a direct get_order; one who only gives an email gets a search_orders (or get_customer_orders) to find the right one first. Notice that create_refund is deliberately the only action behind a confirmation gate — reads are automatic, money movement is not. We'll come back to that in the watch-outs.
Step 1 — Connect Shopify over OAuth
In the Macha dashboard, open Connectors and add Shopify. The connection uses OAuth, so you're not pasting API keys around — you authorize Macha against your store directly and Shopify issues the credentials.
You'll be redirected to Shopify's standard authorization screen, where you review the scopes Macha is requesting (read orders, customers, products; refund permissions) and approve. After approval you land back in Macha with Shopify showing as connected.
A couple of things worth knowing about the OAuth path:
- It's the default and the safe choice. Tokens are issued and held by Macha's connector layer, not copied into your prompts. Macha's broader OAuth tooling (the same plumbing used for Zendesk and Google) includes a shared token-refresh lock so concurrent agent runs don't trip over each other re-authenticating.
- There's a demo store to practice on. The Shopify release ships with a pre-configured Shopify support agent and demo account, so you can build and test the whole flow before you point it at your real store.
Step 2 — Give your agent the Shopify tools
Macha agents only have the tools you grant them. Open the agent that handles your front-line support queue (or create a new one) and add the Shopify tools it needs. For a WISMO agent, grant get_order, search_orders, and get_customer_orders — and leave create_refund off unless this agent is also meant to handle cancellations.
This is the principle that keeps automation honest: scope tools to intent. A "where's my order" agent that can read orders but cannot issue refunds simply cannot do anything financially risky, no matter how a customer phrases their message.
Step 3 — Write the agent's instructions
Now tell the agent how to behave. The connector gives it hands; the instructions give it judgment. A solid WISMO instruction set covers four things:
- Find the order. "If the customer gives an order number, call
get_order. If they give only an email, callsearch_ordersfiltered to their email and pick the most recent unfulfilled or recently-shipped order." - Read the real status. "Report the actual fulfillment status and, if shipped, the carrier, tracking number, and estimated delivery from the order's fulfillment data. Never invent a tracking number or a date."
- Answer in plain language. "Reply warmly and concisely. Lead with the status, then the tracking link, then offer further help."
- Know when to stop. "If the order is lost, returned, refunded, flagged for fraud, or you can't confidently identify it, do not guess — hand off to a human and explain why."
That handoff clause matters more than it looks. WISMO automation earns its keep on the clean 80% — the orders that are simply in transit. The exceptions (lost packages, address errors, chargebacks) are exactly where a confidently-wrong AI reply does damage, so the instructions should route those to a person rather than improvise.
Step 4 — Trigger it on the right tickets
An agent needs a trigger. The standard WISMO pattern, drawn straight from Macha's auto-resolve order status inquiries use case, runs on the helpdesk:
- Trigger: Zendesk (or Freshdesk / Gorgias / Front) Ticket Created, conditioned on the message being an order-status question.
- Steps: the agent reads the ticket → calls Shopify
get_order→ checks fulfillment and tracking → posts the reply as a comment → sets the ticket to Solved.
Here's the kind of exchange that produces, end to end:
Customer: "Hi, I placed an order 3 days ago and haven't received any updates. Order #1847." Macha (looks up #1847 in Shopify, reads fulfillment): "Hi! Your order #1847 shipped on March 2nd via FedEx. Your tracking number is 7829401 and it's estimated to arrive tomorrow. Let me know if you need anything else!" (ticket → Solved)
The same connector works off other triggers, too. The handle "where is my order" from Slack pattern lets an internal team @-mention an agent and get the order read back in-thread — handy for ops and CX teams who'd otherwise tab over to Shopify a hundred times a day.
Step 5 — Test before you go live
Don't point this at a live queue cold. Use the test run to fire real prompts at the agent and watch which tools it calls and what it answers. Try the easy case ("order #1847"), the email-only case ("I ordered last week, my email is…"), and the deliberately hard case (a lost package, a number that doesn't exist) to confirm the handoff fires instead of a hallucinated answer.
When the test transcript reads the way you'd want a great support rep to read, enable the trigger.
What it costs
Pricing in Macha is credit-based, and credits are spent per AI action — not per ticket "deflected" or "resolved." A model call or a tool call is an action; the rate ranges from 0.5 to 9 credits depending on the model, with the default GPT-5.4 Mini at 1 credit. A typical WISMO resolution is a couple of actions (read the ticket, one get_order, compose the reply), so it's cheap relative to the $5–$12 a human-handled WISMO ticket costs.
Because it's per-action, cost scales with how much work each ticket genuinely needs — a one-shot lookup is far cheaper than an agent that searches, disambiguates, and reasons across several calls. Connectors like Shopify are available across paid plans (the Starter tier includes one integration; Professional includes ten). See the pricing page for current plans and credit allowances; start with a 7-day free trial, no credit card required.
Watch-outs — when not to fully automate
WISMO is one of the safest things to automate, but "safe" isn't "thoughtless." Honest guardrails:
- Keep
create_refundbehind confirmation — or off entirely on this agent. It ships gated for a reason. A pure WISMO agent should not have refund powers; build cancellations/refunds as a separate, human-in-the-loop flow. - Reads can still be wrong if the order is ambiguous. Email-only lookups can match multiple orders. Instruct the agent to confirm with the customer when
search_ordersreturns more than one plausible match rather than guessing. - Carrier "estimated delivery" is an estimate. The agent should report Shopify's tracking data, not promise a date. During carrier delays this is exactly where overconfident replies erode trust — let the handoff clause catch known-bad shipments.
- Don't automate the angry exceptions. Lost packages, "this is the third time," and chargebacks are emotional and high-stakes. Route them to a person. The win is volume on the boring 80%, not heroics on the hard 20%.
- Garbage in, garbage out. If your Shopify fulfillment data is stale (manual fulfillments, missing tracking), the agent will faithfully report stale data. Clean fulfillment hygiene is a prerequisite, not an afterthought.
The teams that get the most out of this treat the agent as a fast, tireless first responder for routine status checks — and keep humans firmly in the loop for anything involving money, exceptions, or an upset customer.
FAQ
Does connecting Shopify replace my helpdesk? No. Macha is an AI agent layer that sits on top of Zendesk, Freshdesk, Gorgias, or Front. Shopify is a connector that gives those agents live order data; your helpdesk stays exactly where it is. See Macha on Zendesk for how the layer fits a Zendesk stack.
Is the Shopify connection API keys or OAuth? OAuth. You authorize Macha against your store through Shopify's standard consent screen and Shopify issues the credentials — no API keys pasted into prompts or configs.
Can the agent issue refunds, not just look up orders? Yes — create_refund is one of the seven tools, but it's gated behind an explicit confirmation step, and you choose whether a given agent gets it at all. A WISMO agent should generally be read-only.
What if the customer only gives an email, not an order number? The agent uses search_orders or get_customer_orders to find their orders by email, then reads the relevant one. If several match, instruct it to confirm with the customer instead of guessing.
How much does each "where's my order" answer cost? It's credit-based and metered per AI action (0.5–9 credits by model; default GPT-5.4 Mini = 1). A simple WISMO resolution is just a few actions — far below the $5–$12 a human-handled WISMO ticket typically costs. See pricing.
Can I test it before it touches real tickets? Yes. Use the test run to fire prompts at the agent, and there's a pre-configured Shopify demo agent and store to practice on before connecting your live shop.
Get started
If WISMO is eating a fifth (or more) of your queue, this is the highest-leverage agent you can build. Connect Shopify over OAuth, grant get_order and search_orders, write a tight instruction set with a clear handoff, and test it. Start a 7-day free trial, no credit card required, browse the Shopify integration, or read the docs for the full connector reference.
Written by Abbas (Customer Support & AI, Macha) · Reviewed by Ankeet Guha (Co-founder & CTO) · Published 2026-06-24 · Last updated 2026-06-24.
Automate your support workflows
Macha's AI agents run entire workflows end to end across your stack.
Zendesk
Freshdesk
Gorgias
Front
Shopify
Stripe
Slack
Notion
Google Workspace
Confluence

