mcpField
D
deal-momentum-analyzer

deal-momentum-analyzer

github.com/scientiacapital营销与增长2847 次安装3 周前更新
代码仓库

关于 deal-momentum-analyzer

deal-momentum-analyzer 是一项销售技能,根据阶段时长、活动、利益相关方参与、通话信号、MEDDIC 完整度和预计成交日期变化为未结交易评分。它划分管道健康状态,并为可能放缓或停滞的交易提出后续行动。

主要功能

  1. 01六项信号交易评分
  2. 02GREEN/YELLOW/RED 分类
  3. 03Clari 通话信号分析
  4. 04优先列出风险交易
  5. 05针对交易提出后续行动
  6. 06每日与按需生成报告

适用场景

  1. 01发现可能延期的交易
  2. 02安排每日销售跟进优先级
  3. 03查看每周管道进展趋势
  4. 04为停滞交易制定针对性行动

MCP 相关

该技能使用 HubSpot MCP 获取未结交易及相关 CRM 数据。它还说明了用于活动分析和后续建议的 Clari MCP 调用及其他 MCP 工具。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/scientiacapital/skills --skill deal-momentum-analyzer

安装后在 Claude Code 中输入/deal-momentum-analyzer确认已加载。

附带文件config.json

详细介绍

通过多信号分析评估每笔未结交易的推进势头(而不仅仅是阶段):包括所处阶段的天数、活动的近期情况、利益相关者的参与度、通话/活动情绪以及 MEDDIC 完整度。找出最有可能停滞的 3-5 笔交易,并制定具体的下一步最佳行动来挽回这些交易。目标:每月挽回 5-10% 的停滞管道交易(按当前管道规模约为 $18K/月)。

<quick_start> 每日自动运行(中部标准时间上午 7 点): 计划任务提取所有未结交易 → 评估推进势头 → 提供按优先级排列的行动清单

按需运行: "deal momentum" → 立即运行完整分析 "pipeline review" → 运行相同分析,并按管道审查格式呈现 "which deals need attention" → 仅筛选有风险的交易

触发短语:

  • "deal health" / "deal momentum"
  • "pipeline review" / "stalled deals"
  • "which deals need attention"
  • "morning brief" / "SOD"(整合到每日简报中) </quick_start>

<success_criteria>

  • 为每笔未结交易评定 0-100 的推进势头分数
  • 将交易分类为:GREEN(进展正常)、YELLOW(进展放缓)、RED(停滞)
  • 找出排名前 3-5 的高风险交易,并提供具体的下一步最佳行动
  • 每周趋势:交易是在加速还是减速?
  • 目标:通过及时干预,每月挽回 5-10% 的停滞交易
  • 对即将错过预计成交日期的交易,漏报为零 </success_criteria>

架构

SCHEDULED (7am CST)          ANALYSIS                    OUTPUT
─────────────────────────────────────────────────────────────────
HubSpot: all open deals  →  Score each deal on     →  Prioritized dashboard
CRM: activity history    →  6 momentum signals     →  Next-best-action per deal
Activity: emails/calls   →  Classify G/Y/R         →  Gmail draft (optional)
                          →  Compare to last run    →  Calendar blocks (optional)

阶段 1:数据收集

1a. 提取所有未结交易(负责人或协作者)

使用 search_crm_objects(HubSpot MCP),通过两个以 OR 连接的筛选组同时获取由 Tim 负责和 Tim 参与协作的交易:

筛选组 1 — Tim 是协作者:

  • hs_all_collaborator_owner_ids CONTAINS_TOKEN 87486452
  • hs_is_closed EQ false

筛选组 2 — Tim 是负责人:

  • hubspot_owner_id EQ 87486452
  • hs_is_closed EQ false

请求的属性: dealname、dealstage、amount、hubspot_owner_id、hs_lastmodifieddate、notes_last_updated、closedate、pipeline、createdate、hs_all_collaborator_owner_ids、num_associated_contacts、hs_deal_stage_probability

按 hs_lastmodifieddate 降序排列。限制 100 条。

对每笔交易,记录:

