E-commerce
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 pricesale_code_stack: code + sale stacking, loyalty, gift cardsale_cart_calc: partial discount on mixed cartsale_price_drop: difference after purchase or 2nd markdownsale_return_policy: returning a sale item, size exchangesale_wismo: sale order, peak shipping delaysale_cancel_modify: cancel or modify before shippingsale_defect: defective sale product, legal warrantysale_vp_access: private sale access, expired linksale_flash_stock: out of stock during flash sale, compensationsale_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
Operation type: official sales, private sales, flash sales, permanent outlet
Dates and time zones: Paris start/end time, not just the date
Reference price: 30-day display rule (Service Public)
Excluded products: new arrivals, collabs, gift cards, subscriptions
Stacking authorized: code + sale yes/no, loyalty, promo shipping
Price difference policy: window, conditions, max agent amount
Sale returns: same window as non-sale or reduced (if legal)
Size exchanges: limited sale stock, SKU alternative
Commercial gesture: agent limit without manager approval (e.g., €15 or 10%)
Pre-shipment cancellation: yes/no, timeframe
Private sales and early access: list rules, link non-transferability
Marketplace / B2B: DTC sales only or wholesale excluded
Crisis communication: pricing bug, double discount, phantom stock
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
Verify purchase date vs. markdown date (Shopify order + price history)
Identical product (SKU, size, color)? If not, polite refusal + link to equivalent product
Within documented price-match window (e.g., 7 or 14 days)? See SmartSMS: 14-day industry standard, doorbuster exclusions (SmartSMS, price match 2026)
Exclusion policy (private sales, flash sales, pricing error)? Quote the exact SALE-POLICY clause
Eligible: calculate the difference, refund via the same payment method or store credit if the customer agrees
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_dropwith automated SALE-PRICE-DROP treeReal-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





