E-commerce
July 1, 2026
"Will my iPhone 12 be accepted for trade-in?" "How much for my headphones in good condition?" "I have photos, what should I do next?" Three messages where a trade-in program without pre-qualification bot saturates the customer support and discourages customers even before the product is sent.
A product trade-in e-commerce AI chatbot does not replace TRADE-FLOW agents (#413). It reads TRADE-MAP, guides model and condition eligibility, collects structured photos, estimates credit range and routes to submission form.
This guide #414 covers intents bot_trade_in_*, flow TRADE-BOT and KPI trade_in_bot. Distinct from trade-in customer support (#413) and support return bot: here, AI use case upstream trade-in qualification and circular commerce.
Summary
Why does qualifying trade-ins upfront reduce support tickets?
An avoidable trade-in ticket arises when the customer sends a non-eligible product or overestimates its condition due to a lack of clear information before submission.
Five botifiable trade-in ticket triggers
Model eligibility: model rejected, customer discovers after shipping
Incorrectly declared condition: excellent promised, fair found upon inspection
Unclear process: no photos, no shipping label, no serial number
Return process confusion: customer opens RMA instead of a trade-in
Expired quote: late shipment without offer renewal
Circularity is progressing in DTC: tech upgrade trade-ins and textile take-backs are multiplying voluntary programs (EU Commission, textiles 2026). Tidio observes that a trade-in pre-qualification bot reduces eligibility tickets by 35-50% on tested brands (Tidio, chat stats 2026).
Angle #414 vs related content
Trade-in customer service #413: post-submission TRADE-FLOW agents. #414 = upstream bot for eligibility and photos.
Return process bot: return eligibility. #414 = used trade-in product, not new item dispute.
Deposit #412: emballage deposit. #414 = full product trade-in.
Store credit: post-issuance credit usage. #414 = qualification before credit.
Return prequal bot: prequal retour. #414 = distinct trade_in intent vs return_rma.
DTC Example
Tech accessories, 220 trade-ins/month, 31% eligibility tickets before bot. After TRADE-BOT: trade_in_bot_resolution 78%, trade_in_rejection_dispute -38%, trade_in_submission_complete +22%.
Upstream vs downstream
#414 qualifies and submits. #413 resolves inspection disputes and missing credit. Complementary pipeline.
Avoided eligibility ticket cost
1 avoided trade_in_eligibility ticket = €6-12 in ops. Bot ROI is positive starting at 40 sessions/month for an active program.
How does TRADE-BOT differ from the after-sales service bot?
Trade-in trade-in and warranty returns: two chat intents, two distinct guardrails.
Bot → role matrix
#414 TRADE-BOT: model eligibility, condition, photos, quote range
return eligibility bot: right of withdrawal, new return window
#413 TRADE-FLOW: reject dispute, missing credit post-inspection
return prequal bot: warranty new product defect photos
Upstream router
Message contains "reprise", "trade-in", "ancien modèle", "rachat", "bon d'achat reprise" → TRADE-BOT. "Retourner ma commande", "produit cassé neuf", recent order → return bot. Ambiguity: TB-2 clarify intent 1 question.
TRADE-BOT Data
TRADE-MAP JSON #413: eligible_models, condition_tiers, credit_range, binding_window. Trade-in API app if connected. No Shopify order required pre-submit.
UX Coexistence
Widget /pages/trade-in + PDP trade-in badge. Max 8 qualification turns then form CTA. Do not mix RMA return flow in same session.
Promise #414
TRADE-BOT Policy, 12 bot_trade_in_* intents, flow TB-1 to TB-8, guardrails no invent credit, KPI trade_in_bot_*.
Circular commerce LTV
Bot upgrade flow: qualified trade-in customer + new cart = LTV conversion. Track trade_in_submission_complete with same session order.
Which bot_trade_in_* intents should be configured?
Twelve trade-in recovery bot intents cover upstream qualification.
Twelve bot_trade_in intents
bot_trade_in_eligibility: model accepted? series, year
bot_trade_in_condition_tiers: excellent / good / fair criteria
bot_trade_in_valuation_range: credit range according to declared tier
bot_trade_in_photo_guide: which photos to send, angles
bot_trade_in_serial_check: where to find serial, expected format
bot_trade_in_submit_form: form link, required fields
bot_trade_in_vs_return: trade-in vs after-sales return redirect
bot_trade_in_upgrade_flow: trade-in + simultaneous new purchase
bot_trade_in_data_wipe: electronics factory reset pre-send
bot_trade_in_status_lookup: submitted trade_in_id, TR-4 pipeline
bot_trade_in_expired_offer: expired quote, renew
bot_trade_in_post_reject: handoff #413 TRADE-FLOW dispute
Session tags
trade_in_bot, trade_in_bot_eligibility, trade_in_bot_submitted, trade_in_bot_handoff, trade_in_bot_resolved. Distinct return_bot, deposit.
Triggers T1-T5
T1: /pages/trade-in dwell 30 s+. T2: keyword trade-in/buyback. T3: PDP badge "Trade-in" click. T4: trade_in_id post-submit message. T5: reject dispute keyword → handoff #413.
How to apply the TRADE-BOT flow in eight steps?
The TRADE-BOT flow guides the grounded TRADE-MAP trade-in qualification.
Eight steps TB-1 to TB-8
TB-1 Welcome: "Let me check if your product is eligible for trade-in."
TB-2 Intent clarify: trade-in vs after-sales return if ambiguous
TB-3 Model collect: model, series, serial number if electronics
TB-4 Eligibility match: TRADE-MAP eligible_models lookup
TB-5 Condition quiz: condition checklist → excellent/good/fair tier
TB-6 Valuation range: credit_range tier from TRADE-MAP, binding disclaimer
TB-7 Photo guide + CTA: photo angles + submit form link
TB-8 Close/handoff: status lookup | reject dispute → #413
TB-4 model reject
Model not in TRADE-MAP: "Currently not eligible. Accepted models: [list]. Textile takeback program: [link] if applicable." Do not encourage sending.
TB-5 condition quiz
3-5 binary questions: cracked screen? Functional? Accessories included? Score → tier. If reject criteria (broken screen phone): stop, explain no trade-in.
TB-6 valuation disclaimer
"Indicative range [min-max] € if [tier] condition is confirmed upon inspection. Firm offer after photo validation within [binding_window] days." Exact amount never guaranteed by bot.
TB-8 status_lookup
Client mentions trade_in_id: read app API pipeline received|inspecting|accepted|rejected|credited. Template TRADE-STATUS-01 #413. Reject dispute → handoff TR-6 agents.
Textile takeback shortcut
trade_in_takeback: TB-4 skip serial, TB-5 simplified 2 questions weight/min qty. Fixed range TRADE-MAP takeback_textile.
Which TRADE-BOT policy should be documented?
The TRADE-BOT trade-in policy bot governs promises and data sources.
Eight TRADE-BOT rules
TRADE-MAP only: eligibility and credits from JSON #413, no LLM guess
Range not exact: tier estimate range, never a firm "you will receive €80"
Binding disclaimer: final inspection, customer photos vs warehouse
No credit issue bot: credit issuance TR-7 agents #413 only
No reject override bot: inspection dispute → human handoff
Structured photo collection: checklist angles, no storage without consent
vs return redirect: bot_trade_in_vs_return mandatory if new order mentioned
Max 8 turns pre-submit: then form CTA, no qualification loop
RAG source corpus
/pages/trade-in, TRADE-MAP JSON, TRADE-SUP policy #413, TRADE-WIPE-01 data reset guide. Do not invent models missing from the map.
Ops sync
Update TRADE-MAP #413 → bot glossary same day. Audit transcripts for false eligibility promises.
Monthly review
Support + ops: rejection reason codes → update TB-5 quiz questions if there is a recurring pattern.
CNIL photo consent
TB-7 form redirect: consent checkbox for inspection photo upload. Chat bot does not store images by default.
What guardrails prevent the bot from over-promising?
The allowed vs. forbidden trade-in bot matrix protects trust and ops.
Allowed bot actions
Lookup TRADE-MAP eligible_models, tiers, credit_range
Run TB-5 condition quiz → tier suggestion
Cite valuation range min-max per tier
Guide photo angles + serial location
Link formulaire submit + /pages/trade-in
TRADE-WIPE-01 data reset guide electronics
Status lookup trade_in_id if API connected
Handoff #413 reject dispute, credit missing SLA
Forbidden bot actions
Promise exact credit without inspection
Accept model missing from TRADE-MAP
Issue store credit or Shopify voucher
Overturn rejection inspection ops
Open return RMA instead of trade-in
Collect serial for fraud block without handoff
Hard block phrases
Block: "guaranteed €120", "accepted without verification", "same refund as new". Use: "according to TRADE-MAP tier [X]: range [min-max] € after inspection".
Tier downgrade expectation
TB-6 always cite: inspection can adjust tier. Link TRADE-PARTIAL-01 #413 if customer insists on accuracy.
Fraud serial duplicate
TB-3 serial match API duplicate → stop bot, handoff trade_in_fraud_suspect #413. Do not continue qualification.
How to integrate TRADE-MAP #413 and the trade-in app?
The Shopify trade-in bot integration combines TRADE-MAP and a partner app.
TRADE-MAP bot layer fields
eligible_models: SKU list or serial regex
condition_tiers: excellent/good/fair/reject criteria
credit_range: min-max € per tier
binding_window_days: quote validity post-submit
photo_requirements: mandatory angles per category
Notion sync JSON import #413 (Shopify, metafields 2026 if catalog is linked).
Trade-in app API
Recommerce, custom app: bot_trade_in_status_lookup read pipeline TR-4. bot_trade_in_submit_form deep link pre-fill model + tier from session.
Photo upload flow
TB-7: customer upload via app form, not chat attachment (PII heavy). Bot guides text angles + example images /pages/trade-in.
Upgrade + cart context
bot_trade_in_upgrade_flow: logged-in + new cart SKU → explain post-inspection credit apply checkout. No auto bot checkout hold.
Serial verification pre-check
bot_trade_in_serial_check: format validation regex. Duplicate serial flagged → fraud handoff #413.
Form pre-fill session
TB-7 form deep link: model, tier, session_id bot log. Ops views declared tier vs inspection.
What triggers and UX for TRADE-BOT?
The UX TRADE-BOT deployment maximizes qualified submissions without friction.
Five widget placements
/pages/trade-in: proactive T1 after dwell
New PDP: T3 badge "Trade-in old model"
Footer link trade-in program: T2 keyword entry
Post-submit confirmation: T4 status compact FAQ
Account portal trade-in: trade_in_id lookup
TB-5 mobile quiz UX
Yes/No buttons per question. Progress bar 3/5. No free-text for condition (LLM drift). Deterministic score → tier.
Return bot coexistence
Intent router upstream. Session trade_in_bot tag lock: no return switch mid-flow without TB-2 reset.
Proactive PDP
"Trade-in up to [max tier excellent] € · Check eligibility" CTA opens widget TB-1.
A/B test
T1 proactive /pages/trade-in vs passive: measure trade_in_submission_complete + rejection_dispute delta 4 weeks.
Multilingual FR default
EU Markets: TRADE-MAP labels FR source. Bot references /pages/trade-in locale if exists.
Expired offer renewal
bot_trade_in_expired_offer: TB-3 re-run quiz if binding_window has expired. New range TRADE-MAP current, do not honor old quote.
Which trade-in bot KPIs should be measured?
The trade-in recovery bot KPIs link qualification and submission quality.
Eight key metrics
trade_in_bot_resolution_rate : resolved without handoff / trade_in_bot sessions
trade_in_submission_complete : bot session → form submitted / bot sessions eligibility OK
trade_in_rejection_dispute_delta : decrease in disputes vs pre-bot baseline
false_eligibility_promise : bot accept audit vs TRADE-MAP (target 0)
trade_in_ticket_eligibility_delta : decrease in tickets #413 eligibility
trade_in_bot_intake_complete : model+tier+photos guide OK / sessions
trade_in_vs_return_misroute : corrected sessions TB-2 / ambiguous sessions
trade_in_bot_csat : trade_in_bot tag satisfaction
DTC Benchmark
trade_in_bot_resolution 72-82%, submission_complete 25-40% eligibility OK sessions, rejection_dispute_delta -30-45%, false_eligibility_promise 0.
Weekly dashboard
Intent breakdown, tier distribution quiz, handoff #413 rate, model reject top list → TRADE-MAP gap.
Transcript audit
20 sessions/month : verify TB-4 match TRADE-MAP, TB-6 range not exact promise, binding disclaimer present.
Tier accuracy track
Correlate tier bot quiz vs tier inspection ops. Gap > 15% → update TB-5 questions wording.
Which anti-patterns should be avoided on trade-in bots?
Ten bot trade-in anti-patterns to ban.
1. LLM invents eligible model
TB-4 TRADE-MAP lookup mandatory. false_eligibility_promise incident.
2. Exact credit guaranteed by bot
Range only TB-6. Final inspection #413.
3. Ignore vs return confusion
bot_trade_in_vs_return + TB-2 if new order cited.
4. 15-turn qualification conversation
Max 8 turns rule. TB-7 form CTA.
5. Stale TRADE-MAP vs ops
Bot quotes €80 max, TRADE-MAP updated €60. Weekly Notion sync.
6. Bot issues store credit
TR-7 agents only. Bot handoff credit_missing.
7. Chat attachment photos without consent
Redirect to app upload form. GDPR photo storage policy.
8. Skip electronic data wipe
bot_trade_in_data_wipe mandatory pre-TB-7 submit phone/laptop.
9. Reject dispute bot argue
bot_trade_in_post_reject immediate handoff #413 TR-6.
10. Missing /pages/trade-in link in TB-7
Self-service gap. TRADE-SUP #413 prerequisite.
11. Free-text condition quiz
Customer "almost new" → LLM tier drift. TB-5 binary deterministic.
12. Marketing max € without tier
PDP "up to €120": bot TB-6 explicitly cites excellent tier. Align with TRADE-MAP ranges campaign.
How does Qstomy qualify product returns?
Qstomy on Shopify: TRADE-BOT TRADE-MAP lookup, condition quiz TB-5, valuation range TB-6, photo guide TB-7, status API lookup, handoff TRADE-FLOW #413 reject and credit.
Qstomy trade_in bot capabilities
trade_in_map_lookup: TB-4 eligible_models tiers
trade_in_condition_quiz: TB-5 deterministic tier
trade_in_range_render: min-max disclaimer FR
trade_in_photo_guide: angles + form CTA
trade_in_no_invent_guard: hard block without TRADE-MAP
trade_in_handoff_413: reject dispute, credit SLA breach
Pipeline #414 → #413
Upstream qualification bot. Downstream agents inspection disputes. Shared TRADE-MAP Notion single source. Return bot parallel distinct intent router.
Quantified DTC Scenario
Tech accessories 220 trade-ins/month, 31% tickets eligibility baseline.
After Qstomy TRADE-BOT: trade_in_bot_resolution 79%, trade_in_rejection_dispute_delta -41%, trade_in_submission_complete +24%, trade_in_bot_csat 4.2/5.
Explore customer support and request a demo.
Bot vs agents routing
Qstomy routes bot_trade_in_eligibility and valuation to TB-4/TB-6. bot_trade_in_post_reject and credit_missing → immediate handoff TRADE-FLOW #413.
What is the checklist for deploying TRADE-BOT?
TRADE-BOT Checklist (12 steps)
Validate TRADE-SUP #413 + TRADE-MAP published /pages/trade-in
Export TRADE-MAP JSON → bot glossary
Configure 12 intents bot_trade_in_* section 3
Implement flow TB-1 to TB-8 + deterministic quiz TB-5
Enable guardrails range not exact + no credit issue
Route upstream vs return bot + deposit #412
Placements widget /pages/trade-in + PDP badge T3
Triggers T1-T4 + handoff #413 fields TB-8
Staging tests 8 scenarios: eligible, reject model, tier downgrade expect, vs return, status, reject handoff
Photo guide assets /pages/trade-in examples
Weekly trade_in_bot KPI dashboard + audit transcripts
A/B T1 proactive vs passive 4 weeks
In brief
#414 = upstream trade-in bot, #413 downstream agents
TRADE-MAP grounded: zero eligibility invention
TRADE-BOT: model → tier → range → photos → submit
Range not exact: always final inspection
KPI trade_in_submission_complete: measure successful qualification
FAQ
Difference with #413?
#413 post-submission trade-in disputes customer service. #414 bot qualifies eligibility and upstream photos.
Difference with return bot?
Return = new product, recent order. Trade-in = old product, circularity program.
Does the bot issue the voucher?
No. Form submit + ops inspection. Agent credit TR-7 #413.
Photos in chat?
Bot guides angles. Upload via app form, not default chat attachment.
Loyalty relationship?
Trade-in credit distinct from points. Document TRADE-MAP accumulation. Bot quotes policy if asked.
Going further
This week: sync TRADE-MAP bot, configure quiz TB-5 staging, test 5 eligible/reject models, enable widget /pages/trade-in T1.
Share this guide #414 with circularity ops and support: qualifying upstream costs less than a rejected package and a credit dispute.
Trade-in + new purchase in same session?
bot_trade_in_upgrade_flow explain post-inspection credit. New checkout possible in parallel, credit apply after.

Enzo
July 1, 2026





