E-commerce

How to manage customer inquiries related to sales and promotional periods?

How to manage customer inquiries related to sales and promotional periods?

July 2, 2026

"I bought on Tuesday at -30%, today it's -50%, will you refund the difference?" "Is my return accepted on a sale item?" "The VIP code cannot be combined with the sale, why?" Each recurring promotional period, official sales, private sales, or flash ops, generates the same cocktail: x2 to x3 volume, price urgency, and agents improvising contradictory answers.

Bookbag estimates that a promotional peak brings support volume to 2 to 4 times the baseline, with promo and WISMO tickets dominating the mix (Bookbag, 2026 ticket benchmarks). Service Public reminds us that sale items retain the 14-day right of withdrawal and legal guarantees, regardless of the discount (Service Public, 2026 sales).

This guide #318 covers operational support for sales and recurring promotional periods. It complements BFCM preparation (#32) with an angle on the year-round promo calendar, pricing policy, and difference protocol, which is absent from one-shot Black Friday guides.

Summary

Why do sales create a different ticket mix than BFCM?

Sales and promotional periods do not look like a concentrated BFCM weekend. They span over 4 to 6 weeks, with successive markdowns, channel-specific codes, and a wave of returns arriving 3 to 5 weeks after the end.

Three specific differences between Sales and BFCM

  • Duration: promo tickets and prices spread over a month, not a 72-hour peak

  • Markdowns: price difference requests at each 2nd or 3rd markdown

  • FR legal framework: 30-day reference price, mandatory display, unchanged right of withdrawal

Typical ticket mix

Engaige describes three peak waves: promo and price questions during the ramp-up, delivery anxiety during the gifting window, and returns in January (Engaige, 2026 seasonality). During summer or winter sales, the pattern repeats on a smaller scale: week 1 = promo eligibility, week 3 = price difference, week 5 = returns and quality customer service.

Principle #318

SALE-OPS pipeline: promo calendar → SALE-POLICY document → SALE-INTENT taxonomy → macros + bot → SALE-PRICE-DROP protocol → post-sales debrief.

How does it differ from BFCM #32, offers #111, and promo codes?

Five related pieces of content, five complementary angles.