字段HubSpot 属性
交易名称dealname
金额amount
阶段dealstage
成交日期closedate
创建日期createdate
最近活动notes_last_updated 或 hs_lastmodifieddate
负责人hubspot_owner_id
协作者hs_all_collaborator_owner_ids
关联联系人通过关联关系获取
关联公司通过关联关系获取
1a-bis. 交易角色标记

提取交易后,为每笔交易标记 Tim 的角色:

  • 负责人 — hubspot_owner_id = 87486452 → Tim 直接负责该交易
  • 协作者 — hs_all_collaborator_owner_ids 包含 87486452,但 hubspot_owner_id ≠ 87486452 → Tim 正在协助成交(由 AE 或 SE 负责的交易)

在推进势头报告中同时显示这两类交易。由 AE 负责的协作交易(负责人 ID 为 82625923 Lex Evans、423155215 Ron Epstein、190030668 Phillip Sandler)是 Tim 引荐或正在积极支持的交易——它们属于他的管道贡献,必须跟踪。

仅排除 Tim 既不是负责人也不是协作者的交易(即意外出现但与 Tim 无关的交易)。

### 1b. Clari 通话智能(信号 4 数据源)

提取与每笔交易相关联的联系人的近期 Clari 通话数据:

工具用途
clari_search_calls查找涉及交易联系人的通话(按 attendeeEmail 筛选,最近 30 天)
clari_get_call_summary获取每次相关通话的 AI 摘要和行动项

对于每笔交易关联的联系人:

  1. 搜索 Clari 通话:clari_search_calls(attendeeEmail=contact_email, daysBack=30)
  2. 对找到的通话:clari_get_call_summary(callId=call_id)
  3. 提取:
    • 通话情绪:根据 AI 摘要判断为积极/中性/消极
    • 需求探索完整度:是否询问了 MEDDIC 问题?
    • 竞争对手提及情况:摘要中是否提到任何竞争对手名称
    • 行动项:尚未解决的行动项 = 停滞风险
    • 最近通话日期:信号 4 评分的时效性指标

信号 4 增强(通话势头 — 15 分):

子信号分数标准
过去 7 天内有 Clari 通话5已确认近期有互动
积极的情绪4AI 摘要为积极/有建设性
已询问 MEDDIC 问题3记录稿涵盖了需求探索主题
没有尚未解决的行动项2所有行动项均已完成
未提及竞争对手1竞争态势良好

如果未找到 Clari 数据,则回退到 HubSpot 活动时效性(沿用现有逻辑)。不要仅仅因为 Clari 数据为空就打 0 分。

1c. 提取活动历史

对于每笔交易关联的公司,使用 ask_agent:

  • 查询:“显示 [company] 过去 30 天内所有交易的活动、备注和互动情况”
  • 提取内容:通话备注、邮件活动、会议结果、交易阶段变更
1c. 提取联系人互动情况

对于每笔交易关联的联系人,使用 hubspot_search_contacts:

  • 最近邮件的打开/点击日期
  • 表单提交
  • 页面浏览
  • 会议预约

阶段 2:势头评分(0-100)

根据 6 项加权信号为每笔交易评分:

信号 1:当前阶段停留天数(25 分)
条件分数
低于该阶段中位数25
等于中位数15
中位数的 1.5 倍8
超过中位数的 2 倍0

各阶段中位数(根据 Tim 的历史数据进行校准):

阶段预期天数
已安排预约7
已确认购买意向14
已安排演示10
决策者已认同14
已发送合同7
已成功成交—
信号 2:活动时效性(20 分)
最近一次活动分数
3 天内20
3-7 天15
7-14 天8
14-21 天3
超过 21 天0
信号 3:利益相关方覆盖面(15 分)

