E-commerce

AI Chatbot for price match requests: qualifying without promising

AI Chatbot for price match requests: qualifying without promising

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

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

  1. bot_pmatch_request: "match", "price match", "match price"

  2. bot_pmatch_amazon: mentions Amazon, ASIN, "sold by Amazon"

  3. bot_pmatch_retailer: Fnac, Cdiscount, whitelisted retailer

  4. bot_pmatch_brand_dtc: direct competitor brand website

  5. bot_pmatch_no_url: "cheaper elsewhere" without a link

  6. bot_pmatch_screenshot_only: screenshot without a live URL

  7. bot_pmatch_post_purchase: order placed, requesting the difference

  8. bot_pmatch_wrong_product: similar model, not identical

  9. bot_pmatch_marketplace_3p: third-party seller on Amazon/eBay

  10. bot_pmatch_confusion_objection: "too expensive" without a named competitor

  11. bot_pmatch_confusion_discount: "match equivalent promo code"

  12. 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)

  1. PB-1 Transparent welcome: "AI Assistant. For a price match request, I collect the information. Final decision within 4 business hours."

  2. PB-2 Confirm intent: competitor alignment vs discount (#175) vs objection (#174)

  3. PB-3 Collect live URL: link to the competitor's product page, not the homepage

  4. PB-4 Confirm shop SKU: cart variant or link to the product sheet

  5. PB-5 Eligibility pre-check: whitelisted domain, no 3P marketplace flag

  6. PB-6 Inform policy: identical product, brand new, live stock, exclusions

  7. PB-7 Create PMATCH-ID: ticket + equivalent PMATCH-ACK acknowledgment

  8. 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

  1. T1 Incoming message: client opens chat with pmatch keywords

  2. T2 Comparative PDP: hero SKU product page, discreet "Price question?" widget

  3. T3 Idle cart: 60 s idle cart with high-ticket item (> €80)

  4. T4 Exit intent: mouse heading to close PDP, match policy hint (1×/session)

  5. 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)

  1. Documenter policy PMATCH #388 + page /price-match-policy

  2. Configurer 12 intents bot_pmatch_* section 3

  3. Rédiger templates PB-1 à PB-8 approuvés merch + legal

  4. Activer guardrails no_auto_promise (hard block phrases)

  5. Brancher validation URL + liste blanche concurrents

  6. Intégrer cart context Shopify read-only

  7. Créer ticket PMATCH-ID 12 champs handoff #388

  8. Configurer triggers T1-T5 + cap proactivité

  9. Tests staging 8 scénarios (URL OK, 3P, no URL, post-achat)

  10. Formation agents : reprendre ticket bot sans re-intake

  11. Dashboard KPI pmatch_bot hebdo + audit 20 transcripts/mois

  12. 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

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

Convert over 2,000 customers on average per month with Qstomy.

The world’s 1st Shopify AI dedicated to customer conversion

Empowering 200+ e-commerce merchants

Subscribe to the newsletter and get a personalized e-book!

No-code solution, no technical knowledge required. AI trained on your e-shop and non-intrusive.

*Unsubscribe at any time. We do not send spam.

Subscribe to the newsletter and get a personalized e-book!

No-code solution, no technical knowledge required. AI trained on your e-shop and non-intrusive.

*Unsubscribe at any time. We do not send spam.