E-commerce
June 30, 2026
"Why did my neighbor get free shipping and I didn't?" Two customers, same delivery incident. One is an RFM Champion, the other is Hibernating. Without a written chart, the agent improvises and the margin leaks on both sides.
Shopify automatically scores each customer from 1 to 5 on recency, frequency, and monetary value, then classifies them into segments like Champions or At Risk (Shopify, RFM analysis 2025). Digital Applied points out that Champions represent 10 to 15% of the database but 35 to 45% of revenue (Digital Applied, RFM 2026).
This guide #275 covers RFM segmentation on the customer support side: adapting SLA, tone, gestures, and routing according to R, F, and M. Complements VIP policy (#207) and recurring customers (#206) with the operational RFM method, not just LTV or orders_count.
Summary
Why does RFM change support more than LTV alone?
RFM support segmentation crosses three purchase behaviors: when (Recency), how many times (Frequency), and how much spent (Monetary). LTV alone or orders_count mask opposite profiles.
Two clients, two treatments
Client A: €800 LTV, last order 14 months ago (R=1). Client B: €400 LTV, 6 orders in 12 months (R=5, F=5). A "high LTV" tag treats them the same. RFM places A in Can't Lose Them (SAV win-back) and B in Champions (highest priority).
Market signal
FlowFixer notes that repeat customers spend an average of 67% more than first-time buyers; Champions are the peak of this (FlowFixer, RFM ecommerce). Gorgias: recurring customers generate up to 300% more revenue than new ones (Gorgias, 2026 prioritization).
What support gains
Queue prioritization: Champions before Hibernating at equal load
Gesture caps: aligned with value + churn risk
Adapted tone: recognition vs discrete win-back
Bot routing: earlier handoff for At Risk with high M
How does it differ from the neighboring VIP and recurring guides?
Five contents, five granularities.
VIP Policy (#207)
VIP Policy (#207): top 5-20% LTV tier, structured benefits. #275 uses 11 RFM segments including Recent customers, At Risk, Can't Lose Them, not just the top tier.
Recurrents (#206)
Recurrents Personalization (#206): orders_count ≥ 2, loyal tone. #275 distinguishes active frequent buyer vs dormant recurrent via Recency.
Commercial gestures (#238)
Commercial gestures (#238): incident × segment matrix. #275 defines the RFM segment input of this matrix.
Purchase history (#257)
History (#257): creep factor limits. #275: which support action according to the RFM score, not which data to quote.
Klaviyo marketing segmentation
Klaviyo (#Klaviyo) pushes to email. #275 remains helpdesk and bot at incoming ticket. Bot side without visible discrimination: RFM chatbot (#276).
Promise #275
RFM calculation, table of 11 segments → SLA/gestures/macros, Shopify Gorgias setup, bot, anti-patterns, KPIs, playbooks.
How do you calculate RFM scores on Shopify in practice?
The e-commerce RFM calculation is based on an analysis window and quintiles, not on arbitrary absolute thresholds.
Window and raw metrics
Recency (R): days since last paid order
Frequency (F): number of orders over 12 or 24 months
Monetary (M): total spent over the same window
1-5 Quintile Scoring
Top 20% recency → R=5, bottom 20% → R=1. Same for F and M. Native Shopify produces 1-5 scores and named segments (Shopify, RFM scoring). BI Export: NTILE(5) in SQL on customers + orders.
Refresh
Weekly for DTC fashion/cosmetics. Monthly if long purchase cycle (furniture). Shopify tag rfm_segment + calculation date via Flow or app (Recharge does not impact F if successful charges are counted).
Exclusions
Exclude wholesale, chargeback_flag, return_abuser from goodwill gesture calculation. RFM segment displayed to agent but gesture blocked if fraud tag.
Which RFM matrix to support actions should be used?
The RFM support matrix translates 11 segments into concrete customer support behavior (inspired by Shopify + Digital Applied).
High-priority segments (P1)
Champions (R5 F5 M5): 2h SLA, high financial gesture cap, agent continuity, delay proactivity
Can't Lose Them (R1-2 F4-5 M4-5): 4h SLA, win-back support, punctual recovery gesture, no full VIP benefits while R remains low
At Risk (R2-3 F3-5 M3-5): 4h SLA, "we value you" tone, skip bot for disputes
Nurture segments (P2)
Loyal customers / Potential loyalists: 8h SLA, discreet recognition, standard gesture
Recent customers / Promising: Standard SLA, support onboarding, no over-gesturing (avoid entitlement)
Need attention: 8h SLA, offer product help, no systematic discount
Low-priority queue segments (P3)
About to sleep / Hibernating / Lost: Standard SLA, self-service bot, low-cap gestures, win-back email post-resolution if ticket solved positively
Can't Lose Them Rule
Digital Applied: most asymmetrical ROI segment in win-back (Digital Applied, Can't Lose Them). Support: handle ticket with empathy + targeted gesture, then Klaviyo marketing win-back handoff, no promo spam on already active Champions.
Delivery incident example
5-day delay, same SKU. Champion: free express upgrade + personalized apology. Recent customer: apology + tracking follow-up, no upgrade. Can't Lose: apology + €15 voucher + mention of new arrivals without pressure. Hibernating: standard apology + tracking link.
What are the SLAs and goodwill gesture caps by RFM segment?
RFM support SLAs align response times and goodwill budgets with churn risk × value.
First response SLA grid
Champions: 2 business hours, Critical queue
Can't Lose / At Risk: 4 hours, High queue
Loyal / Potential / Need attention: 8 hours
Recent / Promising / About to sleep: 12 hours
Hibernating / Lost: 24 hours, bot first
Annual goodwill caps (aligned with #238)
Champions: €80 equivalent. Can't Lose / At Risk: €50 recovery max 2×/year. Loyal: €30. Recent/Promising: €15 (ops incident only). Hibernating/Lost: standard policy, no marketing goodwill gestures via CS.
Queue capacity
SupportBench: reserve 15-25% weekly capacity for RFM P1+P2 (SupportBench, VIP lane 2026). Measure P1 ticket share vs actual Champions volume to avoid standard queue starvation.
Which RFM-* macros should be injected per segment?
Eight RFM support macros cover the most frequent ticket segments.
RFM-CHAMP-ACK
"Hello [First Name], thank you for your loyalty ([X] orders with us). I am processing your request as a priority. [Solution or next step with timeline]."
RFM-CANTLOSE-WINBACK
"We are delighted to hear from you again. I am resolving [incident] immediately. As a gesture of goodwill, [gesture based on limit]. Do not hesitate if you have any questions about our new products."
RFM-ATRISK-RETAIN
"I understand your disappointment. Here is what I am doing: [action]. Your satisfaction matters a lot to us." No "you used to be a good customer" (implicit insult).
RFM-RECENT-WELCOME
"Thank you for your recent order #[num]. [Factual response]. If you are hesitating about [product], our guide [link] can help."
RFM-LOYAL-STANDARD
"Hello [First Name], I see that you are already familiar with us. [Direct answer without asking questions already resolved]."
RFM-HIBERN-SELF
"Here is the procedure: [link to return portal / tracking]. If there is a blockage, reply with your order # and I will take over the case."
RFM-GESTE-REFUSE
"Your request exceeds our standard policy. I can offer: [option compliant with policy]. I remain available for [alternative]."
RFM-ESCALATE-MANAGER
"I am transferring this to a senior representative familiar with your history. Response time: [X] h. Transmitted summary: [3 lines]."
How to configure helpdesk and Shopify for RFM?
The RFM helpdesk setup synchronizes calculated segments to ticket tags and the agent sidebar.
Shopify customer tags
rfm_champions, rfm_cant_lose, rfm_at_risk, rfm_loyal, rfm_hibernating, etc. + rfm_updated_YYYY-MM-DD. Shopify Admin → Customers → native RFM segments if available.
Gorgias Rules
Customer tag rfm_champions → priority Critical + assign senior queue
rfm_cant_lose OR rfm_at_risk → priority High
rfm_hibernating → route to tier 1 bot if simple WISMO intent
Agent sidebar (5 lines)
RFM Segment · R-F-M Score · Last order · Remaining goodwill gesture limit · Previous ticket 90 d. Do not display raw score to the customer.
Shopify Flow example
Every Monday: export Champions segment → add tag → remove old rfm_* tags. Webhook to helpdesk sync if latency < 24 h is acceptable.
Test segment before go-live
Pull 3 customers per segment from Shopify Admin, open Gorgias test ticket, verify priority + sidebar + suggested macro. Correct mapping if Champions falls into Normal.
How does the bot route according to the RFM segment?
The RFM support bot adjusts automation vs. handoff based on value and risk, not just intent.
Bot × RFM Matrix
Champions + dispute: immediate handoff with RFM payload
Champions + WISMO: auto + RFM-CHAMP-ACK message
Can't Lose + any emotional intent: handoff within 60s
Recent + product question: auto KB, no gesture
Hibernating + return: auto portal, no promo code
Guardrails
Bot never mentions "you are in the Champions segment". Bot does not promise gestures exceeding the segment limit. See bot triage (#triage).
Handoff payload
rfm_segment, rfm_scores, gesture_remaining_eur, orders_count, last_order_date.
What RFM pitfalls and biases should be avoided in customer support?
Five RFM support anti-patterns create injustice or additional costs.
Frequent errors
Sleeping whale = VIP: R=1, high M: win-back, not Champions queue
Over-managed recent customer: 1 order, R=5: no €80 cap
Stale RFM: tags 6 months old without refresh, Champions become Lost
RFM vs fraud: high segment + chargeback: fraud policy takes precedence
Visible discrimination: "you are not a VIP" to the customer
Standard queue fairness
Publish average SLA for the general queue. Champions accelerated but no total silence on P3. Monthly audit: P3 vs P1 waiting time, target gap < 3× not 10×.
AnswerLab reminder
Perceived appreciation increases with fast resolution, not by citing the RFM score (AnswerLab, loyalty 2026).
Which KPIs should you track every month?
Measure RFM support performance beyond global CSAT.
Monthly KPIs
First response time by segment vs target SLA
Gesture cost / segment / month: Champions vs Can't Lose
Repeat purchase 90 days post-ticket by RFM segment
Segment migration: At Risk → Loyal after positive customer service contact
CSAT by rfm_segment tag
Review ritual
30-minute monthly meeting: top 10 poorly handled Champion tickets, 5 Can't Lose without gesture recovery despite ops dispute. Adjust caps if gesture margin > 6% of support revenue.
How does Qstomy apply RFM to support?
Qstomy reads Shopify RFM tags, routes intents and injects tailored macros without exposing the segment to the customer.
Capabilities
Sync rfm_segment: profile lookup when starting chat
P1/P2/P3 Routing: handoff to Dispute Champions
Dynamic RFM macros: tone varies according to segment
Gesture guardrail: blocked if over dynamic allowance limit
Handoff payload: scores + remaining compensation allowance
Quantified DTC Scenario
Fashion brand, 3,200 tickets/month, weekly Shopify RFM. Before Qstomy RFM: Champions FCR of 62%, "Can't Lose" customer compensation outsourced. After tags + 8 macros + routing: Champions FCR at 84%, 90-day repeat rate of contacted "Can't Lose" customers +19 pts, compensation cost −14% (fewer over-compensations for Recent customers), At Risk CSAT 4.1/5.
Explore AI customer support, Shopify, request a demo.
Which playbooks can be deployed in three weeks?
Playbook 1: RFM calculation (3 d)
Activate native Shopify segments or quintiles SQL export. Validate 12-month window. Exclude wholesale/fraud.
Playbook 2: CS matrix (2 d)
Support + finance workshop: validate SLAs and caps in section 5. Align gestures (#238).
Playbook 3: tags + rules (2 d)
Sync customer tags → Gorgias. Test 5 dummy tickets per P1 segment.
Playbook 4: RFM macros (1 d)
Import 8 templates from section 6. Agent training: tone without RFM jargon.
Playbook 5: bot routing (2 d)
Configure section 8 matrix. Test pack of 20 multi-segment conversations.
Playbook 6: monthly review
KPI section 10 + segment migration. Linking: VIP (#207), recurrent (#206), escalation (#193).
RFM does not replace empathy: it indicates where to focus speed and gestures to protect the revenue your best customers are already generating.

Enzo
June 30, 2026