必须进行 ATL/BTL 验证(参见 CLAUDE.md § ATL/BTL Classification v1.0): 对每笔交易关联的联系人,在评分前按职位分类:

  • **ATL:**首席、VP、总监、院长、教务长、学区总监、法院行政主管、市经理、高级牧师、执行牧师
  • **GRAY:**经理(AV/设施/IT)——仅在确认预算 >$25K 时计为 ATL 等效级别
  • **BTL:**技术员、专员、协调员、支持人员、管理员(系统/网络/数据库)、工程师、操作员、讲师/教师、设计师、助理、职员(非法院行政人员)、志愿者、实习生、学生、住院医师、帮助台人员
  • **绝不属于 ATL:**仓库经理、网络经理、系统管理员、AV 技术员、平面设计讲师、项目管理员、网页设计师、课堂支持人员、实验室协调员、维护人员、建筑工程师、多媒体服务经理、视频制作专员、直播团队
已参与的联系人分数
3 位以上联系人,其中至少 1 位为 ATL 级联系人(已确认 EB)15
2 位以上联系人,其中至少 1 位为 ATL 级12
2 位以上联系人,但全部为 BTL/GRAY(没有已确认的 ATL)7
1 位联系人(仅有支持者,不论级别)5
1 位以上联系人,但全部职位都绝不属于 ATL2
0 位活跃联系人0

**惩罚标记:**如果一笔交易没有 ATL 级联系人,在报告中添加 ⚠️ 标记:"未识别经济买家 — 交易可能在决策者阶段停滞。行动:请支持者引荐总监级以上/VP 级以上人员。"

信号 4:通话进展势头(15 分)

主要使用 Clari 通话数据作为信号来源(参见阶段 1b:Clari 通话情报)。

活动信号分数
过去 7 天内有通话 + 正面情绪15
过去 7 天内有通话 + 中性情绪10
过去 14 天内有通话7
14 天以上没有通话0
上次通话情绪为负面-5(惩罚)

数据来源:

  • 主要来源:Clari 通话摘要(通过 clari_search_calls + clari_get_call_summary)
  • 备用来源:如果没有可用的 Clari 数据,则使用 HubSpot 活动时间
信号 5:MEDDIC 完整度(15 分)

根据可用数据估算:

已识别的 MEDDIC 字段分数
6 个维度中有 5–6 个15
3–4 个维度10
1–2 个维度5
0 个维度0
信号 6:成交日期可靠性(10 分)
条件分数
成交日期在未来,且从未推迟10
成交日期推迟过 1 次6
成交日期推迟过 2 次以上2
成交日期已过(逾期)0
分类
分数分类行动优先级
70-100绿色 — 进展正常监控
40-69黄色 — 进展放缓本周介入
0-39红色 — 陷入停滞今天介入

阶段 3:下一最佳行动引擎

对于每笔黄色/红色交易,指定具体行动:

行动矩阵
主要信号缺口建议行动工具
超过 14 天没有活动发送重新互动邮件gmail_create_draft
超过 14 天没有通话预约跟进通话gcal_create_event
单线联系(1 位联系人)调研并联系更多利益相关方apollo_mixed_people_api_search
未识别经济买家请支持者引荐 EB通话脚本
成交日期已逾期通过邮件提出新时间安排gmail_create_draft
通话情绪为负面直接处理异议通话准备简报
提及竞争对手调取竞争对手对战卡调研
MEDDIC 存在缺口为下次通话准备探索性问题MEDDIC 简报
行动输出格式

对于每项行动,提供:

  1. **内容:**具体行动说明
  2. **原因:**触发该行动的信号
  3. **方式:**可直接使用的邮件草稿/日历邀请/谈话要点
  4. **时间:**今天/本周/在[成交日期]之前

阶段 4:输出格式

╔══════════════════════════════════════════════════════════════╗
║  DEAL MOMENTUM REPORT — [Date]                               ║
║  Pipeline: $[total] | Deals: [count] | Weighted: $[weighted] ║
╠══════════════════════════════════════════════════════════════╣

SUMMARY:
🟢 GREEN: [X] deals ($[amount]) — on track
🟡 YELLOW: [X] deals ($[amount]) — slowing, intervene this week
🔴 RED: [X] deals ($[amount]) — stalled, intervene TODAY

TREND vs LAST RUN:
- Deals improved: [X] (moved from RED→YELLOW or YELLOW→GREEN)
- Deals declined: [X] (moved down)
- New deals: [X]
- Pipeline delta: [+/- $amount]

