E-commerce
July 1, 2026
"Amazon has it at €39, match it now." The customer expects an immediate response. A poorly calibrated bot promises the match, generates a -20% code, and the next day the agent discovers a third-party marketplace seller, a refurbished SKU, and a margin below the floor. The sale is lost, and so is the margin.
An e-commerce price match AI chatbot does not replace the PMATCH policy or human approval. It detects intent, collects the competitor's URL and shop SKU, checks basic eligibility, informs about the rules, and hands off to PMATCH-FLOW without ever promising "yes, matched."
This guide #389 covers bot_pmatch_* intents, the PMATCH-BOT flow, responsible AI guardrails, and pmatch_bot KPIs. It differs from PMATCH-FLOW agents (#388) (policy, proof verification, code execution) and general objection bots: here, we focus on qualifying competitor price alignment without any automatic commercial promise.
Summary
Why deploy an AI chatbot for price match requests?
Price match requests via chat often arrive pre-purchase, with an urgent need for conversion and an incomplete competitor link. Without a calibrated bot, four failures commonly occur.
Four dysfunctions without a PMATCH bot
Premature promise: bot or agent says yes before live proof verification
Pricing confusion: vague objection (#174) treated as a price match
Incomplete ticket: no URL, no SKU, requiring 2-3 follow-ups
Cart abandonment: customer waits 4 hours for an agent email, buys elsewhere
Spocket points out that price matching without guardrails compresses margins and encourages a price war if every chat becomes an open negotiation (Spocket, price matching 2026).
Angle #389 vs related content
#388 PMATCH-FLOW agents: PMATCH policy, macros, code execution. #389 automates bot intake and qualification.
#174 objections: LAER, value sell without proof. #389 requires a competitor URL.
#175 discounts: coupon negotiation. No live link required.
#387 PRICE-ADJ: same store over time. #389 = different retailer.
Responsible retail AI principle
The bot welcomes, classifies, collects structured proof, estimates basic eligibility, and escalates. It never issues a match code or confirms approval. Agent PM-6 validation is mandatory (#388).
DTC Example
Electronics brand, 38 pmatch tickets/month via chat, 52% without URL in the first message, 3 bot incidents of unvalidated code promises. After PMATCH-BOT: pmatch_bot_qualify_complete 89%, pmatch_auto_promise_incidents 0, price_match_fcr +14 pts, price_match_conversion_rate 61%.
How does the price match bot differ from the PMATCH-FLOW #388?
The price match qualification bot and the PMATCH-FLOW agent process complement each other in a sequential pipeline, like GDPR-BOT (#384) and DSAR-FLOW (#383).
#389 bot: upstream (minutes 0-8)
Detect intent bot_pmatch_* vs objection #174
Collect competitor URL, shop SKU, pre/post purchase context
Inform summarized PMATCH policy (eligible competitors, exclusions)
Pre-verify competitor whitelist, complete intake fields
Estimate delta % vs catalog (read-only Shopify API)
Create PMATCH-ID ticket + pre-filled PM-1 to PM-5 brief
#388 agents: execution (30 min to 4 h)
PM-4 open live URL, timestamped screenshot
PM-5 calculate actual floor margin COGS
PM-6 approve, deny reason, escalate tier 2
PM-7 unique checkout code or partial refund
PM-8 order/ticket documentation
Structured Handoff
Pre-filled ticket: PMATCH-ID, competitor_url, shop_sku, competitor_name_detected, delta_pct_estimate, pre_eligibility_flag, 6-message transcript, cart_value, timestamp_intake. Agent takes over PM-4 without asking for the URL again.
What the bot does not do
No Shopify discount code generation, no final approval, no automatic -5% beat, no post-purchase partial refund. Impact Analytics recommends limiting matching to key categories (Impact Analytics, 2026). The bot guides towards value sell (#174) if deny is likely, without promising otherwise.
Complementarity #174/#175
If customer says "it's too expensive" without URL: route objection_prix or discount_request, not bot_pmatch. Prevents abusive matching on mere negotiation.
Which bot_pmatch_* intents should the chatbot detect?
The chatbot price match intent detection combines keywords, NLP, and Shopify cart context.
Twelve main bot_pmatch intents
bot_pmatch_request: "match", "price match", "match price"
bot_pmatch_amazon: mentions Amazon, ASIN, "sold by Amazon"
bot_pmatch_retailer: Fnac, Cdiscount, whitelisted retailer
bot_pmatch_brand_dtc: direct competitor brand website
bot_pmatch_no_url: "cheaper elsewhere" without a link
bot_pmatch_screenshot_only: screenshot without a live URL
bot_pmatch_post_purchase: order placed, requesting the difference
bot_pmatch_wrong_product: similar model, not identical
bot_pmatch_marketplace_3p: third-party seller on Amazon/eBay
bot_pmatch_confusion_objection: "too expensive" without a named competitor
bot_pmatch_confusion_discount: "match equivalent promo code"
bot_pmatch_threat_leave: "I will buy elsewhere if not matched"
Strong textual signals
price match, price alignment, match, same price, cheaper on
http URL, amazon.fr, fnac.com, retailer name + numerical price
"Here is the link", competitor screenshot with visible price
Weak signals to clarify
"I saw it cheaper" can be objection #174 or pmatch_no_url. The bot asks a branching question: "Do you have a link to the verifiable competitor offer?" before bot_pmatch_request.
Conversation tags
pmatch_bot_detected, pmatch_bot_url_collected, pmatch_bot_ticket_created, pmatch_bot_reroute_objection, pmatch_bot_reroute_discount, pmatch_bot_handoff_agent, pmatch_bot_policy_informed. Sync with Gorgias/Zendesk helpdesk.
Intent priority
bot_pmatch_threat_leave with active cart > bot_pmatch_request with URL > bot_pmatch_no_url > bot_pmatch_confusion_objection. Cart > €150: Slack alert #sales-support.
Shopify cart context
If cart.line_items is present: bot pre-fills shop_sku, our_price, cart_value. Reduces SKU errors and speeds up agent PM-5.
Which PMATCH-BOT conversational flow should be configured?
The PMATCH-BOT flow consists of 8 steps PB-1 to PB-8, with branches depending on intent.
Basic sequence (bot_pmatch_request or bot_pmatch_amazon)
PB-1 Transparent welcome: "AI Assistant. For a price match request, I collect the information. Final decision within 4 business hours."
PB-2 Confirm intent: competitor alignment vs discount (#175) vs objection (#174)
PB-3 Collect live URL: link to the competitor's product page, not the homepage
PB-4 Confirm shop SKU: cart variant or link to the product sheet
PB-5 Eligibility pre-check: whitelisted domain, no 3P marketplace flag
PB-6 Inform policy: identical product, brand new, live stock, exclusions
PB-7 Create PMATCH-ID: ticket + equivalent PMATCH-ACK acknowledgment
PB-8 Close bot: "Folder PMATCH-[ID] submitted. Response within 4 hours. No promise prior to verification."
bot_pmatch_no_url branch
"To process a price match, I need the exact link to the competitor's product. Without a verifiable URL, I can present our benefits (warranty, delivery) or direct you to an agent." Quick reply: Send URL / Talk about benefits (#174) / Human agent.
bot_pmatch_screenshot_only branch
"Thank you for the screenshot. Our process also requires the live URL to verify current stock and price. Can you paste the link to the page?" No processing of screenshots alone (#388 PM-4).
bot_pmatch_post_purchase branch
Collect order number + competitor URL. Inform of 14-day window if policy #387 is aligned. Handoff PMATCH-POST-01 macro (#388). Bot does not calculate refund.
bot_pmatch_confusion_objection branch
"Would you like to compare with a specific offer (link) or discuss the value of our product?" Link to objections #174 flow if no URL.
UX and transparency
Visible "AI Assistant" badge. Link /price-match-policy. Oscar Chat recommends short checkout/conversion messages to limit abandonment (Oscar Chat, conversion 2026).
Flow prohibitions
Never "Your price is matched" or "Here is your -15% code" without validated PM-6 agent check. Correct message: "Request registered, verification in progress."
What can and cannot the bot do regarding price matching?
The authorized vs. unauthorized bot price match matrix protects margin and customer promise.
Authorized bot actions
Detect and classify intent bot_pmatch_*
Differentiate objection #174, discount #175, PRICE-ADJ #387
Explain summarized PMATCH policy (8 rules #388)
Collect URL, SKU, post-purchase order number
Pre-check competitor domain on whitelist
Estimate read-only % delta vs Shopify catalog price
Flag probable pre_eligibility approve/deny/review
Create timestamped helpdesk PMATCH-ID ticket
Pivot to value sell template if probable deny (without promising match)
Unauthorized bot actions
Create Shopify API discount code
Modify draft order price match
Confirm final approve or deny
Beat price (-5 to -10%) automatically
Post-purchase partial refund
Open competitor URL and validate stock (reserved for PM-4 agent)
Bypass floor margin or tier 2 escalation
Promise guaranteed match within 5 min
Gray zone: pre_eligibility flag
Bot can say "Your link points to an eligible retailer. An agent will verify the details within 4 hours" if domain is OK and fields are complete. Not "Match approved". If eBay/Leboncoin domain: "Out of policy, here are our alternatives" + PMATCH-DENY-3P preview without execution.
System prompt documentation
Explicit instructions: "Never generate code. Always create PMATCH-ID. Escalate bot_pmatch_threat_leave cart > 150 €. Quarterly merch + support review.
LLM guardrails
Approved templates PB-3 to PB-8. No free generation of discount amount. MetricsCart notes that published price match policies reduce hostile tickets (MetricsCart, 2025).
How do I collect competitor proof in the bot?
The price match bot proof collection structures the intake for the PM-4 agent without UX overload.
Required PB-3/PB-4 intake fields
competitor_url: HTTPS URL of the product page, validated format
shop_sku: Shopify variant_id or /products/handle link
context: pre_purchase | post_purchase + order_id if post
competitor_price_claimed: optional, customer quotes X €
Automatic URL Validation
HTTPS required, no javascript: or local files
Domain extracted vs PMATCH whitelist (#388 rule 1)
Flag amazon.fr/dp/ vs seller=amazon (page ASIN heuristic)
Rejection of homepage /search?q= URLs with no product
Additional screenshot upload
Accept image in addition to the URL, never alone. Bot: "Screenshot received. Please confirm the page link to verify current stock." Ticket attachment storage for PM-4 agent.
Active cart widget
If checkout session: "Product in my cart" button auto-fills shop_sku and our_price. Customer only needs to paste the competitor's URL. Reduces pmatch_bot_qualify_time.
Multi-SKU cart
Bot lists line_items, asks "Which item would you like to price match?" Single line match (#388 edge case 6).
PB-3 template messages
"Paste the exact link to the product page on the competitor's site (not the homepage). Example: https://www.amazon.fr/dp/B0XXXXX. We verify include-tax price and available stock."
Intake timeout
If client is idle 10 min post PB-2: save partial PMATCH-ID draft + optional email capture. Abandoned email reminder "Complete your price match request" with a link to resume the chat.
How to route to an agent without promising a match?
The handoff bot price match agent transmits full context while managing customer expectation.
Ticket PMATCH-ID minimum fields
PMATCH-ID, timestamp_intake, channel (chat/web)
competitor_url, shop_sku, our_price, cart_value
competitor_price_claimed, delta_pct_estimate
pre_eligibility_flag: likely_approve | likely_deny_3p | likely_deny_margin | needs_review
intent bot_pmatch_*, transcript 6-10 messages
customer_email, order_id if post_purchase
Customer waiting messages PB-8
Approved template: "Your request PMATCH-[ID] has been saved. An agent is verifying the competitor's offer (price, stock, identical product) within 4 business hours. You will receive an email with the decision. We cannot confirm the price match prior to this verification."
SLA bot vs agent
Bot intake: < 3 min conversation, < 8 messages
Agent PM-4: proof verification within 30 min after ticket creation
Customer response: same day if ticket created before 4 PM
Escalation bot_pmatch_threat_leave
Active cart + threat to leave: ping live agent if during business hours. Out of hours: priority ticket + message "Agent will resume as soon as we open, active cart held for 24 h" if cart hold policy applies.
Agent notification
Slack #price-match: PMATCH-ID, SKU, delta estimate, pre_eligibility. Agent directly opens the provided PM-4 URL.
Perceived friction (Springer 2026)
2026 study: opaque processes increase dissatisfaction if a promise is made and then denied (Journal Consumer Policy, 2026). Bot PB-6 informs about exclusions before the wait: reduces perceived hassle.
Post-handoff bot silence
After PB-8, the bot does not follow up with "did you get your code?" before the agent's response. Avoids double promising. Status lookup for PMATCH-ID is allowed: "Currently being verified".
Which triggers and widget placements for the price match bot?
The price match bot deployment combines deliberate triggers and product pages with high comparison rates.
Five PMATCH-BOT triggers
T1 Incoming message: client opens chat with pmatch keywords
T2 Comparative PDP: hero SKU product page, discreet "Price question?" widget
T3 Idle cart: 60 s idle cart with high-ticket item (> €80)
T4 Exit intent: mouse heading to close PDP, match policy hint (1×/session)
T5 Abandoned email: reply "cheaper elsewhere" deep-link chat PB-3
Priority pages
Top 20% SKU traffic (#388 hero products)
Electronics, sports categories (high pmatch volume)
Checkout cart step before payment (do not overlap pay button, see #386)
Proactivity cap
Max 1 proactive T4 popup/session. T3 only if no T4 same session. Prevents nuisance like conversational checkout Authon 3× worse conversion.
Link /price-match-policy
Widget FAQ button: "See our price match policy". Reduces "do you accept price matching?" tickets without URL. Bot PB-6 redirects to the same page.
Mobile-first
URL collection: mobile paste field, async validation. 68% DTC pmatch via mobile chat. Messages < 280 characters per bubble.
Off-peak hours
Bot 24/7 intake PB-1 to PB-8. Agent PM-4 business hours. PB-8 message adapts SLA for nights/weekends.
Quarterly A/B test
T2 PDP widget vs passive chat alone. Measure pmatch_bot_qualify_complete and price_match_conversion_rate.
Which KPIs should be measured every month?
The bot price match KPIs link bot qualification, agent execution, and margin.
Eight key metrics
pmatch_bot_qualify_complete: complete URL+SKU tickets / pmatch bot sessions
pmatch_bot_intake_time: seconds PB-1 to PB-8 (target < 180 s)
pmatch_auto_promise_incidents: bot promised code/approve (target 0)
pmatch_bot_reroute_rate: reroute #174/#175 / pmatch sessions
pmatch_bot_handoff_sla: agent tickets opened < 15 min post PB-7
price_match_fcr: correlation increase vs pre-bot (#388)
price_match_conversion_rate: post-approve purchases / approves
pre_eligibility_accuracy: bot flag vs agent PM-6 decision
DTC Benchmark
pmatch_bot_qualify_complete 85-92%, pmatch_auto_promise 0, intake_time < 3 min, reroute_rate 15-25% (objections well-filtered), pre_eligibility_accuracy 70-80%, price_match_fcr > 74% with bot.
Weekly merch + support dashboard
Top intents bot_pmatch_*, post-agent deny reasons, average approved delta, correlation T2 PDP vs T1 inbound.
Audit 20 transcripts/month
Compliance score: zero code promise? PB-6 policy mentioned? complete handoff? correct objection reroute?
Bot intake ROI
41 pmatch tickets/month, 48% incomplete before bot = 20 agent follow-ups avoided. 4 min/agent follow-up × 20 = 80 min/month. + conversion lift FCR: 8 additional approves × AOV €72 × margin 38% post-match.
Incident alert
pmatch_auto_promise_incidents > 0: review system prompt within 24 hours, pause free LLM generation.
Which edge cases and anti-patterns should be avoided?
Ten bot price match edge cases and playbook responses.
1. Bot promises match before PM-6
Critical incident. Guardrail hard blocks phrases "matched", "here is your code". Immediate audit.
2. Customer sends shortened bit.ly link
Bot requests unfolded final URL or copy-paste from browser address bar.
3. Competitor price + shipping > our total
Bot still collects, flags needs_review. Agent PMATCH-VALUE total landed cost (#388).
4. Same customer 3× pmatch/month
Bot informs of policy cap, handoff abuse review. Tag pmatch_abuse_review (#388).
5. Competitor not on whitelist
pre_eligibility likely_deny. Bot explains exclusion, pivots to value selling without false hope.
6. LLM invents eligible competitor
Whitelist API read-only, not LLM memory. Unknown domain = needs_review.
7. Post-purchase outside 14-day window
Bot informs ineligible PRICE-ADJ #387, offers value for future purchase.
8. B2B volume quote
Handoff to wholesale sales, not PMATCH-BOT B2C flow.
9. Bad review threat if deny likely
Bot remains neutral on policy, escalates to tier 2 flag. No pre-emptive match to appease.
10. Chat checkout at payment step
Compact widget, no T4 popup on payment step (#386 CF-2). Pmatch intake before or after checkout depending on policy.
Anti-patterns
Generalist bot without dedicated bot_pmatch_* intents
Auto-discount API without agent (#388 PM-7)
Ignoring reroute #174 when no URL is provided
Promising beat -10% "to build loyalty"
No /price-match-policy link in PB-6
High-ticket
Premium products: escalate to live agent from PB-5 if cart_value > €300.
How does Qstomy qualify price matches without making promises?
Qstomy on Shopify: PMATCH-BOT with intent detection, URL collection, whitelist pre-check, PMATCH-ID ticket, and logic-based agent handoff.
Qstomy PMATCH-BOT Capabilities
pmatch_intent_detect: 12 intents bot_pmatch_* section 3
pmatch_url_validate: HTTPS, domain whitelist, reject 3P heuristics
pmatch_cart_context: read line_items, our_price, SKU auto
pmatch_policy_inform: templates PB-6 links /price-match-policy
pmatch_no_auto_promise: hard block approve/code phrases
pmatch_handoff_ticket: 12 PMATCH-ID fields to PMATCH-* agents (#388)
pmatch_reroute_objection: #174/#175 if no URL
Addition #388
PMATCH-FLOW agents execute PM-4 to PM-8. Qstomy PMATCH-BOT automates PB-1 to PB-7. Pipeline price_match_fcr +14 pts, pmatch_wrong_process_rate -58% combined.
Quantified DTC Scenario
Outdoor brand, 41 pmatch/month chat tickets, 52% incomplete intake, 3 legacy bot promises.
After Qstomy PMATCH-BOT: pmatch_bot_qualify_complete 91%, pmatch_auto_promise_incidents 0, price_match_fcr 78%, price_match_conversion_rate 63%, median pmatch_bot_intake_time 2 min 40 s.
Explore our AI sales agent, customer support and request a demo.
What is the checklist for deploying PMATCH-BOT?
Checklist PMATCH-BOT (12 étapes)
Documenter policy PMATCH #388 + page /price-match-policy
Configurer 12 intents bot_pmatch_* section 3
Rédiger templates PB-1 à PB-8 approuvés merch + legal
Activer guardrails no_auto_promise (hard block phrases)
Brancher validation URL + liste blanche concurrents
Intégrer cart context Shopify read-only
Créer ticket PMATCH-ID 12 champs handoff #388
Configurer triggers T1-T5 + cap proactivité
Tests staging 8 scénarios (URL OK, 3P, no URL, post-achat)
Formation agents : reprendre ticket bot sans re-intake
Dashboard KPI pmatch_bot hebdo + audit 20 transcripts/mois
A/B T2 PDP widget vs passif trimestriel
En bref
#389 = bot qualifie price match, #388 = agents exécutent
PMATCH-BOT : collecter preuve, informer, handoff sans promesse
IA responsable commerce : jamais code auto, jamais approve bot
Reroute #174/#175 si pas URL concurrent
KPI pmatch_bot_qualify_complete : cible 85-92 %
FAQ
Différence avec #388 ?
#388 policy PMATCH + agents vérifient et émettent code. #389 bot intake PB-1 à PB-8 sans exécution.
Le bot peut-il approuver le match ?
Non. Décision PM-6 agent obligatoire. Bot informe policy et collecte preuve seulement.
Client sans URL concurrent ?
Bot reroute objection #174 value sell ou demande URL. Pas de match sans preuve live.
Relation #387 post-achat ?
Bot collecte order_id + URL, handoff PMATCH-POST. Fenêtre 14 j si policy alignée.
Comment éviter promesses LLM ?
Templates approuvés, hard block phrases, audit transcripts mensuel, incident = pause LLM libre.
Aller plus loin
Changement prix (#387)
Testez staging : message « Amazon moins cher » sans URL, vérifiez reroute ou demande lien, zero code généré, ticket PMATCH-ID complet.
Partagez ce guide #389 avec merch et support : le bon bot price match qualifie vite, informe clairement, et laisse les agents décider sans promesse prématurée.

Enzo
July 1, 2026





