关于 customer-segmentation
面向电商营销团队的客户细分技能,说明如何依据购买行为建立客群并关联营销行动。涵盖 Shopify、WooCommerce、BigCommerce 和自定义方案,并介绍 RFM 分析与广告排除名单。
主要功能
- 01按购买行为建立客户细分
- 02使用 RFM 评分
- 03将细分映射到营销行动
- 04导出或同步客群数据
- 05建立广告抑制名单
适用场景
- 01按生命周期定制邮件营销
- 02识别高价值客户并邀请加入 VIP 计划
- 03排除已购买客户以减少广告浪费
- 04比较不同获客群体的留存情况
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ finsilabs/ awesome-ecommerce-skills --skill customer-segmentation安装后在 Claude Code 中输入/customer-segmentation确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
tile.jsonevals/cohort-retention-analysis-and-behavioral/criteria.jsontask.mdevals/rfm-scoring-and-segment-classification/criteria.jsontask.mdevals/segment-export-to-marketing-platforms-wi/criteria.jsontask.md详细介绍
客户细分
概述
客户细分是将客户群划分为购买行为相似的群组,以便精准定位营销活动、促销和产品推荐。Klaviyo、Omnisend 和 Metorik 均为 Shopify 和 WooCommerce 提供开箱即用的 RFM 风格细分,无需自定义 SQL。只有当平台工具不支持所需的细分逻辑时,才构建自定义细分系统。
何时使用此技能
- 按生命周期阶段(新客、活跃、存在流失风险、已流失)个性化电子邮件营销活动时
- 构建排除名单,避免对已转化客户浪费广告支出时
- 识别适合 VIP 计划和抢先体验活动的“优质”客户时
- 分析哪个获客群组的 90 天留存率最高时
- 将行为细分同步到广告平台(Meta、Google)时
核心说明
第 1 步:确定平台并选择合适的细分工具
| 平台 | 内置细分功能 | 推荐工具 |
|---|---|---|
| Shopify | 基础:Admin → Customers → Filters;高级:Klaviyo 或 Omnisend | 用于电子邮件 + SMS 的 Klaviyo;用于群组分析的 Lifetimely |
| WooCommerce | WooCommerce Analytics → Customers(基础筛选条件) | Klaviyo + WooCommerce 插件;或用于分析的 Metorik |
| BigCommerce | Customer Groups(基于层级);Analytics → Customers | 用于行为细分的 Klaviyo |
| Custom / Headless | 在 SQL 中构建 RFM 评分;同步到 Klaviyo 以便激活 | 当平台没有细分工具时必需 |
第 2 步:平台特定设置
Shopify
选项 A:Shopify Admin 细分(基础、免费)
- 前往 Admin → Customers
- 使用筛选栏,根据以下条件创建细分:
- 订单数量、消费总额、上次下单日期
- 电子邮件订阅状态、标签、位置
- 已购买的产品
- 将筛选条件保存为客户细分
- 将细分导出为 CSV,用于广告或电子邮件营销活动
选项 B:Klaviyo(推荐用于生命周期细分)
Klaviyo 会自动与 Shopify 同步,并基于实际购买数据提供 RFM 风格的细分。
要在 Klaviyo 中创建的关键细分:
-
优质客户(价值高、购买频繁、近期有购买):
- 规则:
Ordered at least 3 timesANDLast order within 60 daysANDTotal spent > $200 - 操作:提供新产品抢先体验、VIP 福利和推荐计划邀请
- 规则:
-
存在流失风险的高价值客户:
- 规则:
Total spent > $200ANDLast order 90–180 days ago - 操作:通过个性化优惠开展挽回自动化流程
- 规则:
-
近期首次购买客户:
- 规则:
Order count equals 1ANDFirst order within 30 days - 操作:发送新手引导序列,鼓励客户进行第二次购买
- 规则:
-
已流失客户:
- 规则:
Last order more than 180 days agoANDOrder count >= 2 - 操作:开展重新互动营销活动,传达“我们想你了”的信息
- 规则:
-
从未购买的订阅者:
- 规则:
Email subscriberANDOrder count equals 0 - 操作:发送欢迎系列邮件,展示社会认同并提供首单优惠
- 规则:
在 Klaviyo 中创建细分:
- 前往 Lists & Segments → Create Segment
- 使用筛选条件构建器添加条件——Klaviyo 提供 150 多种预置筛选条件类型,包括 Shopify 专属事件
- 清晰地为细分命名(例如,“高价值流失风险客户 — 90-180 天”)
- 在 Flow 触发器中使用该细分,或将其用作 Campaign 的受众
Klaviyo 预测分析(付费计划):
- Klaviyo 会自动计算每位客户的 Predicted CLV、Expected Date of Next Order 和 Churn Risk
- 在 Analytics → Predictive Analytics 下查看这些数据
- 将这些预测用作细分筛选条件,无需编写任何自定义代码
WooCommerce
选项 A:Metorik(推荐的分析平台)
- 安装 Metorik(通过 WooCommerce REST API 连接)
- 前往 Metorik → Segments → Create Segment
- 根据购买历史、产品偏好、地理位置等创建基于规则的细分
- Metorik 会自动计算 RFM 评分
- 将细分导出为 CSV,或直接同步到 Klaviyo/Mailchimp
选项 B:适用于 WooCommerce 的 Klaviyo
- 从 WordPress.org 安装 Klaviyo: Email Marketing for WooCommerce
- Klaviyo 会同步 WooCommerce 订单历史,并为所有客户创建个人资料
- 按照上文 Shopify 部分所述,创建相同的生命周期细分
BigCommerce
用于分层细分的客户群组:
- 前往 Customers → Customer Groups → Add Group
- 根据购买行为规则创建群组:
- “VIP” — 生命周期消费超过 $500 的客户
- “Repeat Buyers” — 订单数达到 3 笔或以上的客户
- 设置群组专属定价、类别访问权限或配送规则
使用 Klaviyo 进行行为细分:
- 安装 Klaviyo for BigCommerce 应用
- 连接你的 BigCommerce 商店
- 在 Klaviyo 中根据购买历史和事件数据创建行为细分
自定义 / 无头架构
使用 SQL 构建 RFM 评分,并同步到 ESP 以用于营销触达:
-- PostgreSQL: Calculate RFM scores for all customers
WITH customer_rfm AS (
SELECT
customer_id,
EXTRACT(EPOCH FROM (NOW() - MAX(created_at))) / 86400 AS recency_days,
COUNT(id) AS frequency,
SUM(subtotal_cents) / 100.0 AS monetary
FROM orders
WHERE status NOT IN ('cancelled', 'refunded')
GROUP BY customer_id
),
rfm_scored AS (
SELECT
customer_id,
recency_days, frequency, monetary,
NTILE(5) OVER (ORDER BY recency_days DESC) AS r_score, -- Lower recency = higher score
NTILE(5) OVER (ORDER BY frequency ASC) AS f_score,
NTILE(5) OVER (ORDER BY monetary ASC) AS m_score
FROM customer_rfm
)
SELECT
customer_id, r_score, f_score, m_score,
r_score + f_score + m_score AS rfm_total,
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 THEN 'recent_customers'
WHEN r_score <= 2 AND f_score >= 4 AND m_score >= 4 THEN 'cannot_lose_them'
WHEN r_score <= 2 AND f_score >= 3 THEN 'at_risk'
WHEN r_score = 1 AND f_score <= 2 THEN 'lost'
ELSE 'needs_attention'
END AS segment
FROM rfm_scored;
// Sync a segment to Klaviyo — batched at 100 profiles per request
export async function syncSegmentToKlaviyo(segmentCustomers: Customer[], klaviyoListId: string) {
const BATCH_SIZE = 100;
for (let i = 0; i < segmentCustomers.length; i += BATCH_SIZE) {
const batch = segmentCustomers.slice(i, i + BATCH_SIZE);
await fetch(`https://a.klaviyo.com/api/lists/${klaviyoListId}/relationships/profiles/`, {
method: 'POST',
headers: {
Authorization: `Klaviyo-API-Key ${process.env.KLAVIYO_PRIVATE_KEY}`,
'Content-Type': 'application/json',
revision: '2024-10-15',
},
body: JSON.stringify({
data: batch.map(c => ({
type: 'profile',
attributes: { email: c.email, first_name: c.firstName, last_name: c.lastName },
})),
}),
});
}
}
// Export suppression list for Meta Ads — hash emails before sending
export async function exportSuppressionListForMeta(lookbackDays = 30): Promise<string[]> {
const recentBuyers = await db.orders.findMany({
where: { createdAt: { gte: new Date(Date.now() - lookbackDays * 86400000) }, status: 'completed' },
select: { customerEmail: true },
distinct: ['customerEmail'],
});
return recentBuyers.map(({ customerEmail }) => {
const { createHash } = require('crypto');
return createHash('sha256').update(customerEmail.toLowerCase().trim()).digest('hex');
});
}
第 3 步:将细分映射到行动
每个细分都应有明确的营销行动:
| 细分 | 推荐行动 |
|---|---|
| 重要客户 | VIP 优先体验、邀请加入推荐计划,无需提供挽回折扣 |
| 忠实客户 | 加入忠诚度计划、邀请撰写评价、向上销售至下一级 |
| 近期首次购买客户 | 第二次购买邮件系列(在首次下单 7 天后发送) |
| 有流失风险 — 高价值 | 发送个性化挽回消息,并表达关切:“好久不见” |
| 不容流失的客户 | 直接联系,提供力度较大的优惠(8 折),由创始人发送私人邮件 |
| 已流失 / 流失客户 | 以低成本重新互动(新闻简报、产品公告);从活跃营销活动中移除 |
第 4 步:为付费广告建立排除名单
将最近购买过的客户上传为 Meta 和 Google 的排除名单,以免浪费获客预算:
- Meta Business Manager:Audiences → Create Audience → Customer List → Upload hashed email CSV
- Google Ads:Audience Manager → Customer Match → Upload email list
- 每月刷新这些排除名单
最佳实践
- 每晚刷新细分 — Klaviyo 和 Metorik 会自动执行;对于自定义方案,每晚运行 RFM SQL
- 从 RFM 开始,再叠加行为信号 — 购买时间、频率和金额是最可靠的基础;随着数据增多,再加入类别偏好和渠道偏好
- 始终同时建立排除名单和定向名单 — 向活跃客户发送重新互动营销活动会浪费预算,也会惹恼他们
- 发送营销活动前验证细分规模 — 细分结果为 0 位客户通常表示逻辑有误;设置最低阈值检查
- 跟踪不同细分对各类优惠的响应情况 — 重要客户很少需要折扣;与打折相比,免费配送可能更能打动有流失风险的客户
常见问题
| 问题 | 解决方案 |
|---|---|
| 重要客户细分每月都在缩小 | 重要客户需要近期消费且购买频率高 — 客户自然会逐渐不再符合条件;可用“忠实客户”细分补充,以便长期维护客户关系 |
| RFM 评分受到一笔金额特别大的订单影响 | Klaviyo 的预测 CLV 会平滑这一影响;自定义方案应在金额评分中使用订单金额中位数,而不是总消费额 |
| 同步细分到 Klaviyo 后创建了重复个人资料 | 同步时始终以电子邮件作为主键进行匹配;如果存在重复项,请使用 Klaviyo 的个人资料合并功能 |
| 群组分析显示留存率下降,但原因不明 | 按获客渠道细分群组,以确定是否有特定渠道带来的客户质量较低 |
Related Skills
- @customer-lifetime-value
- @personalization-engine
- @referral-program
评论
支持 Markdown