TL;DR
Customer Segmentation là việc chia khách hàng thành các nhóm có đặc điểm, hành vi, hoặc nhu cầu tương tự nhau để cá nhân hoá marketing, sản phẩm, và trải nghiệm khách hàng.
Theo McKinsey, doanh nghiệp áp dụng customer segmentation hiện đại có ROI cao hơn 86% so với phương pháp truyền thống. Cụ thể:
- Cá nhân hoá: Email gửi đại trà có CTR ~2%, email theo segment đạt CTR ~15%
- Giảm chi phí: Marketing đúng segment giúp giảm CAC 30-50%
- Tăng LTV: Tập trung nguồn lực vào nhóm khách hàng giá trị cao nhất
| Phương pháp | Dựa trên | Ứng dụng | Độ khó |
|---|---|---|---|
| Demographic | Tuổi, giới tính, thu nhập | B2C marketing | Dễ |
| Geographic | Vị trí, múi giờ | Logistics, bản địa hoá | Dễ |
| Firmographic | Quy mô công ty, ngành | B2B sales | Trung bình |
| Behavioral | Hành vi, usage patterns | Cá nhân hoá sản phẩm | Trung bình |
| RFM | Recency, Frequency, Monetary | E-commerce retention | Trung bình |
| ML Clustering | Kết hợp tất cả | Cá nhân hoá nâng cao | Khó |
Customer Segmentation là gì?
Customer Segmentation là quá trình chia tệp khách hàng thành các nhóm nhỏ hơn (segments) dựa trên đặc điểm chung, hành vi, hoặc nhu cầu tương tự.
Mục đích chính:
- Cá nhân hoá: Tùy chỉnh thông điệp, ưu đãi, sản phẩm cho từng segment
- Ưu tiên nguồn lực: Tập trung vào nhóm khách hàng có giá trị cao
- Hiểu khách hàng: Phân tích sâu từng nhóm để ra quyết định dựa trên dữ liệu
Theo Gartner, 95% khách hàng sẵn sàng tương tác nhiều hơn với thương hiệu biết cá nhân hoá trải nghiệm mà vẫn tôn trọng quyền riêng tư. Đây là lý do customer segmentation không chỉ là công cụ marketing mà còn là nền tảng của chiến lược Data Platform hiện đại.
So sánh: gửi đại trà vs Segmentation
Vấn đề với gửi đại trà:
Campaign: "Giảm 50% tất cả sản phẩm!"
Kết quả:
- Khách mới: 5% conversion (giá rẻ thu hút)
- Khách VIP: 1% conversion (không cần giảm giá, thậm chí khó chịu)
- Khách sắp rời: 2% conversion (cần re-engagement, không phải giảm giá)
Tổng: 2.5% conversion
Với Customer Segmentation:
Segment 1: Khách mới
→ Email: "Chào mừng! Giảm 20% đơn hàng đầu tiên"
→ Conversion: 15%
Segment 2: Khách VIP
→ Email: "Bạn được quyền truy cập sớm bộ sưu tập mới"
→ Conversion: 12%
Segment 3: Khách sắp rời
→ Email: "Chúng tôi nhớ bạn! Đây là những gì mới + gợi ý riêng cho bạn"
→ Conversion: 8%
Tổng: 11.7% conversion (gấp 4.7 lần!)
Khi nào nên segment?
Nên segment khi:
- Có đủ khách hàng (trên 1.000 khách hàng hoạt động)
- Tệp khách hàng đa dạng (không phải tất cả giống nhau)
- Có nguồn lực để cá nhân hoá cho từng segment
- Có dữ liệu để phân nhóm (hành vi, nhân khẩu học...)
Chưa cần segment khi:
- Quá ít khách hàng (dưới 500)
- Khách hàng rất đồng nhất
- Không có cách cá nhân hoá (sản phẩm/thông điệp giống nhau cho tất cả)
Các phương pháp Customer Segmentation
Demographic Segmentation (Đơn giản nhất)
Phân nhóm theo tuổi, giới tính, thu nhập, trình độ học vấn, nghề nghiệp.
SELECT
CASE
WHEN age BETWEEN 18 AND 24 THEN 'Gen Z'
WHEN age BETWEEN 25 AND 40 THEN 'Millennial'
WHEN age BETWEEN 41 AND 56 THEN 'Gen X'
WHEN age > 56 THEN 'Boomer'
END AS age_segment,
gender,
COUNT(*) AS customer_count,
AVG(lifetime_value) AS avg_ltv
FROM customers
GROUP BY age_segment, gender
ORDER BY avg_ltv DESC;
Ứng dụng: Fashion e-commerce phân nhóm theo giới tính và tuổi để cá nhân hoá trang chủ. Ngân hàng phân theo thu nhập để gợi ý sản phẩm phù hợp (tiết kiệm vs đầu tư).
Hạn chế: Demographic không dự đoán hành vi tốt — hai người cùng tuổi, cùng giới tính có thể có hành vi mua hàng hoàn toàn khác nhau.
Behavioral Segmentation (Mạnh nhất)
Phân nhóm theo lịch sử mua hàng, mức độ sử dụng sản phẩm, feature adoption, và mức độ tương tác. Đây là phương pháp được khuyến nghị cho các doanh nghiệp đã có hệ thống Data Platform thu thập dữ liệu hành vi.
WITH user_activity AS (
SELECT
user_id,
COUNT(DISTINCT DATE(event_timestamp)) AS active_days_last_30,
COUNT(*) AS total_events_last_30
FROM events
WHERE event_timestamp >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY user_id
)
SELECT
CASE
WHEN active_days_last_30 >= 20 THEN 'Power User'
WHEN active_days_last_30 BETWEEN 10 AND 19 THEN 'Regular User'
WHEN active_days_last_30 BETWEEN 1 AND 9 THEN 'Casual User'
ELSE 'Inactive'
END AS engagement_segment,
COUNT(*) AS user_count,
AVG(total_events_last_30) AS avg_events
FROM user_activity
GROUP BY engagement_segment;
Ứng dụng phổ biến:
- SaaS: Power users → upsell tính năng premium
- E-commerce: Người mua thường xuyên → chương trình VIP
- Mobile app: Người dùng ít tương tác → chiến dịch re-engagement
RFM Analysis: phương pháp phổ biến nhất cho E-commerce
RFM là gì?
Theo Springer Nature (2023), RFM analysis xuất hiện trong 80% các nghiên cứu về customer segmentation và là phương pháp feature selection phổ biến nhất. RFM phân tích khách hàng dựa trên 3 yếu tố:
- Recency (R): Mua hàng gần đây nhất khi nào? (số ngày kể từ đơn cuối)
- Frequency (F): Mua hàng bao nhiêu lần? (tổng số đơn hàng)
- Monetary (M): Tổng chi tiêu bao nhiêu? (tổng doanh thu)
Tại sao RFM hiệu quả?
- Đơn giản, dễ hiểu và giải thích cho stakeholders
- Chỉ cần dữ liệu giao dịch (không cần Machine Learning)
- Đã được chứng minh hiệu quả qua hơn 80 năm trong direct marketing
- Theo Admetrics (2026), retargeting segment 5-5-5 có thể đạt ROAS gấp 2 lần so với campaign chung
SQL tính RFM Scores
WITH rfm_calc AS (
SELECT
customer_id,
DATEDIFF(CURRENT_DATE, MAX(order_date)) AS recency,
COUNT(DISTINCT order_id) AS frequency,
SUM(order_value) AS monetary
FROM orders
WHERE order_date >= CURRENT_DATE - INTERVAL '365 days'
GROUP BY customer_id
),
rfm_scores AS (
SELECT
customer_id,
recency,
frequency,
monetary,
-- Recency: Càng gần đây, score càng cao
NTILE(5) OVER (ORDER BY recency DESC) AS r_score,
-- Frequency: Càng nhiều lần, score càng cao
NTILE(5) OVER (ORDER BY frequency ASC) AS f_score,
-- Monetary: Càng chi nhiều, score càng cao
NTILE(5) OVER (ORDER BY monetary ASC) AS m_score
FROM rfm_calc
)
SELECT
customer_id,
recency,
frequency,
monetary,
r_score,
f_score,
m_score,
CONCAT(r_score, f_score, m_score) AS rfm_score
FROM rfm_scores;
Phân nhóm 11 RFM Segments
SELECT
CASE
WHEN r_score >= 4 AND f_score >= 4 AND m_score >= 4 THEN 'Champions'
WHEN r_score >= 3 AND f_score >= 3 AND m_score >= 3 THEN 'Loyal Customers'
WHEN r_score >= 4 AND f_score <= 2 AND m_score <= 2 THEN 'New Customers'
WHEN r_score >= 3 AND f_score <= 2 AND m_score <= 2 THEN 'Promising'
WHEN r_score >= 3 AND f_score >= 3 AND m_score <= 2 THEN 'Need Attention'
WHEN r_score >= 4 AND f_score <= 1 AND m_score <= 1 THEN 'About to Sleep'
WHEN r_score <= 2 AND f_score >= 3 AND m_score >= 3 THEN 'At Risk'
WHEN r_score <= 2 AND f_score >= 4 AND m_score >= 4 THEN 'Cant Lose Them'
WHEN r_score <= 1 AND f_score >= 2 AND m_score >= 2 THEN 'Hibernating'
WHEN r_score <= 2 AND f_score <= 2 AND m_score <= 2 THEN 'Lost'
ELSE 'Others'
END AS rfm_segment,
COUNT(*) AS customer_count,
AVG(monetary) AS avg_monetary,
SUM(monetary) AS total_revenue
FROM rfm_scores
GROUP BY rfm_segment
ORDER BY total_revenue DESC;
Kết quả ví dụ cho một sàn e-commerce VN:
| Segment | Số lượng | Recency TB | Frequency TB | Monetary TB | Tổng doanh thu |
|---|---|---|---|---|---|
| Champions | 500 | 15 ngày | 25 đơn | 100M VNĐ | 50 tỷ |
| Loyal Customers | 1.200 | 45 ngày | 15 đơn | 50M VNĐ | 60 tỷ |
| At Risk | 800 | 150 ngày | 18 đơn | 60M VNĐ | 48 tỷ |
| New Customers | 2.000 | 10 ngày | 1 đơn | 2M VNĐ | 4 tỷ |
| Lost | 3.000 | 300 ngày | 8 đơn | 24M VNĐ | 72 tỷ |
Hành động cho từng RFM Segment
Champions (R=5, F=5, M=5):
- Hành động: Tri ân, quyền truy cập sớm, đãi ngộ VIP
- Email: "Cảm ơn bạn! Xem trước bộ sưu tập mới trước 24 giờ"
- Ưu đãi: Miễn phí vận chuyển vĩnh viễn, early access
At Risk (R=1-2, F=3-5, M=3-5):
- Hành động: Re-engage ngay! (khách hàng giá trị cao đang rời đi)
- Email: "Chúng tôi nhớ bạn! Có gì chúng tôi làm chưa tốt?" + ưu đãi cá nhân
- Ưu đãi: Voucher giảm 15-25%, khảo sát kèm quà
New Customers (R=4-5, F=1, M=1-2):
- Hành động: Onboarding, thúc đẩy đơn hàng thứ hai
- Email: "Chào mừng! Đây là cách tận dụng tốt nhất sản phẩm"
- Ưu đãi: Giảm 10% cho đơn hàng thứ hai
Lost (R=1, F=1-2, M=1-2):
- Hành động: Win-back mạnh tay hoặc dừng chi phí
- Email: "Cơ hội cuối! Giảm 30% để quay lại"
- Ưu đãi: Giảm sâu 30-50% hoặc loại khỏi danh sách
K-Means Clustering: phương pháp Machine Learning
Khi nào dùng K-Means?
RFM rất tốt cho e-commerce, nhưng K-Means mạnh hơn khi:
- Nhiều features (trên 3): Demographics + Behavioral + Firmographic
- Patterns phức tạp, không rõ ràng bằng rule-based
- Muốn phát hiện hidden segments mà RFM không thấy
Nghiên cứu trên ResearchGate (2025) cho thấy kết hợp RFM với Hierarchical Clustering cho Silhouette Score 0.47 và Calinski-Harabasz Index 3.787, tốt hơn K-Means đơn thuần.
Triển khai K-Means bằng Python
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
# Load dữ liệu khách hàng
df = pd.read_sql("""
SELECT
customer_id, recency, frequency, monetary,
avg_order_value, total_sessions,
avg_session_duration, products_viewed
FROM customer_features
""", conn)
features = ['recency', 'frequency', 'monetary', 'avg_order_value',
'total_sessions', 'avg_session_duration', 'products_viewed']
X = df[features]
# Chuẩn hoá features (quan trọng cho K-Means!)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# Elbow method để tìm K tối ưu
inertias = []
for k in range(2, 11):
kmeans = KMeans(n_clusters=k, random_state=42, n_init=10)
kmeans.fit(X_scaled)
inertias.append(kmeans.inertia_)
# Chọn K=5 dựa trên elbow curve
optimal_k = 5
kmeans = KMeans(n_clusters=optimal_k, random_state=42, n_init=10)
df['cluster'] = kmeans.fit_predict(X_scaled)
# Phân tích từng cluster
cluster_summary = df.groupby('cluster')[features].mean()
print(cluster_summary)
Đặt tên và phân tích Cluster
Sau khi chạy K-Means, bước quan trọng nhất là đặt tên có ý nghĩa cho từng cluster dựa trên đặc điểm:
for cluster_id in range(optimal_k):
cluster_data = df[df['cluster'] == cluster_id]
print(f"Cluster {cluster_id}: {len(cluster_data):,} khách hàng")
print(f" Recency TB: {cluster_data['recency'].mean():.0f} ngày")
print(f" Frequency TB: {cluster_data['frequency'].mean():.1f} đơn")
print(f" Monetary TB: {cluster_data['monetary'].mean():,.0f} VNĐ")
# Gán tên dựa trên đặc điểm
if cluster_data['recency'].mean() < 30 and cluster_data['frequency'].mean() > 20:
print(" → Champions")
elif cluster_data['recency'].mean() > 120 and cluster_data['frequency'].mean() > 10:
print(" → At Risk")
elif cluster_data['recency'].mean() < 30 and cluster_data['frequency'].mean() <= 2:
print(" → New Customers")
Case Study: E-commerce Việt Nam — RFM Segmentation
Bối cảnh
Một sàn e-commerce tại Việt Nam với hơn 10 triệu người dùng gặp vấn đề:
- Trước đây: Gửi khuyến mãi đại trà cho tất cả người dùng
- Kết quả: Email open rate chỉ 2%, tỷ lệ huỷ đăng ký cao
Triển khai RFM
Bước 1: Tính RFM scores cho toàn bộ user base
Bước 2: Phân nhóm và xây dựng chiến dịch riêng
| Segment | Quy mô | Hành động | Kênh | Ưu đãi |
|---|---|---|---|---|
| Champions | 500K (5%) | Tri ân | Email, App push | Miễn phí vận chuyển, early access |
| Loyal | 1.5M (15%) | Upsell | Bundle deals, giảm 10% | |
| At Risk | 800K (8%) | Win-back | Email, SMS, Ads | Giảm 20%, gợi ý cá nhân |
| New | 3M (30%) | Onboarding | App, Email | Giảm 15% đơn thứ 2 |
| Lost | 4.2M (42%) | Win-back mạnh hoặc dừng | SMS (1 lần) | Giảm 40% hoặc loại khỏi list |
Bước 3: Email cá nhân hoá theo segment
Email cho Champions:
Tiêu đề: [VIP] Bạn được chọn trước 24h!
Nội dung: Cảm ơn vì đã là khách hàng thân thiết!
Sản phẩm mới sẽ mở bán ngày mai, nhưng bạn có thể mua NGAY BÂY GIỜ.
[Mua Ngay]
Email cho At Risk:
Tiêu đề: Chúng tôi nhớ bạn! Voucher 20% đặc biệt
Nội dung: Bạn đã không mua hàng 3 tháng rồi.
Có gì chúng tôi làm chưa tốt không?
Đây là voucher 20% để bạn quay lại thử.
[Mua Hàng] [Góp Ý]
Kết quả sau 3 tháng
| Chỉ số | Trước | Sau | Thay đổi |
|---|---|---|---|
| Email Open Rate | 2% | 18% | +800% |
| Click Rate | 0.5% | 4.2% | +740% |
| Conversion Rate | 1.2% | 6.8% | +467% |
| Tỷ lệ huỷ đăng ký | 0.8% | 0.2% | -75% |
| Doanh thu/email | 3.500 VNĐ | 28.000 VNĐ | +700% |
Kết quả này phù hợp với dữ liệu từ Braze: RFM segmentation giúp giảm chi phí marketing đáng kể bằng cách tập trung ngân sách vào các nhóm có khả năng chuyển đổi cao nhất.
Case Study: SaaS Startup — Behavioral Clustering
Bối cảnh
Một công ty SaaS B2B (công cụ quản lý dự án) với 50.000 người dùng muốn tăng tỷ lệ nâng cấp từ gói miễn phí sang trả phí.
Phân tích K-Means
Chạy K-Means clustering với 7 features hành vi, phát hiện 4 nhóm chính:
Cluster "Power Users" (5%, 2.500 người):
- Nhiều dự án (trung bình 15), đội nhóm lớn (trung bình 20 thành viên)
- Đã trả phí → Hành động: upsell gói Enterprise
Cluster "Growing Teams" (15%, 7.500 người):
- Dự án vừa (trung bình 5), đội nhỏ (trung bình 8 thành viên)
- Gói miễn phí, sắp chạm giới hạn → Hành động: chiến dịch nâng cấp
Cluster "Solo Users" (60%, 30.000 người):
- Ít dự án (trung bình 2), không mời đội nhóm
- Tương tác thấp → Hành động: nội dung giáo dục, onboarding
Cluster "Churned" (20%, 10.000 người):
- Tạo tài khoản nhưng không sử dụng
- Chưa kích hoạt → Hành động: chiến dịch re-onboarding
Kết quả
Tập trung vào nhóm "Growing Teams" với chiến dịch nâng cấp có mục tiêu:
- In-app: "Đội ngũ bạn đang phát triển! Nâng cấp để mở khoá dự án không giới hạn"
- Ưu đãi: Giảm 20% năm đầu tiên
- Kết quả: Tỷ lệ nâng cấp 25% (so với 2% trước đó)
MRR tăng từ $200K → $350K (+75%) trong 6 tháng nhờ tập trung vào segment có ROI cao nhất.
Best Practices
Bắt đầu đơn giản, nâng dần
Giai đoạn 1: Demographic/Geographic (tuần 1)
Giai đoạn 2: RFM Analysis (tuần 2-3)
Giai đoạn 3: Behavioral segments (tháng 2)
Giai đoạn 4: ML Clustering (tháng 3+)
Segment phải có hành động cụ thể
Segment tệ: "Người dùng thích cả mèo và chó" → không biết làm gì với thông tin này.
Segment tốt: "Khách hàng giá trị cao đang có nguy cơ rời đi" → chiến dịch win-back với ưu đãi cá nhân.
Số lượng segment cân đối
- Quá nhiều (50 segments): Không đủ nguồn lực cá nhân hoá từng nhóm
- Quá ít (2 segments): Bỏ lỡ sự khác biệt quan trọng
- Quy tắc: 5-10 segments là phù hợp cho hầu hết doanh nghiệp
Cập nhật định kỳ
Theo Gartner, doanh nghiệp thành công review và điều chỉnh chiến lược segmentation mỗi 90 ngày để theo kịp thay đổi hành vi khách hàng. Cụ thể:
- Chạy lại RFM scores hàng tháng
- Review segment composition hàng quý
- Đánh giá lại toàn bộ framework mỗi 6 tháng
Quyền riêng tư và đạo đức
- Công khai việc phân nhóm trong Privacy Policy
- Cho phép khách hàng từ chối marketing cá nhân hoá
- Không phân biệt đối xử (ví dụ: tăng giá cho nhóm nhân khẩu học cụ thể)
- Không sử dụng dữ liệu nhạy cảm (sức khoẻ, tôn giáo...)
Công cụ và Tech Stack
Phân tích và Segmentation
- SQL + Python: BigQuery/Snowflake cho RFM, Python (Pandas, Scikit-learn) cho clustering
- BI Tools: Looker, Tableau, Metabase để trực quan hoá segments
- Data Pipeline: dbt để tự động hoá tính toán segment hàng ngày
Kích hoạt (Activation)
- Braze: Segmentation nâng cao, multi-channel (chi phí cao)
- Customer.io: Behavioral triggers, chiến dịch theo segment (chi phí vừa)
- Mailchimp: Segmentation cơ bản (chi phí thấp)
Customer Data Platform
Nếu doanh nghiệp của bạn cần thu thập và đồng bộ dữ liệu khách hàng từ nhiều nguồn, hãy cân nhắc Customer Data Platform (CDP) như Segment, RudderStack, hoặc mParticle.
Kết luận
Customer Segmentation là nền tảng của cá nhân hoá và targeted marketing. Thay vì gửi cùng một thông điệp cho tất cả, segmentation giúp bạn hiểu và phục vụ từng nhóm khách hàng tốt hơn.
Tóm tắt
- Bắt đầu với RFM — đơn giản nhất, hiệu quả nhất cho e-commerce
- Thêm behavioral data khi có đủ nguồn lực
- Dùng ML Clustering cho cá nhân hoá nâng cao (khi có đủ dữ liệu và đội ngũ)
- Mỗi segment cần hành động rõ ràng — segment không actionable là segment vô nghĩa
- Cập nhật định kỳ — hành vi khách hàng thay đổi, segments phải theo kịp
Chỉ số cần theo dõi
| Chỉ số | Định nghĩa | Mục tiêu |
|---|---|---|
| Conversion Rate theo segment | Tỷ lệ chuyển đổi của từng nhóm | Tăng theo thời gian |
| LTV theo segment | Giá trị vòng đời của từng nhóm | Phát triển nhóm giá trị cao |
| Segment Movement | Tỷ lệ khách hàng di chuyển lên/xuống | Nhiều khách di chuyển lên |
| Campaign ROI theo segment | ROI chiến dịch của từng nhóm | Tập trung vào nhóm ROI cao |
Bước tiếp theo
Sau khi triển khai Customer Segmentation:
- Customer Churn Prediction: Dự đoán khách hàng sắp rời, tính LTV theo segment
- Cohort Analysis: Phân tích hành vi theo nhóm thời gian
- Funnel Analysis: Tối ưu hoá conversion journey cho từng segment
Carptech — giải pháp Customer Segmentation cho doanh nghiệp Việt Nam
Tại Carptech, chúng tôi giúp doanh nghiệp Việt Nam xây dựng chiến lược segmentation từ đầu:
- Phân tích Segmentation: RFM, behavioral, ML clustering
- Data Pipeline: Tự động tính toán segment hàng ngày với modern data stack
- Activation: Tích hợp với email tools, CRM, ad platforms
- Dashboard: Theo dõi segment real-time với Looker, Metabase




