用途
该技能用于预测哪些客户存在流失风险。它通过分析客户的购买模式与其历史购买频率,为每位复购客户计算预期下次购买日期,再根据客户逾期未购买的程度进行流失风险评分。该技能为只读操作,不会执行任何数据变更。
主要能力
- 按客户分组订单,计算每位客户的订单日期、平均购买间隔、距上次购买天数、总消费额和订单数量。
- 基于逾期比率(距上次购买天数 / 平均购买间隔)计算 0-100 的流失风险评分,并划分风险等级:
- 逾期比率 ≤ 1.0 → 评分 0-20(活跃)
- 逾期比率 1.0–1.5 → 评分 20-50(降温)
- 逾期比率 1.5–2.5 → 评分 50-80(有风险)
- 逾期比率 > 2.5 → 评分 80-100(可能已流失)
- 估算客户生命周期价值(CLV)= 总消费额 / 客户年龄(年)× 预期剩余年数。
- 估算风险收入 = 对有风险客户求(年消费额 × 流失概率)之和。
- 输出 CSV 文件,包含客户 ID、邮箱、姓名、订单数、总消费、平均购买间隔天数、距上次购买天数、逾期比率、流失风险评分、风险等级和预期年价值等列。
使用方式
前置条件:
- 已认证的 Shopify CLI 会话:
shopify store auth --store <domain> --scopes read_orders,read_customers - API 权限范围:
read_orders、read_customers
参数:
store(字符串,必填):店铺域名。days_back(整数,可选,默认 365):用于购买模式分析的历史窗口。min_orders(整数,可选,默认 2):计算购买间隔所需的最低订单数(需 2 单以上才能计算频率)。risk_threshold(浮点数,可选,默认 1.5):标记为有风险前的平均购买间隔倍数。format(字符串,可选,默认 human):输出格式,human 或 json。
工作流程:
- 查询订单(orders:query),按
created_at:>='<NOW - days_back days>'过滤,每页 250 条,选取 createdAt、totalPriceSet、customer 信息,并使用分页游标。 - 按客户分组订单,计算每位客户的订单日期、平均购买间隔、距上次购买天数、总消费额和订单数量。
- 查询客户(customers:query)进行信息补充,针对有风险和可能已流失的客户获取联系方式、标签和总消费额。
- 计算流失风险评分并划分等级。
- 估算风险收入。
GraphQL 操作(已针对 api_version 2025-01 验证):
# orders:query
query OrdersForChurnAnalysis($query: String!, $after: String) {
orders(first: 250, after: $after, query: $query) {
edges {
node {
createdAt
totalPriceSet { shopMoney { amount currencyCode } }
customer {
id
email
firstName
lastName
numberOfOrders
}
}
}
pageInfo { hasNextPage endCursor }
}
}
# customers:query
query AtRiskCustomers($ids: [ID!]!) {
nodes(ids: $ids) {
... on Customer {
id
email
firstName
lastName
totalSpentV2 { amount currencyCode }
numberOfOrders
tags
createdAt
}
}
}
会话跟踪:技能要求在启动、每步执行后和完成时输出指定格式的提示信息。
输出格式:生成 CSV 文件 churn_risk_<YYYY-MM-DD>.csv,列包括:customer_id, email, first_name, last_name, order_count, total_spent, avg_purchase_interval_days, days_since_last_order, overdue_ratio, churn_risk_score, risk_segment, expected_annual_value。
适用场景
- 识别有流失风险和可能已流失的客户群体,以便采取挽回措施。
- 与客户挽回技能配合,对有风险和可能已流失的客户采取行动。
- 与 RFM 客户细分技能配合,获得更全面的客户健康视图。
- 将高风险客户导出到邮件营销平台,进行自动化挽回序列。
- 高价值流失客户(消费额前 20%)应获得个性化触达。
限制
- 只读技能,不执行任何数据变更。
- 仅对订单数达到
min_orders(默认 2)的客户进行评分,单次购买客户因无法计算购买间隔而被排除。 - 访客订单因无客户关联而被跳过,无法建立客户档案。
- 遇到 API 限流(THROTTLED)时,需等待 2 秒并最多重试 3 次。
- 可根据产品类型调整
risk_threshold:消耗品(1.3)、时尚(1.5)、家具(2.0)。