BFCM Preparation (#32)

BFCM Preparation (#32): war room, staffing, Christmas cutoffs. #318: recurring sales playbook (summer, winter, private sales, flash sales) all year round.

Promotional Offers (#111)

Offer terms and conditions (#111): mixed baskets, exclusions, accumulation. #318: complete sales cycle including markdowns, sale item returns, and post-purchase price differences.

Invalid Promo Code

Invalid code (#reduce-promo): checkout technical diagnostics. #318: commercial policy when the code works but the customer disputes the final price.

Private and Flash Sales

Private sales and flash sales share the same sales intents but add stock urgency and short windows. #318 covers these variations in SALE-POLICY section 4.

Promise #318

SALE-INTENT, SALE-POLICY, SALE-PRICE-DROP, SALE-PHASE, macros by intent, promo bot intents, sales KPIs, calendar playbooks.

Which SALE-INTENT taxonomy to use for routing sale tickets?

The SALE-INTENT taxonomy classifies sale-related requests before opening the helpdesk.

12 sale intents

  • sale_eligibility: is this product on sale? new arrivals excluded?

  • sale_price_display: strikethrough price, % discount, 30-day reference price

  • sale_code_stack: code + sale stacking, loyalty, gift card

  • sale_cart_calc: partial discount on mixed cart

  • sale_price_drop: difference after purchase or 2nd markdown

  • sale_return_policy: returning a sale item, size exchange

  • sale_wismo: sale order, peak shipping delay

  • sale_cancel_modify: cancel or modify before shipping

  • sale_defect: defective sale product, legal warranty

  • sale_vp_access: private sale access, expired link

  • sale_flash_stock: out of stock during flash sale, compensation

  • sale_legal_rights: right of withdrawal, credit note vs legal refund

Volume prioritization

IrisAgent notes that "my code doesn't work" and "can I get the sale price" flood the queue with every promotion (IrisAgent, promo support 2026). Tag sale_price_drop separately from sale_code_stack: policies and macros differ.

What must the SALE-POLICY document contain before each period?

The SALE-POLICY document is the single source of truth for agents, bots, and the sale help center. A Notion page, dated version, validated by support + legal + marketing 7 days before opening.

14 mandatory sections

  1. Operation type: official sales, private sales, flash sales, permanent outlet

  2. Dates and time zones: Paris start/end time, not just the date

  3. Reference price: 30-day display rule (Service Public)

  4. Excluded products: new arrivals, collabs, gift cards, subscriptions

  5. Stacking authorized: code + sale yes/no, loyalty, promo shipping

  6. Price difference policy: window, conditions, max agent amount

  7. Sale returns: same window as non-sale or reduced (if legal)

  8. Size exchanges: limited sale stock, SKU alternative

  9. Commercial gesture: agent limit without manager approval (e.g., €15 or 10%)

  10. Pre-shipment cancellation: yes/no, timeframe

  11. Private sales and early access: list rules, link non-transferability

  12. Marketplace / B2B: DTC sales only or wholesale excluded

  13. Crisis communication: pricing bug, double discount, phantom stock

  14. Owner + update date: who decides on unforeseen cases

Legal framework France

CLCV reminds: reduced price + original price visible, legal guarantees on sale items, unchanged 14-day online withdrawal period (CLCV, sales 2026). CRM France specifies: legal refund in case of withdrawal, store credit only if the customer freely accepts it (CRM France, refund 2026). Your SALE-POLICY translates the legal aspects into actionable scripts.

How to handle price difference requests with SALE-PRICE-DROP?

The SALE-PRICE-DROP protocol prevents each agent from inventing their own rule when the price drops after purchase.

Legal Principle

Excluding defects or withdrawals, there is no automatic refund if the price drops after purchase. Your commercial policy can go beyond this: it is a documented choice, not a legal obligation.

6-Step Decision Tree

  1. Verify purchase date vs. markdown date (Shopify order + price history)

  2. Identical product (SKU, size, color)? If not, polite refusal + link to equivalent product

  3. Within documented price-match window (e.g., 7 or 14 days)? See SmartSMS: 14-day industry standard, doorbuster exclusions (SmartSMS, price match 2026)

  4. Exclusion policy (private sales, flash sales, pricing error)? Quote the exact SALE-POLICY clause

  5. Eligible: calculate the difference, refund via the same payment method or store credit if the customer agrees

  6. Ineligible: offer a return under the withdrawal policy if within 14 days, or a capped goodwill gesture

Sample Agent Script

"Your order #1234 from January 8 is outside the price-match window (7 days). The 2nd markdown on January 15 does not trigger an automatic refund. You can exercise your right of withdrawal until January 22 via [portal link]." SmartSMS advises quoting the specific exclusion rather than a vague "no."

Bot Automation

Intent sale_price_drop: bot reads order + SALE-POLICY rule, calculates eligibility, offers partial refund or return. Escalates if amount > agent ceiling.

Which macros and replies for the sales intent?

The sales CS macros align tone, policy, and deadlines. Prefix SALE- in Gorgias/Zendesk.

Essential macros

  • SALE-ELIG: "[Product] is on sale at -X%. Excluded: new arrivals [list]. Reference price: [amount] applied 30 days before sales."

  • SALE-NOSTACK: "Sales cannot be combined with [code/loyalty]. Eligible cart: [amount] €." See offer conditions (#111)

  • SALE-DROP-YES: "Difference of [X] € refunded within 5-7 business days to your card."

  • SALE-DROP-NO: "Outside price-match window. Cancellation possible until [date]: [link]."

  • SALE-RETURN: "Sale return: same 30-day policy / customer return fees. Portal: [link]."

  • SALE-DEFECT: "Sale item = legal guarantees intact. Exchange or full refund in case of non-conformity."

  • SALE-VP: "Personal, non-transferrable private sales link. Ends [date time]."

Tone rules

Bizrate recommends explicit checkout messages regarding promos (expiration, minimum, exclusions) to reduce tickets (Bizrate, promo transparency 2026). Same requirement in CS: factual, no condescension, policy clause cited. Link support templates (#34), cart support.

How to organize support by SALE-PHASE?

The SALE-PHASE calendar adapts staffing, bot, and macros to each wave of requests.

5 phases for a standard 4-week sale period

  • Phase 0 Pre-sale (D-7 to D-1): intents sale_eligibility, sale_vp_access. Activate the sale hub, bot chips "Sales: conditions", test Shopify codes.

  • Phase 1 Opening (D1-D5): peak sale_code_stack, sale_cart_calc. Staffing +30%, chat SLA < 2 min. See surge escalation matrix.

  • Phase 2 Mid-period (D6-D18): sale_wismo, sale_cancel_modify. Proactive tracking notifications.

  • Phase 3 Markdowns (D10, D15…): peak sale_price_drop. Activate SALE-DROP macro, auto-calculation bot.

  • Phase 4 Post-sale (D+1 to D+35): sale_return_policy, sale_defect. Extend return window if holiday commercial promise applies.

Volume forecast

Keloa cites +37% to +42% in retail tickets over a six-week promo window (Keloa, peak season 2026). For French sales: plan for 2x baseline in week 1, 1.5x during markdown phases, and 1.8x for post-sale returns. The tickets/orders ratio is more reliable than tickets/day alone (DTC playbook).

Light war room

Slack channel #sales-support: hourly volume, top 3 intents, price incidents. Daily 15 min standup for phases 1 and 3 only. Process change freeze during phase 1 (ContactPoint360).

How can sale-related tickets be prevented before reaching customer service?

Sale ticket prevention is worth more than extra staffing.

Site UX & Checkout

  • PDP: "Sale -X%" badge, reference price, "Cannot be combined with codes" if applicable

  • Cart: discount line per item, exclusions banner (cart support)

  • Checkout: explicit discount error message (cart minimum, expired)

  • /sale Page: table of offers, dates, exclusions, returns link

Email Communication & Ads

Shopify reminds: communicate expiration, restrictions, one code per order (Shopify, 2026 promo codes). Sale email: terms paragraph at the top, not in a 6pt footer. Influencer: sync admin code before publication.

Bot & Self-Service

Pre-sale bot intents: "What are the terms?", "Can I return a sale item?", "Is a price adjustment possible?" RAG Corpus = current version of SALE-POLICY only. Link T&C tickets (#301), brand promise to align sale limits.

Which vertical playbooks for fashion, beauty, and food?

The priority sale intents vary depending on the vertical and margin.

Fashion / footwear

Peak sale_eligibility remaining sizes, sale_return_policy size exchange for limited sale stock. Macro: "Sale stock by size not replenished. Exchange possible if size is available, otherwise refund." Link objections (#35).

Beauty / skincare

Promo bundles, near expiry dates: sale_price_display intent + expiration date transparency. Return of opened product often excluded by commercial policy, defect warranty maintained. Link cosmetic advice.

Grocery / FMCG

Short expiration date clearance sales: strict sale_defect and sale_return_policy. No price-drop on perishable products already shipped. Link perishables (#313).

High-ticket and premium

Rare sales, private sales: limit automated sale_price_drop, human escalation. No aggressive promo bots. Short or non-existent price-match window.

Permanent outlet

Distinction between "official sales" vs "outlet prices" in SALE-POLICY. Customers confuse them: the SALE-OUTLET macro clarifies cross-channel price-match non-eligibility.

Which KPIs should you track during and after the sales?

Measure sales support performance by intent, not just overall CSAT.

Operational KPIs

  • ticket_rate_orders: tickets / orders during sales period vs baseline

  • sale_intent_mix: % by SALE-INTENT, alert if price_drop > 15%

  • sale_fcr: first contact resolution for promo intents

  • sale_price_drop_approved: total difference amount refunded

  • sale_return_rate: returns / sales orders vs non-sales orders

  • sale_policy_mismatch: tickets where agent contradicted SALE-POLICY (QA sample)

  • sale_bot_containment: % of promo intents resolved without human intervention

D+7 post-sales review

Top 5 intents not covered by macros → enrich SALE-POLICY. Price incidents → fix merchandising. Export learning log for the next session (summer if winter, and vice versa). OmniOps recommends analyzing priority tickets by category before each peak (OmniOps, peak support 2026).

How does Qstomy absorb the sales peak without a queue?

Qstomy processes SALE-INTENT intents in conversation: eligibility, stacking, price difference calculated on Shopify order, discounted returns.

Sale capacities

  • Sync active SALE-POLICY version + dated promo corpus

  • Intent sale_price_drop with automated SALE-PRICE-DROP tree

  • Real-time cart code + sales stacking diagnosis

  • Pre-configurable PDP chips "Sales: return conditions"

  • Configurable goodwill gesture cap escalation

  • Dashboard intent mix and containment by SALE-PHASE

Quantified DTC scenario

DTC fashion brand, 4-week winter sales, 12,400 orders. Before #318: ×2.8 tickets, 41% promo intents without macro, 18 min/price_drop ticket. After SALE-POLICY + Qstomy bot: ticket_rate_orders −24%, promo containment 58%, average price_drop time 4 min (bot) vs 22 min (human N-1), sales CSAT 4.3/5 vs 3.6.

See AI support, sales agent, Shopify, demo. Supplement: reassurance lab (#317) to test sales copy before site banner.

Which playbooks to prepare for the next sales period?

Playbook 1: Y-1 audit (4 h)

Export tickets from the last sales session. Top SALE-INTENT, price_drop verbatims, policy mismatch QA. Cross-reference with weekly orders.

Playbook 2: draft SALE-POLICY (1 d)

14 blocks in section 4. Legal + marketing validation. Update date + owner. Publish the /sales page and sync bot.

Playbook 3: macros + bot D-7 (4 h)

7 SALE-* macros in section 6. Test 15 conversations per intent. PDP chips active.

Playbook 4: run phases 1 and 3 (4 weeks)

SALE-PHASE staffing. Daily war room phase 1 and markdowns. Monitor sale_price_drop_approved.

Playbook 5: debrief D+14 (2 h)

KPI section 10. Learning log → Notion. Adjust price-match window in case of abuse or dissatisfaction.

Useful links

This week: open your last sales export, tag 50 tickets with SALE-INTENT, and identify if sale_price_drop lacks a written protocol. Without a documented SALE-PRICE-DROP, each markdown recreates chaos.

Enzo

July 2, 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.