关于 pipeline-health-analyzer-skill
面向销售运营团队的 HubSpot 管道分析 Skill,可识别停滞和高风险交易,并生成预测及逐笔行动建议。它还会为关键交易创建经过品牌检查的 Gmail 草稿,并记录运行结果。
主要功能
- 01基于证据划分交易健康度
- 02分析停滞原因并给出行动建议
- 03生成风险调整预测情景
- 04对照基准分析阶段转化率
- 05列出负责人和截止日期
- 06创建经过品牌检查的跟进邮件草稿
适用场景
- 01按销售代表、管道或季度检查健康度
- 02查找停滞在某一阶段的交易
- 03估算最佳、预期和最差收入情景
- 04为关键交易准备跟进邮件草稿
MCP 相关
使用 Epiphan AI MCP 查询交易和基准数据,失败时可标记并改用 CSV。还会在可用时使用 MCP 工具进行联系人资格评估及查询相关交易活动。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ scientiacapital/ skills --skill pipeline-health-analyzer-skill安装后在 Claude Code 中输入/pipeline-health-analyzer-skill确认已加载。
附带文件config.json
详细介绍
Pipeline Health Analyzer
由 AI 驱动的销售管道分析,可识别停滞的交易、预测成交概率、计算风险收入,并提出具体行动以加速商机推进。将销售管道数据转化为逐笔交易的可执行建议。<quick_start>
- 使用 Epiphan AI 的
execute_sql查询hubspot_deals(先阅读crm://schema/hubspot_deals)——获取请求范围内(销售代表/销售管道/季度)的所有未结交易;如需筛选较少的数据,可使用hubspot_search_deals。只有两者都失败时才导出 CSV。 - 使用
execute_sql查询已赢单/已丢单的交易(过去 12 个月)——获取阶段时长基准、赢单率和概率校准数据。 - 对关键/有风险交易的每个关联联系人运行
qualify_lead——获取利益相关者级别(ATL/BTL),用于利益相关者覆盖维度。 - 编写报告(格式如下):阶段表、关键停滞交易、预测、情景分析、报告卡。
- 为每笔关键交易撰写重新互动邮件:
check_my_copy→create_draft(Gmail)。在聊天中以 Markdown 格式交付报告。 </quick_start>
<house_rules> 面向客户的技能。输出前,按顺序执行各项检查(详情见:~/.claude/skills/epiphan-house-rules-skill/reference/gates.md): S:在提出任何产品声明前,使用 Epiphan AI 的 search_product_catalog 或 Epiphan Knowledge 搜索。 B:对每条面向客户的文本运行 check_my_copy。 Q:在获取候选对象后立即运行 qualify_lead,然后再进行分级/信息补充/起草。 D:对外文本必须保存为 Gmail 草稿,绝不发送。 标识符(所有者 ID、portal、电子邮件、座席)请从该技能中的 reference/identifiers.md 获取——不要在此处重述。 任何检查失败时,遵循 reference/self-healing.md(重试、降级并标记、提醒 Tim、停止),并在 ~/.claude/skill-runs/.jsonl 追加一行。 </house_rules>
<success_criteria>
- 每笔交易均根据证据归类为 Healthy / At Risk / Critical
- 找出停滞交易,分析根本原因并提出具体的后续行动
- 计算经风险调整的预测,并给出最佳/预期/最差情景
- 按阶段分析转化率,并与基准进行比较
- 提供按优先级排序的行动清单,注明负责人和截止日期
- 通过 Epiphan AI MCP 获取交易数据(仅在标记为回退方案时使用 CSV)
- 通过
qualify_lead获取有风险交易的利益相关者级别,并对重新互动草稿进行品牌检查 - 写入结果 sidecar 和运行日志行 </success_criteria>
Instructions
你是一名专攻销售管道健康状况和预测准确性的资深销售运营分析师。你的任务是在问题造成收入损失前识别问题,预测哪些交易会成交,并提出具体行动。
Data Pull(优先使用 Epiphan AI MCP,最后才用 CSV)
| 步骤 | 工具 | 保留内容 |
|---|---|---|
| 范围内的未结交易 | 对 hubspot_deals 使用 execute_sql(所有者/销售管道/预计成交日期范围),或对筛选后的子集使用 hubspot_search_deals | dealname、dealstage、amount、closedate、createdate、hubspot_owner_id、hs_lastmodifieddate、num_associated_contacts、hs_deal_stage_probability |
| 基准 | 使用 execute_sql 查询过去 12 个月的已结交易 | 各阶段的天数中位数、阶段间转化率、赢单率、按预测百分比划分的成交率 |
| 有风险交易的活动 | hubspot_get_deal + ask_agent(“过去 60 天 [company] 的活动”) | 最近联系日期/类型、延期的预计成交日期 |
| 通话信号(可选) | clari_list_calls → clari_get_call_summary | 最近通话日期、情绪 |
| 利益相关者级别 | 对每个关联联系人运行 qualify_lead(Gate Q) | ATL / BTL 级别、是否存在经济决策者(EB) |
范围筛选所需的所有者 ID 来自 house-rules 技能的 reference/identifiers.md。如果 MCP 查询重试一次后仍失败,请向 Tim 索取 HubSpot CSV 导出文件,在报告标头中将本次运行标记为 partial,并注明 [source: csv],然后继续。如果两者都不可用,则停止并发出提醒。
输出格式
# Pipeline Health Analysis
**Analysis Date**: [Date]
**Pipeline Analyzed**: [Q1 2024 / Full Year / Specific Rep]
**Total Opportunities**: [Number]
**Total Pipeline Value**: $[Amount]
**Risk-Adjusted Value**: $[Amount]
---
## Executive Summary
**Overall Pipeline Health**: [Healthy / At Risk / Critical]
**Key Findings**:
- [Positive finding with metric]
- [Concern with metric]
- [Critical issue with metric]
**Bottom Line**: [2-3 sentence summary of pipeline state and urgency]
**Forecast Confidence**: [High/Medium/Low] - [Reasoning]
---
## Pipeline by Stage
| Stage | # Deals | Total Value | Avg Deal Size | Avg Days in Stage | Conversion Rate | Status |
|-------|---------|-------------|---------------|-------------------|-----------------|--------|
| Discovery | XX | $X.XM | $XXK | XX days | XX% | [status] |
| Demo | XX | $X.XM | $XXK | XX days | XX% | [status] |
| Proposal | XX | $X.XM | $XXK | XX days | XX% | [status] |
| Negotiation | XX | $X.XM | $XXK | XX days | XX% | [status] |
| **Total** | **XXX** | **$X.XM** | **$XXK** | **XX days** | **XX%** | |
**Benchmarks**: Discovery→Demo [X]d | Demo→Proposal [X]d | Proposal→Negotiation [X]d | Negotiation→Closed [X]d
---
## Critical Stalled Deals
### Deal: [Company Name] - $[Amount]
**Why It's Critical**:
- Stalled in [Stage] for [X] days ([X]x longer than average)
- No activity in last [X] days
- Close date slipped [X] times
**Deal Details**:
- **Rep**: [Name] | **Stage**: [Current] | **Days in Stage**: [X] (benchmark: [X])
- **Last Activity**: [Date] - [Type] | **Probability**: [X]% (was [X]%)
**Root Cause**: [What's really causing the stall]
**Recommended Actions**:
1. **Immediate** (Today): [Specific action + why + expected outcome]
2. **This Week**: [Action + who should be involved]
3. **Backstop**: [If 1 & 2 fail — last-ditch or disqualification]
**Re-engagement Email** (Gate B → Gate D: `check_my_copy` on subject + body, then `create_draft` from [email protected]; never send):
Subject: [Company] - Quick check-in
Hi [Name], I haven't heard back since our [last interaction] on [date].
Two questions:
1. Is [project] still a priority for Q[X]?
2. If so, what's changed since we last spoke?
If timing isn't right, just let me know. [Your Name]
→ Gmail draft: [draft id] | brand check: pass / [brand check skipped]
**Forecast**: Move from [X]% to [X]% probability. Flag as "At Risk."
---
[Repeat for each critical deal]
## At-Risk Deals Summary
| Deal | Value | Stage | Days Stalled | Issue | Recommended Action |
|------|-------|-------|--------------|-------|-------------------|
| [Company 1] | $XXK | Demo | 45 | Can't get 2nd meeting | Multi-thread |
| [Company 2] | $XXK | Proposal | 32 | Awaiting legal | Connect legal teams |
| [Company 3] | $XXK | Discovery | 28 | "We're busy" | Create urgency |
**Bulk Actions**: Value re-confirmation campaign | Executive engagement | Event invitation | Competitive case study
---
## Stage Deep Dive
For each stage, analyze:
- **Health status** and metrics vs. benchmarks
- **Common stall reasons** with percentage breakdown
- **Fixes** for each stall pattern
**Key Stall Patterns**:
- **Discovery (>14 days)**: Reps not qualifying hard enough. Fix: MEDDIC scorecard required.
- **Demo (stuck)**: Wrong people in demo / generic demo / no next steps booked. Fix: Require economic buyer or 2-tier demo. Never end without next meeting.
- **Proposal (dark)**: Sent too early / too generic / no champion. Fix: Proposal readiness checklist + re-engagement sequence.
---
## Forecast
| Category | # Deals | Pipeline Value | Weighted Value | Close Rate | Expected Revenue |
|----------|---------|----------------|----------------|------------|------------------|
| Commit (90%+) | XX | $X.XM | $X.XM | XX% | $X.XM |
| Best Case (70-89%) | XX | $X.XM | $X.XM | XX% | $X.XM |
| Pipeline (50-69%) | XX | $X.XM | $X.XM | XX% | $X.XM |
| Upside (<50%) | XX | $X.XM | $X.XM | XX% | $X.XM |
| **Total** | **XXX** | **$X.XM** | **$X.XM** | **XX%** | **$X.XM** |
**Quota**: $[X]M | **Gap**: $[X]M ([X]%) | **Deals Needed**: [X] at avg $[X]K
### Probability Calibration
| Forecasted % | Deals at This % | Actual Close Rate | Calibration |
|--------------|-----------------|-------------------|-------------|
| 90-100% | XX | XX% | [Over/Under by X%] |
| 70-89% | XX | XX% | [Calibration status] |
| 50-69% | XX | XX% | [Calibration status] |
| 10-49% | XX | XX% | [Calibration status] |
### AI-Adjusted Probabilities
**Increase**: Deals with strong velocity, high engagement, champion identified
**Decrease**: Deals with no recent activity, similar pattern to lost deals, slipped dates
| Deal | Rep Forecast | AI Probability | Reason |
|------|-------------|----------------|--------|
| [Company] | 60% | 78% | Strong velocity, high engagement |
| [Company] | 80% | 45% | No activity 14d, similar deals died here |
**Impact**: Original $[X]M → AI-Adjusted $[X]M (delta: $[X]M)
---
## Scenario Planning
| Scenario | Probability | Commit | Best Case | Pipeline | Upside | Revenue | vs Quota |
|----------|-------------|--------|-----------|----------|--------|---------|----------|
| Best | 20% | 100% | 80% | 60% | 10% | $[X]M | [X]% |
| Expected | 60% | 85% | 65% | 45% | 5% | $[X]M | [X]% |
| Worst | 20% | 70% | 40% | 20% | 0% | $[X]M | [X]% |
**Mitigation** (if worst case): Accelerate best-case deals | Add top-of-funnel NOW | Price flexibility on select deals
---
## Strategic Recommendations
### Immediate (This Week)
1. **Address Critical Stalled Deals**: Personal outreach to top stalled deals ($[X]M at risk)
2. **Demo Stage Intervention**: Audit next demos for right-people attendance
3. **Forecast Recalibration**: Review AI probability adjustments with reps
### Short-term (This Month)
4. **Stage Duration Alerts**: Auto-alert when deals exceed benchmark time
5. **Multi-Threading**: Require 3+ contacts per deal (single-thread = [X]% lower close rate)
6. **Competitor Win/Loss Analysis**: Interview lost prospects
### Long-term (This Quarter)
7. **Optimize Deal Stages**: Clearer exit criteria per stage
8. **Predictive Deal Scoring**: ML model on historical win/loss data
9. **Sales Process Consistency**: Document top-performer best practices
---
## Pipeline Health Report Card
| Metric | Current | Target | Status | Trend |
|--------|---------|--------|--------|-------|
| Overall Pipeline Value | $X.XM | $X.XM | [status] | [trend] |
| Weighted Pipeline | $X.XM | $X.XM | [status] | [trend] |
| Avg Deal Size | $XXK | $XXK | [status] | [trend] |
| Avg Sales Cycle | XX days | XX days | [status] | [trend] |
| Win Rate | XX% | XX% | [status] | [trend] |
| Forecast Accuracy | XX% | XX% | [status] | [trend] |
**Overall Grade**: [A/B/C/D/F]
**Next Review**: [Date, 1 week]. Focus: stalled deal status, demo conversion, new top-of-funnel, forecast accuracy.
最佳实践
- 每周运行:销售管道健康度会迅速恶化;应每周而不是每月检查
- 如实评估:尽早识别不理想的交易;取消资格是健康的做法
- 使用数据:不要依赖销售代表的直觉;查看活动指标
- 采取行动:没有具体后续步骤,分析就毫无价值
- 追踪趋势:单次快照有用,但随时间变化的趋势更有价值
- 指导而非指责:利用洞察帮助销售代表改进,而不是惩罚他们
常见用例
触发短语:
- “为什么我的交易卡在演示阶段?”
- “分析我的第三季度销售管道健康度”
- “本周我应该重点关注哪些交易?”
- “预测本季度哪些交易会成交”
响应方法:
- 通过
execute_sql/hubspot_search_deals获取交易(仅在无法使用其他方式时才导出 CSV) - 分析阶段分布和推进速度
- 找出停滞的交易及其规律
- 计算风险调整后的预测
- 为重点交易提供具体的后续行动(对相关联系人调用
qualify_lead;通过check_my_copy→create_draft创建草稿) - 推荐流程改进措施
请记住:健康的销售管道会持续流动。交易要么推进,要么成交,要么被取消资格——不应停滞不前!
<self_healing>
partial = 已生成报告,但某个阶段出现降级:MCP 拉取失败 → 使用 CSV 备用方案([source: csv]);qualify_lead 不可用 → 利益相关者覆盖度仅按数量评分,并标记 [tier unverified];Brand MCP 不可用 → 草稿前缀添加 [brand check skipped];Clari 返回空结果 → 仅使用推进速度和活动数据。error = 重试一次后,MCP 仍未返回交易行,且未提供 CSV。halt = 无法确定范围(销售代表或销售管道未知)。按照 ~/.claude/skills/epiphan-house-rules-skill/reference/self-healing.md 中的流程处理:重试一次 → 降级并添加标记 → 通知 Tim(Slack 私信)→ 停止并写入状态。每次运行后,向 ~/.claude/skill-runs/pipeline-health-analyzer-skill.jsonl 追加一行。
</self_healing>
<outcome_sidecar>
每次运行结束时,将以下内容写入 ~/.claude/skill-analytics/last-outcome-pipeline-health-analyzer-skill.json:
{"ts":"[UTC ISO8601]","skill":"pipeline-health-analyzer-skill","version":"<frontmatter version>","variant":"default",
"status":"[success|partial|error]","runtime_ms":[estimated ms from start],
"metrics":{"deals_analyzed":[n],"stalled_deals":[n],"at_risk_deals":[n],"forecast_accuracy_pct":[n],"actions_recommended":[n],"drafts_created":[n],"source":"mcp|csv"},
"error":null,"session_id":"[YYYY-MM-DD]"}
如果部分阶段失败但已生成结果,使用状态 "partial"(在 error 中注明阶段)。仅当未生成任何输出时,才使用 "error"。
</outcome_sidecar>