一键导入
shopify-admin-churn-risk-scorer
Read-only: scores customers by churn probability based on purchase recency, frequency decay, and expected repurchase intervals.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Read-only: scores customers by churn probability based on purchase recency, frequency decay, and expected repurchase intervals.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Master skill collection for Shopify store operators. Provides access to all merchandising, marketing, support, and operations capabilities.
Edit the theme's robots.txt.liquid to explicitly allow AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, OAI-SearchBot, Amazonbot) so AI assistants are permitted to read the catalog.
Rewrite thin product descriptions into structured, fact-rich copy (materials, fit, use-cases, the words shoppers actually type) so AI agents have something concrete to quote and match.
Generate and set descriptive alt text on product images so AI agents (which can't 'see' pixels) can understand and recommend what each product looks like.
Generate and publish an /llms.txt guide (brand summary, flagship products, key policies, contact) via a theme template so AI assistants get a curated, machine-readable map of the store.
Define and populate agentic-commerce metafields (material, attributes, key features, specs, sizing) so AI agents can filter and match products to specific shopper requirements.
| name | shopify-admin-churn-risk-scorer |
| role | customer-ops |
| description | Read-only: scores customers by churn probability based on purchase recency, frequency decay, and expected repurchase intervals. |
| toolkit | shopify-admin, shopify-admin-execution |
| api_version | 2025-01 |
| graphql_operations | ["customers:query","orders:query"] |
| status | stable |
| compatibility | Claude Code, Cursor, Codex, Gemini CLI |
Predicts which customers are at risk of churning by analyzing their purchase patterns against their historical buying frequency. Calculates an expected next-purchase date for each repeat customer, then scores churn risk based on how overdue they are. Read-only — no mutations.
shopify store auth --store <domain> --scopes read_orders,read_customersread_orders, read_customers| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| store | string | yes | — | Store domain |
| days_back | integer | no | 365 | Historical window for purchase pattern analysis |
| min_orders | integer | no | 2 | Minimum orders to calculate purchase interval (need 2+ for frequency) |
| risk_threshold | float | no | 1.5 | Multiplier of avg purchase interval before flagging as at-risk |
| format | string | no | human | Output format: human or json |
ℹ️ Read-only skill — no mutations are executed. Safe to run at any time.
For each customer with min_orders or more purchases:
OPERATION: orders — query
Inputs: query: "created_at:>='<NOW - days_back days>'", first: 250, select createdAt, totalPriceSet, customer { id, email, firstName, lastName }, pagination cursor
Expected output: All orders with customer association
Group orders by customer, calculate per customer:
OPERATION: customers — query (enrichment)
Inputs: Customer IDs for at-risk and likely-churned segments
Expected output: Contact details, tags, total spend
Calculate churn risk score and classify into segments
Estimate revenue at risk = sum of (annual_spend × churn_probability) for at-risk customers
# orders:query — validated against api_version 2025-01
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 — validated against api_version 2025-01
query AtRiskCustomers($ids: [ID!]!) {
nodes(ids: $ids) {
... on Customer {
id
email
firstName
lastName
totalSpentV2 { amount currencyCode }
numberOfOrders
tags
createdAt
}
}
}
Claude MUST emit the following output at each stage. This is mandatory.
On start, emit:
╔══════════════════════════════════════════════╗
║ SKILL: Churn Risk Scorer ║
║ Store: <store domain> ║
║ Started: <YYYY-MM-DD HH:MM UTC> ║
╚══════════════════════════════════════════════╝
After each step, emit:
[N/TOTAL] <QUERY|MUTATION> <OperationName>
→ Params: <brief summary of key inputs>
→ Result: <count or outcome>
On completion, emit:
For format: human (default):
══════════════════════════════════════════════
CHURN RISK REPORT (<days_back> days analyzed)
Repeat customers scored: <n>
─────────────────────────────
Active (score 0-20): <n> (<pct>%)
Cooling (score 20-50): <n> (<pct>%)
At Risk (score 50-80): <n> (<pct>%) ⚠️
Likely Churned (80-100): <n> (<pct>%) 🔴
Revenue at risk: $<amount>/year
Top at-risk by value:
<name> (<email>) Score: <n> Last order: <date> Lifetime: $<n>
Output: churn_risk_<date>.csv
══════════════════════════════════════════════
CSV file churn_risk_<YYYY-MM-DD>.csv with columns:
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
| Error | Cause | Recovery |
|---|---|---|
THROTTLED | API rate limit exceeded | Wait 2 seconds, retry up to 3 times |
| Single-purchase customers | Can't calculate interval | Exclude from scoring (need 2+ orders) |
| Guest orders | No customer linkage | Skip — cannot build customer profile |
customer-win-back skill to take action on At-Risk and Likely Churned segments.rfm-customer-segmentation for a more holistic view of customer health.risk_threshold based on your product type: consumables (1.3), fashion (1.5), furniture (2.0).