Can a Shopper Start a Return, or Only Get a Recommendation? (2026)
Quick summary: Tell the shopper whether the order is in the return window and offer an exchange first. Do not buy the label and do not call createRefund. Where-is-my-order is about 18% of tickets; this is the next slice, not a second cashier.
Key Takeaways
- Where-is-my-order is about 18% of tickets; this is the next slice, not a second cashier
- The 15 automations scorecard lists returns as its own row, then sends you to where-is-my-order and to refund investigation
- Gorgias, via Redo, puts where-is-my-order at about 18% of incoming requests
- 18% is the public ticket mix, so you can see why this is the next support job after tracking — not a new product line
- For your technical lead On June 17, 2026, AgentCore Harness reached general availability (What's New)

Table of Contents
A shopper who asks “can I return this” is not asking for a refund button. They are asking whether this order, under this policy version, is still in the window — and whether an exchange exists before money moves. The 15 automations scorecard lists returns as its own row, then sends you to where-is-my-order and to refund investigation. Those are the neighbors. They are not this step.
Gorgias, via Redo, puts where-is-my-order at about 18% of incoming requests. Returns sit next to that slice. We are not publishing a return-rate or a refund-rate from a store. 18% is the public ticket mix, so you can see why this is the next support job after tracking — not a new product line.
The job. Answer eligibility from the order, the shipment, and the versioned policy. Prefer an exchange when a sibling is actually in stock. Hand off everything else.
This week. Reads only: getOrder, getShipment, getReturnPolicy, getProduct, listReturnsForOrder. No createReturn, no purchaseLabel, no createRefund.
A person still signs. The refund, the label, the store credit, and any goodwill outside the written window.
Skip it when the portal already enforces the window with no free text, or when the only acceptable outcome is an automatic refund.
The long neighbors are WISMO and refund investigation. Abuse scoring stays internal in return fraud. The commercial page is Customer Support Agent.
Copy the recommendation table — Classes, tools, and forbidden writes:
returns-eligibility-recommendation.md. Do not paste the refund matrix over it. Ship gates:monday-checklist.md.
Our take: exchange first, as a recommendation, beats a chat refund. You will close fewer “instant money” requests in the first week. You will also not train the queue to empty the box and ask the bot to pay for it.
Four answers, and no fifth
| Class | Shopper hears | Agent does not |
|---|---|---|
| Exchange first | The window, the policy version, and a sibling that stock tools say is available | Buy a label or refund |
| Refund path, person next | That a person confirms money back | Call createRefund |
| Not eligible | The window and the reason, cited | Invent a goodwill exception |
| Hand off | That a person has the order facts | Say fraud, or guess a missing line |
Delivered-but-missing, an open RMA already on the line, chargeback language, and a policy you cannot version are handoffs. WISMO already refuses to auto-refund “it says delivered.” This post does not reopen that door.
Where the other posts start
Refund investigation begins when the request exists. Its matrix is approve, reject, partial, replacement, or human review, and createRefund stays off the shopper token. Return-fraud scoring never faces the customer. If you only build those two, the shopper still has no cited answer to “am I in the window, and is there an exchange?”
flowchart LR
ask[Shopper asks] --> reads[Order shipment policy]
reads --> exchange[Exchange recommendation]
reads --> handoff[Person queue]
exchange --> portal[Existing returns portal]
handoff --> refundPost[Refund investigation later]What to use instead
- A portal rule that already knows the window. Keep the rule. Do not wrap it in a model that can talk its way past it.
- An associate deciding a refund that already exists. Refund investigation.
- Tracking only. WISMO. That post’s own gap list is this one: returns eligibility and RMA writes. Eligibility is here. The write stays refused.
If you only do one thing
Put createRefund and purchaseLabel on the deny list for the shopper token before anyone sees a returns chat. If those tools are on, you did not build eligibility. You built a cashier.
For your technical lead
On June 17, 2026, AgentCore Harness reached general availability (What’s New). Agents Classic is in maintenance for new customers after July 30, 2026. A single-domain read loop fits Harness. Do not start this on Classic action groups.
Identity is the boundary. The shopper token gets the five reads. An associate token is what the refund post uses later, and even then Cedar default-denies createRefund until a named cap and a human review path exist. The store-agents sample used a $75 demo cap in Cedar. That number is a fixture in that sample, not your returns policy. Replace it or do not use it.
First-party signals we reuse (not a returns KPI) — Gateway server-side tools cut median tool round-trip ~180 ms to ~95 ms on a B2B CRM assistant (12 tools, ~8k turns/day). Support-style AgentCore at 50,000 sessions/month is about $791/month platform plus model. A browser left on for lookup turns has run about 3× that platform spend. None of those are a refund-rate.
What broke — The support harness attached
createRefundwith no Cedar because a prompt said refunds under a small amount were fine. The model refunded a delivered fixture. Detection: the gateway trace showedcreateRefundon a delivered order, and finance saw a refund with no RMA. Recovery: strip the write, default-deny, hand off delivered-not-received. The same tool on a returns chat fails the same way, one step earlier. Lesson: CSAT wording is not a refund authorization. Full write-up: support agent.
What to do this week
- Export the return-policy version you will cite. If it is a PDF nobody can query, fix that before the model.
- Confirm
getOrderreturns the line the shopper means. A return that cannot see the original line is how refunds double-pay — the data-layer post already says so. - Copy
returns-eligibility-recommendation.md. Strike every write. - Add three goldens: in-window exchange, outside-window cite, delivered-not-received handoff. The word fraud must not appear in the shopper text.
- Leave label purchase and
createRefundon the refund investigation side, associate only. - Price sessions on the AgentCore pricing calculator.
What this post doesn’t cover
- The associate refund matrix and
createRefundgates — refund investigation. - Internal abuse scores — return fraud.
- Carrier tracking state — WISMO.
- Marketplace A-to-Z claims, label buying, and rate shopping.
- A measured return rate, refund rate, or exchange-uptake percentage from a FactualMinds store. We do not have one.
FAQ
When should we NOT let an agent start a return?
Skip it when a returns portal already applies the window deterministically and nobody is reading free text. Also skip it when you cannot name the policy version, when there is no human queue, or when leadership wants the bot to refund from the chat.
What could go wrong if the shopper token can call createRefund?
The model refunds a delivered order because the shopper said the box was empty. Week one has no refund tool and no label tool on that token.
Is this the same post as refund investigation?
No. That post starts when a request already exists. This one is whether the shopper gets a cited recommendation first. Money stays on that matrix.
Should the agent buy the return label?
No. Recommend the path. Postage stays in the system that already buys labels.
AWS Cloud Architect & AI Expert
AWS-certified cloud architect and AI expert with deep expertise in cloud migrations, cost optimization, and generative AI on AWS.