═══════════════════════════════════════════════════════════════

🔴 PRIORITY ACTIONS (do these today):

1. [Deal Name] — $[amount] | Stage: [stage] | Score: [XX/100]
   ⚠️ Signals: [days in stage: 28 | no activity: 18 days | single-threaded]
   → ACTION: [specific next-best-action]
   → DRAFT: [ready-to-send email or talking points]

2. [Deal Name] — $[amount] | Stage: [stage] | Score: [XX/100]
   ⚠️ Signals: [close date overdue | negative call sentiment]
   → ACTION: [specific next-best-action]
   → DRAFT: [ready-to-send email or talking points]

═══════════════════════════════════════════════════════════════

🟡 WATCH LIST (intervene this week):

3. [Deal Name] — $[amount] | Score: [XX/100]
   → [brief action recommendation]

═══════════════════════════════════════════════════════════════

🟢 ON TRACK:

[Deal list with scores, sorted by close date]

╚══════════════════════════════════════════════════════════════╝

<scheduled_automation>

每日 CST 上午 7 点运行

此技能设计为以计划任务的形式运行:

计划: 每天 CST 上午 7:00(UTC 13:00) 任务名称: "deal-momentum-daily" 计划选项:

  • 基于会话: 使用提示词 "Run deal-momentum-analyzer" 运行 CronCreate "57 6 * * 1-5"(3 天后自动过期,必须在每个会话中重新创建)
  • 持久运行: 位于 ~/Library/LaunchAgents/com.tim.deal-momentum.plist 的 launchd Agent(后续工作)
  • 按需运行: Tim 说“deal momentum”或“morning brief”

流程:

  1. 从 HubSpot 获取所有未关闭的交易
  2. 根据 6 项动能信号为每笔交易评分
  3. 分类为 GREEN/YELLOW/RED
  4. 为 YELLOW/RED 交易生成下一步最佳行动
  5. 为建议的重新互动邮件创建 Gmail 草稿
  6. 输出报告(保存到工作区并在晨间简报中呈现)

与 SOD/晨间简报集成: 当 Tim 说“morning brief”或“SOD”时,此报告会作为管道部分纳入。 </scheduled_automation>

## 必需的 MCP 工具 - **Epiphan CRM MCP:** hubspot_search_deals、hubspot_search_companies、hubspot_search_contacts、hubspot_get_deal、hubspot_get_company、hubspot_get_contact、ask_agent(活动历史记录、阶段速度中位数、管道覆盖率、交易转化基准) - **Epiphan Clari MCP:** clari_search_calls、clari_get_call_summary(用于通话情绪分析和动能评分) - **Apollo MCP:** apollo_mixed_people_api_search、apollo_people_match(用于多线程操作) - **Gmail MCP:** gmail_create_draft(用于重新互动邮件操作) - **Google Calendar MCP:** gcal_create_event(用于安排跟进通话) - **计划任务:** CronCreate(基于会话,最长 3 天)或 launchd(持久运行)

引用的相关技能

  • hubspot-revops-skill — HubSpot 查询模式、管道阶段定义
  • sales-revenue-skill — MEDDIC 框架、管道覆盖率基准
  • meddic-call-prep-auto-skill — 当操作为 "book a call" 时,生成完整的通话准备内容
  • portfolio-artifact-skill — 为 GTME 作品集记录交易挽回指标

输出结果 Sidecar

最后一步,将内容写入 ~/.claude/skill-analytics/last-outcome-deal-momentum-analyzer.json:

{"ts":"[UTC ISO8601]","skill":"deal-momentum-analyzer","version":"1.0.0","variant":"default",
 "status":"[success|partial|error]","runtime_ms":[estimated ms from start],
 "metrics":{"deals_scored":[n],"green_count":[n],"yellow_count":[n],"red_count":[n],"blockers_flagged":[n],"avg_momentum_score":[n],"drafts_created":[n]},
 "error":null,"session_id":"[YYYY-MM-DD]"}

如果某些阶段失败但仍生成了结果,请使用状态 "partial"。只有在未生成任何输出时才使用 "error"。

评论

支持 Markdown