E-commerce
August 4, 2026
"I want to exchange M for L." "Which color is in stock instead?" "If I exchange again, I'm afraid it will still be too small." Three messages where a generic return bot sends an RMA link without recommending the variant that will actually fit.
Coresight estimates that 53% to 67% of fashion returns stem from poor fit, and that an incorrectly sized exchange often generates a second return (Eightx, apparel returns cost 2026). Zalando notes that contextualized size recommendations reduce repeated returns when based on product fit notes and customer feedback (Zalando, sizing 2025).
This guide #367 formalizes the e-commerce product exchange AI chatbot: recommending the right size or variant. A new AI use case distinct from the returns bot (#10) (general flow) and size recommendations (#199) (pre-purchase): xch_bot_* intents, XCH-BOT-GATE flow, and post-purchase variant engine. It automates the SIZE-XCH policy (#366).
Summary
Why automate product exchange with an AI bot?
A product exchange bot does not just open an RMA: it recommends the optimal variant (size, color, alternative SKU) before reshipping, to prevent a second wrong size return.
Three generic bot failures
Blind RMA: portal link without fit advice
Automatic +1 size: L when fit note requires +2
Out of stock variant: promises unavailable XL
Loop Returns observes that exchange portals with fit hints reduce repeat wrong size by 15 to 25 points on DTC fashion stores (Loop Returns, 2026 returns).
Angle #367
#10 guides exchange/refund. #199 recommends pre-purchase size. #366 documents FIT-XCH human ops. #367 implements the post-purchase xch_bot_* bot layer + deterministic variant engine.
ROI of xch bot
For a fashion brand with 185 exchanges/month, a targeted exchange bot achieves 60% to 70% auto-resolution vs 30% for a generic return bot.
DTC Example
Dress brand, 24% repeat wrong size post-exchange. After XCH-BOT-GATE bot: xch_bot_repeat_rate 8%, xch_bot_resolution 76%, response time 32 s, xch CSAT 4.6/5.
Journey Stage
Post-delivery after ret_elig OK (#365). Trigger: exchange, wrong size, different color, wrong size, variant.
Ops prerequisites
SIZE-XCH policy (#366) published. Metafields fit_note, exchange_count. Bot handoff if repeat_wrong or exchange_count >= 2.
Deterministic vs LLM
Recommended variant = fit_note rule + measurements + issue type. LLM manages FIT-XCH dialogue and reformulates, it does not choose the size on its own.
Variant Scope
Size, color, sometimes alternative SKU (length, fit). No product changes for a different family: handoff #10.
Cost of incorrect recommendation
Incorrect reship = 2x logistics + lost customer. XCH-BOT-GUARD requires customer confirmation before variant_target RMA link.
Relevant Verticals
Fashion primarily (jeans, dresses, shoes). Possible extensions: cosmetics shade, home decor color variant. Out of scope: product change to a different family.
Returns Silo Integration
The exchange bot fits in after ret_elig (#365) and feeds into the Loop portal. It does not replace SIZE-XCH (#366) but automates FIT-XCH and VARIANT-REC at scale.
How does it differ from return bot #10 and sizing bot #199?
Eight related contexts, eight distinct bot roles regarding exchange and size.
Exchange size support (#366)
SIZE-XCH (#366) : human FIT-XCH policy ops. #367 = automation bot variant recommendation + RMA link.
Return bot (#10)
Return bot (#10) : full refund/exchange journey. #367 = smart exchange sub-module handoff #10 if refund is wanted.
Eligibility bot (#365)
Eligibility (#365) : upstream ret_elig gate. #367 requires eligible=true before XCH-BOT-GATE.
Size recommendations (#199)
Recommendations (#199) : pre-purchase sizing engine. #367 reuses same mapping logic with order context + issue received.
Bot size guide (#5)
Bot size guide : PDP FAQ. #367 operates post-purchase exchange.
Prequalification (#138)
Prequalification (#138) : reason collection. #367 assumes wrong size or variant change reason.
International sizes (#265)
Conversion (#265) : EU/US. #367 intent xch_bot_intl_convert.
Promise #367
Intents xch_bot_*, flow XCH-BOT-GATE, engine VARIANT-REC, safeguards XCH-BOT-GUARD, KPI xch_bot.
Which xch_bot intents should the bot classify?
Map xch_bot intents before flows. Scope: recommend variant and send RMA, no refund without triage.
Twelve exchange bot intents
xch_bot_size_up: too small, larger size
xch_bot_size_down: too big, smaller size
xch_bot_between_sizes: hesitation, interactive fit advice
xch_bot_color_change: same size, other color
xch_bot_variant_alt: length, cut, alternative SKU
xch_bot_stock_out: target unavailable, alternatives
xch_bot_repeat_wrong: 2nd exchange, handoff #366 supervisor
xch_bot_wrong_shipped: warehouse error, not customer fit
xch_bot_advanced: reship before return, eligibility check
xch_bot_intl_convert: EU/US sizing confusion
xch_bot_refund_pivot: gives up exchange, wants refund
xch_bot_confirm_variant: customer validation variant_target
Required session fields
order_id, line_item, variant_ordered, size_issue, measurements_json, fit_note, variant_recommended, stock_available, exchange_count, fit_confirmed (bool).
Parent router
"exchange", "wrong size", "other color", "L instead of M" → xch_bot_*. "Refund" without exchange → #10 refund flow.
90-day ticket mining
Export tags size_xch #366. Prioritize top verbatim flows before VARIANT-REC tuning.
MVP prioritization
Week 1: xch_bot_size_up/down + VARIANT-REC. Week 2: xch_bot_color + stock_out. Week 3: repeat_wrong handoff + advanced.
How to build the XCH-BOT-GATE and VARIANT-REC flow?
The XCH-BOT-GATE flow routes each exchange request via elig, fit dialog, and variant engine before RMA.
Eight sequential gates
Gate auth: email + order_id + line_item
Gate ret_elig: eligible (#365) or handoff late (#364)
Gate exchange_count: >= 2 → xch_bot_repeat_wrong handoff
Gate issue: too_small / too_big / color / wrong_shipped
Gate FIT-DIALOG: 3 to 5 sizing + fit feel questions
Gate VARIANT-REC: engine recommends variant_target
Gate stock: inventory > 0 or xch_bot_stock_out branch
Gate output: confirm → RMA deep link, advanced, waitlist, handoff
VARIANT-REC engine
Inputs: variant_ordered, size_issue, fit_note (runs_small +2 steps), measurements, aggregated fit reviews. Output: recommended variant_id + confidence + bot text rationale.
FIT-DIALOG bot
Takes over FIT-XCH #366 in conversation: "Where does the garment feel tight?", "Your usual size with us?", "Chest/waist/hip measurements?" Max 5 turns.
Branch xch_bot_confirm_variant
"We recommend XL because these jeans run 2 sizes small. Do you confirm?" Customer yes → RMA link variant_target. No → restart FIT-DIALOG or handoff.
Branch xch_bot_wrong_shipped
Skip FIT-DIALOG. Reship correct variant_ordered + prepaid label. Not customer fit fault.
Advanced exchange branch
If policy #366 advanced OK (LTV, 1st xch): immediate reship + return label. Bot cites 14-day return window.
Which data sources does the exchange bot read?
The exchange bot reads live Shopify data + fit catalog for reliable VARIANT-REC.
Mandatory Shopify Sources
Order line items: variant_ordered, product_id
Variant inventory: stock by size/color
Metafield fit_note: runs_small, runs_large, true_to_size
Metafield exchange_count: order history
Product options: size, color, length axes
Recommendation Sources
Size mapping table: same logic as #199 pre-purchase
Aggregated fit reviews: "runs small" weight
Loop exchange API: eligible variants + RMA URL
SIZE-XCH RAG #366: advanced policy, max 2 exchanges
Runs_small Rule
If fit_note=runs_small and issue=too_small: +2 sizes, not +1. Bot quotes fit note in rationale.
Color change xch_bot_color
Same size axis, swap color option. Stock check color variant. No FIT-DIALOG sizing if size is OK.
Portal Parity
variant_recommended must exist in portal exchange picker. CI test 20 fashion SKUs.
What safeguards should XCH-BOT-GUARD impose?
The XCH-BOT-GUARD guardrails prevent incorrect reship and automated repeat wrong size.
Seven strict rules
No RMA without fit_confirmed: customer validates variant_target
Deterministic VARIANT-REC: LLM does not override +2 runs_small
Live stock mandatory: do not promise OOS variant
exchange_count >= 2: supervisor handoff, no bot alone
ret_elig false: handoff #364, no bot exchange
final_sale: exchange refusal, citation of policy
Document rationale: log fit_note + measurements for audit
Prompt system xch bot
"You recommend exchange variant according to VARIANT-REC and FIT-DIALOG. You never promise a refund. You always confirm with the customer before the RMA link. If repeat_wrong, handoff to agent." See anti-hallucination.
Customer refuses recommendation
Bot documents: "You chose L despite XL recommendation." fit_confirmed=client_override. Limit of 1 override then handoff.
Audit repeat rate
Monthly sample: xch_bot_repeat_rate post-bot exchange. If > 15%: tune VARIANT-REC rules.
Logging rationale
Each session logs variant_recommended, fit_note_used, measurements_summary for quality audit and training of handoff agents.
On which customer journeys should the exchange bot be deployed?
The exchange bot is deployed on the wrong size post-delivery path.
Size exchange chat flow
ret_elig (#365) → XCH-BOT-GATE → FIT-DIALOG → VARIANT-REC → confirm → RMA link.
Loop portal redirect flow
"wrong size" Portal: "Size help" button → pre-filled order xch_bot chat.
Post-delivery Day+3 email flow
"Size doesn't fit?" CTA smart exchange chat. Reduces tickets without fit-check.
Customer account flow
"Exchange with size advice" button vs "Simple return" self-service.
xch_bot_color_change Flow
Customer wants blue instead of red: skip FIT-DIALOG, stock color picker, direct RMA.
Handoff #366 repeat
xch_bot_repeat_wrong: payload fit history, measurements, prior variant_recommended. Agent supervisor decides refund or expert call.
Handoff #10 refund pivot
xch_bot_refund_pivot after stock_out or customer rejects all alternatives. Bot collects refund reason before redirecting to complete path #10.
How to set up the trade-in bot on Shopify?
The Shopify exchange bot setup connects VARIANT-REC, Loop, and SIZE-XCH RAG.
Technical checklist
Deploy fit_note metafields top SKU fashion
Build VARIANT-REC rule engine (fit_note + issue + size axis)
Integrate ret_elig gate #365 upstream
Connect Loop exchange API + deep links
Index SIZE-XCH #366 + policy /returns RAG
Configure router xch_bot_* intents
Implement XCH-BOT-GATE + FIT-DIALOG
Draft prompt XCH-BOT-GUARD
Test 30 fashion regression scenarios
Weekly xch_bot_resolution dashboard
Reuse engine #199
Share pre-purchase (#199) and post-purchase (#367) size mapping table. A single source of fit truth.
Phased rollout
Phase 1: jeans category xch_bot_size_up/down. Phase 2: dresses + between_sizes. Phase 3: color + advanced.
Helpdesk handoff payload
Sidebar: variant_recommended, fit_note, fit_confirmed, exchange_count, rationale summary.
Which xch_bot KPIs should be measured?
Without KPI xch_bot, it is impossible to prove ROI vs human FIT-XCH #366 alone.
Seven key metrics
xch_bot_resolution: RMA sent without agent / xch bot sessions
xch_bot_repeat_rate: 2nd wrong size / bot exchanges
xch_bot_fit_confirm_rate: customer confirms recommendation / total
xch_bot_override_rate: customer rejects recommendation / total
xch_bot_stock_out_rate: waitlist or refund pivot / requests
xch_bot_handoff_rate: repeat_wrong + supervisor / sessions
CSAT intent xch_bot: bot exchange satisfaction
DTC fashion benchmark
Target xch_bot_resolution > 75%, xch_bot_repeat_rate < 10%, xch_bot_fit_confirm > 85%, CSAT > 4.5/5.
Comparison #366 alone
Measure size_xch_repeat_rate before/after bot. Target -15 points repeat wrong size.
A/B VARIANT-REC
Test +1 auto vs fit_note +2 rules on SKU runs_small. Metric: repeat_rate 30 d.
Weekly ops dashboard
30 min review: top 5 SKU xch_bot_repeat_rate, override_rate by fit_note type, handoff repeat_wrong volume. Adjust VARIANT-REC if runs_small SKU repeat > 12%.
What edge cases and handoffs should be planned for?
Seven edge cases xch bot require handoff or special branch.
Set matching top+bottom
Partial exchange line item. Bot processes one line at a time, no forced bundle set.
Half-size shoes
VARIANT-REC suggests inset sole or sizing up if 42.5 is unavailable. Handoff if customer insists on a half-size.
Unisex sizing
FIT-DIALOG measurements, no gender label. Separate unisex mapping table.
Bracketing S+M ordered
Return of unused size = standard return #365, not xch_bot exchange_count.
Marketplace order
xch_bot redirects to external channel. No XCH-BOT DTC.
Customized product
final_sale or no_exchange tag: bot refusal, no VARIANT-REC.
International xch_bot_intl
Customer ordered US 8 and thinks EU 38. Conversion table #265 before VARIANT-REC.
Gift exchange
Recipient auth. FIT-DIALOG without buyer data. Gift policy #366.
Preorder delivered late
ret_elig deadline starts from actual delivery. Bot cites tracking date delivered_at before XCH-BOT-GATE, not order date.
How does Qstomy recommend the exchange variant?
Qstomy runs XCH-BOT-GATE, VARIANT-REC and FIT-DIALOG with live Shopify order context.
Bot exchange capabilities
xch_variant_rec: engine fit_note + measurements
xch_fit_dialog: conversational FIT-XCH 5 questions
xch_stock_live: inventory variant before promise
xch_rma_deep_link: Loop pre-filled variant_target
xch_repeat_handoff: supervisor payload #366
Quantified DTC Scenario
Jeans brand, 165 size exchanges/month, repeat rate 22%.
After Qstomy xch_bot: 68% resolved without agent, xch_bot_resolution 77%, xch_bot_repeat_rate 7%, CSAT 4.7/5.
Explore AI support, Shopify, request a demo.
What is the checklist for launching XCH-BOT?
Exchange bot checklist (10 steps)
Validate SIZE-XCH #366 and ret_elig #365
Audit 90-day size_xch tickets
Deploy fit_note metafields fashion catalog
Build VARIANT-REC rule engine
Implement XCH-BOT-GATE section 4
Configure router xch_bot_* intents
Draft prompt XCH-BOT-GUARD section 6
Integrate Loop RMA deep links
Test 30 regression scenarios
Weekly xch_bot_repeat_rate dashboard
In brief
#367 = smart exchange bot, not general returns (#10) nor pre-purchase sizing (#199)
XCH-BOT-GATE: elig → fit dialog → VARIANT-REC → confirm → RMA
12 xch_bot_* intents: size, color, repeat, stock
Deterministic: LLM dialogues, VARIANT-REC decides size
KPI xch_bot_repeat_rate: target < 10%
FAQ
Exchange bot = returns bot?
No. #367 recommends optimal variant. #10 handles refund and the full journey.
Difference with recommendations #199?
#199 = pre-purchase PDP. #367 = post-purchase with received product context + fit issue.
Can the bot force XL if the customer wants L?
No. Recommendation + confirmation. Override documented, 1 max then handoff.
2nd exchange for the same order?
Supervisor handoff #366, no bot alone.
Color exchange only, without fit?
Yes. xch_bot_color_change skips FIT-DIALOG, stock check only.
Going further
Test mystery shop: order jeans runs_small M too tight, check bot recommends XL (+2) and asks for confirmation before RMA.
Share this guide #367 with product and support: a well-calibrated exchange bot turns a wrong size into the right variant on the first try, without a costly second return.

Enzo
August 4, 2026





