deal-momentum-analyzer
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinese<objective>
Score every open deal on momentum (not just stage) using multi-signal analysis: days in stage, activity recency, stakeholder engagement, call/activity sentiment, and MEDDIC completeness. Surfaces the 3-5 deals most likely to slip and prescribes specific next-best-actions to recover them. Target: recover 5-10% of stalled pipeline monthly (~$18K/mo at current pipeline levels).
</objective>
<quick_start>
Daily automated run (7am CST):
Scheduled task pulls all open deals → scores momentum → delivers prioritized action list
On-demand:
"deal momentum" → runs full analysis now
"pipeline review" → same, formatted as pipeline review
"which deals need attention" → filtered to at-risk only
Trigger phrases:
- "deal health" / "deal momentum"
- "pipeline review" / "stalled deals"
- "which deals need attention"
- "morning brief" / "SOD" (integrates into daily brief) </quick_start>
<success_criteria>
- Every open deal scored 0-100 on momentum
- Deals classified: GREEN (on-track), YELLOW (slowing), RED (stalled)
- Top 3-5 at-risk deals surfaced with specific next-best-action
- Weekly trend: are deals accelerating or decelerating?
- Target: recover 5-10% of stalled deals per month via timely intervention
- Zero false negatives on deals about to slip close date </success_criteria>
<objective>
为每个未结交易基于推进动力(而非仅交易阶段)进行多信号分析评分:包括在当前阶段停留的天数、活动时效性、利益相关者互动情况、通话/活动情绪以及MEDDIC完成度。找出最有可能流失的3-5个交易,并给出具体的最佳恢复行动建议。目标:每月挽回5-10%的停滞销售管道(按当前管道规模计算,约每月1.8万美元)。
</objective>
<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分
- 交易分类:绿色(正常推进)、黄色(推进放缓)、红色(已停滞)
- 列出排名前3-5的高风险交易,并提供具体的最佳下一步行动
- 周度趋势分析:交易推进速度是加快还是放缓?
- 目标:通过及时干预,每月挽回5-10%的停滞交易
- 即将错过成交日期的交易零漏判 </success_criteria>
Architecture
架构
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)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)Stage 1: Data Collection
阶段1:数据收集
1a. Pull All Open Deals (Owner OR Collaborator)
1a. 提取所有未结交易(负责人或协作者)
Use (HubSpot MCP) with two OR-ed filter groups to capture both owned and collaborated deals:
search_crm_objectsFilterGroup 1 — Tim is COLLABORATOR:
- CONTAINS_TOKEN
hs_all_collaborator_owner_ids87486452 - EQ
hs_is_closedfalse
FilterGroup 2 — Tim is OWNER:
- EQ
hubspot_owner_id87486452 - EQ
hs_is_closedfalse
Properties to request:
, , , , , , , , , , ,
dealnamedealstageamounthubspot_owner_idhs_lastmodifieddatenotes_last_updatedclosedatepipelinecreatedatehs_all_collaborator_owner_idsnum_associated_contactshs_deal_stage_probabilitySort by DESCENDING. Limit 100.
hs_lastmodifieddateFor each deal, capture:
| Field | HubSpot Property |
|---|---|
| Deal name | |
| Amount | |
| Stage | |
| Close date | |
| Create date | |
| Last activity | |
| Owner | |
| Collaborators | |
| Associated contacts | via associations |
| Associated company | via associations |
使用(HubSpot MCP),通过两个或条件过滤组捕获负责人和协作者相关的交易:
search_crm_objects过滤组1 — Tim为协作者:
- 包含
hs_all_collaborator_owner_ids87486452 - 等于
hs_is_closedfalse
过滤组2 — Tim为负责人:
- 等于
hubspot_owner_id87486452 - 等于
hs_is_closedfalse
需请求的属性:
, , , , , , , , , , ,
dealnamedealstageamounthubspot_owner_idhs_lastmodifieddatenotes_last_updatedclosedatepipelinecreatedatehs_all_collaborator_owner_idsnum_associated_contactshs_deal_stage_probability按降序排序,限制数量为100条。
hs_lastmodifieddate为每个交易捕获以下信息:
| 字段 | HubSpot 属性 |
|---|---|
| 交易名称 | |
| 交易金额 | |
| 交易阶段 | |
| 成交日期 | |
| 创建日期 | |
| 最后活动时间 | |
| 负责人 | |
| 协作者 | |
| 关联联系人 | 通过关联关系获取 |
| 关联公司 | 通过关联关系获取 |
1a-bis. Deal Role Tagging
1a-bis. 交易角色标记
After pulling deals, tag each deal with Tim's role:
- OWNER — =
hubspot_owner_id→ Tim owns the deal directly87486452 - COLLABORATOR — contains
hs_all_collaborator_owner_idsbut87486452≠hubspot_owner_id→ Tim is helping close (AE-owned or SE-owned deal)87486452
Display both types in the momentum report. Collaborator deals where an AE owns them (owner IDs 82625923 Lex Evans, 423155215 Ron Epstein, 190030668 Phillip Sandler) are deals Tim sourced or is actively supporting — they ARE his pipeline contribution and must be tracked.
Exclude from scoring only deals where Tim is NEITHER owner NOR collaborator (i.e., deals that somehow appeared but have no Tim involvement).
提取交易后,为每个交易标记Tim的角色:
- 负责人 — =
hubspot_owner_id→ Tim直接负责该交易87486452 - 协作者 — 包含
hs_all_collaborator_owner_ids但87486452≠hubspot_owner_id→ Tim协助推进该交易(由客户经理或解决方案负责人负责的交易)87486452
两种角色的交易均需展示在推进动力报告中。由客户经理(负责人ID:82625923 Lex Evans、423155215 Ron Epstein、190030668 Phillip Sandler)负责的协作者交易,是Tim开发或正在积极支持的交易——属于他的销售管道贡献,必须进行跟踪。
仅排除Tim既不是负责人也不是协作者的交易(即意外出现但与Tim无关的交易)。
1b. Pull Activity History
1b. 提取活动历史
For each deal's associated company, use :
ask_agent- Query: "Show all activity, notes, and engagement for [company] deals in last 30 days"
- Extracts: call notes, email activity, meeting outcomes, deal stage changes
对于每个交易的关联公司,使用:
ask_agent- 查询语句:"显示[公司]在过去30天内的所有活动、备注和互动记录"
- 提取内容:通话备注、邮件活动、会议结果、交易阶段变更记录
1c. Pull Contact Engagement
1c. 提取联系人互动数据
For each deal's associated contacts, use :
hubspot_search_contacts- Last email open/click dates
- Form submissions
- Page views
- Meeting bookings
对于每个交易的关联联系人,使用:
hubspot_search_contacts- 最后一次邮件打开/点击日期
- 表单提交记录
- 页面浏览记录
- 会议预约记录
Stage 2: Momentum Scoring (0-100)
阶段2:推进动力评分(0-100分)
Score each deal on 6 weighted signals:
基于6个加权信号对每个交易进行评分:
Signal 1: Days in Current Stage (25 points)
信号1:当前阶段停留天数(25分)
| Condition | Points |
|---|---|
| < median for this stage | 25 |
| At median | 15 |
| 1.5x median | 8 |
| > 2x median | 0 |
Stage medians (calibrate from Tim's historical data):
| Stage | Expected Days |
|---|---|
| Appointment Scheduled | 7 |
| Qualified to Buy | 14 |
| Presentation Scheduled | 10 |
| Decision Maker Bought-In | 14 |
| Contract Sent | 7 |
| Closed Won | — |
| 条件 | 得分 |
|---|---|
| 少于该阶段的中位数天数 | 25 |
| 等于中位数天数 | 15 |
| 为中位数的1.5倍 | 8 |
| 超过中位数的2倍 | 0 |
各阶段中位数天数(根据Tim的历史数据校准):
| 交易阶段 | 预期天数 |
|---|---|
| 已预约演示 | 7 |
| 已确认购买资格 | 14 |
| 已安排演示 | 10 |
| 决策人已认可 | 14 |
| 已发送合同 | 7 |
| 已成交 | — |
Signal 2: Activity Recency (20 points)
信号2:活动时效性(20分)
| Last activity | Points |
|---|---|
| < 3 days ago | 20 |
| 3-7 days | 15 |
| 7-14 days | 8 |
| 14-21 days | 3 |
| > 21 days | 0 |
| 最后活动时间 | 得分 |
|---|---|
| 3天以内 | 20 |
| 3-7天 | 15 |
| 7-14天 | 8 |
| 14-21天 | 3 |
| 超过21天 | 0 |
Signal 3: Stakeholder Breadth (15 points)
信号3:利益相关者覆盖广度(15分)
ATL/BTL Validation Required (see CLAUDE.md § ATL/BTL Classification v1.0):
For each deal's associated contacts, classify by title before scoring:
- ATL: Chief, VP, Director, Dean, Provost, Superintendent, Court Administrator, City Manager, Senior Pastor, Executive Pastor
- GRAY: Manager (AV/Facilities/IT) — only counts as ATL-equivalent if confirmed budget >$25K
- BTL: Technician, Specialist, Coordinator, Support, Administrator (Systems/Network/Database), Engineer, Operator, Instructor/Faculty, Designer, Assistant, Clerk (non-Court Admin), Volunteer, Intern, Student, Resident, Help Desk
- NEVER ATL: Warehouse Manager, Network Manager, Systems Administrator, AV Technician, Graphic Design Instructor, Program Administrator, Web Designer, Classroom Support, Lab Coordinator, Maintenance, Building Engineer, Multimedia Services Manager, Video Production Specialist, Streaming Crew
| Contacts engaged | Points |
|---|---|
| 3+ contacts, including at least 1 ATL-tier contact (confirmed EB) | 15 |
| 2+ contacts with at least 1 ATL-tier | 12 |
| 2+ contacts but ALL are BTL/GRAY (no confirmed ATL) | 7 |
| 1 contact (champion only, regardless of tier) | 5 |
| 1+ contacts but ALL are NEVER ATL titles | 2 |
| 0 active contacts | 0 |
Penalty flag: If a deal has 0 ATL-tier contacts, add a ⚠️ flag in the report: "NO ECONOMIC BUYER IDENTIFIED — deal at risk of stalling at Decision Maker stage. Action: ask champion to intro Director+/VP+."
需进行ATL/BTL验证(参考CLAUDE.md § ATL/BTL分类v1.0):
在评分前,根据职位头衔对每个交易的关联联系人进行分类:
- ATL: 首席、副总裁、总监、院长、教务长、督学、法院行政官、城市经理、资深牧师、执行牧师
- GRAY: 经理(音视频/设施/IT)——仅当确认预算超过2.5万美元时,才视为等同于ATL级别
- BTL: 技术员、专员、协调员、支持人员、管理员(系统/网络/数据库)、工程师、操作员、讲师/教员、设计师、助理、文员(非法院行政)、志愿者、实习生、学生、住院医师、服务台人员
- 非ATL: 仓库经理、网络经理、系统管理员、音视频技术员、平面设计讲师、项目管理员、网页设计师、课堂支持人员、实验室协调员、维护人员、建筑工程师、多媒体服务经理、视频制作专员、直播团队成员
| 已互动联系人情况 | 得分 |
|---|---|
| 3个及以上联系人,且至少包含1名ATL级别联系人(已确认是经济决策者) | 15 |
| 2个及以上联系人,且至少包含1名ATL级别联系人 | 12 |
| 2个及以上联系人,但均为BTL/GRAY级别(无确认的ATL级别联系人) | 7 |
| 仅1名联系人(仅支持者,无论级别) | 5 |
| 1名及以上联系人,但均为非ATL头衔 | 2 |
| 无活跃联系人 | 0 |
警示标记: 如果某交易没有ATL级别联系人,需在报告中添加⚠️标记:"未识别到经济决策者——交易在决策人阶段存在停滞风险。行动建议:请支持者介绍总监/副总裁级别的联系人。"
Signal 4: Call Momentum (15 points)
信号4:通话推进动力(15分)
| Activity signal | Points |
|---|---|
| Call in last 7 days + positive sentiment | 15 |
| Call in last 7 days + neutral | 10 |
| Call in last 14 days | 7 |
| No calls in 14+ days | 0 |
| Negative sentiment on last call | -5 (penalty) |
| 活动信号 | 得分 |
|---|---|
| 7天内有通话且情绪积极 | 15 |
| 7天内有通话且情绪中立 | 10 |
| 14天内有通话 | 7 |
| 14天以上无通话 | 0 |
| 最后一次通话情绪消极 | -5(扣分) |
Signal 5: MEDDIC Completeness (15 points)
信号5:MEDDIC完成度(15分)
Estimate from available data:
| MEDDIC fields identified | Points |
|---|---|
| 5-6 of 6 dimensions | 15 |
| 3-4 dimensions | 10 |
| 1-2 dimensions | 5 |
| 0 dimensions | 0 |
根据可用数据估算:
| 已识别的MEDDIC维度数量 | 得分 |
|---|---|
| 6个维度中的5-6个 | 15 |
| 6个维度中的3-4个 | 10 |
| 6个维度中的1-2个 | 5 |
| 0个维度 | 0 |
Signal 6: Close Date Integrity (10 points)
信号6:成交日期合理性(10分)
| Condition | Points |
|---|---|
| Close date in future, never pushed | 10 |
| Close date pushed once | 6 |
| Close date pushed 2+ times | 2 |
| Close date in the past (overdue) | 0 |
| 条件 | 得分 |
|---|---|
| 成交日期在未来,从未延期 | 10 |
| 成交日期延期过1次 | 6 |
| 成交日期延期过2次及以上 | 2 |
| 成交日期已过期 | 0 |
Classification
分类标准
| Score | Classification | Action Priority |
|---|---|---|
| 70-100 | GREEN — On Track | Monitor |
| 40-69 | YELLOW — Slowing | Intervene this week |
| 0-39 | RED — Stalled | Intervene TODAY |
| 得分 | 分类 | 行动优先级 |
|---|---|---|
| 70-100 | 绿色 — 正常推进 | 监控 |
| 40-69 | 黄色 — 推进放缓 | 本周内干预 |
| 0-39 | 红色 — 已停滞 | 今日立即干预 |
Stage 3: Next-Best-Action Engine
阶段3:最佳下一步行动引擎
For each YELLOW/RED deal, prescribe specific action:
针对每个黄色/红色交易,给出具体的行动建议:
Action Matrix
行动矩阵
| Primary Signal Gap | Recommended Action | Tool |
|---|---|---|
| No activity > 14 days | Send re-engagement email | |
| No calls > 14 days | Book a check-in call | |
| Single-threaded (1 contact) | Research + reach additional stakeholder | |
| No economic buyer identified | Ask champion to intro EB | Call script |
| Close date overdue | Propose new timeline in email | |
| Negative call sentiment | Address objection head-on | Call prep brief |
| Competitor mentioned | Pull competitive battlecard | Research |
| MEDDIC gaps | Discovery questions for next call | MEDDIC brief |
| 主要信号缺口 | 推荐行动 | 工具 |
|---|---|---|
| 超过14天无活动 | 发送重新互动邮件 | |
| 超过14天无通话 | 预约跟进通话 | |
| 单线对接(仅1名联系人) | 调研并联系其他利益相关者 | |
| 未识别到经济决策者 | 请支持者介绍经济决策者 | 通话脚本 |
| 成交日期已过期 | 在邮件中提议新的时间线 | |
| 通话情绪消极 | 直接处理异议 | 通话准备简报 |
| 提及竞争对手 | 调取竞品分析卡片 | 调研 |
| MEDDIC存在缺口 | 下次通话的探索性问题 | MEDDIC简报 |
Action Output Format
行动输出格式
For each action, provide:
- What: Specific action description
- Why: Which signal triggered this
- How: Draft email / calendar invite / talking point ready to use
- When: Today / This week / Before [close date]
每个行动需包含:
- 行动内容: 具体的行动描述
- 触发原因: 哪个信号触发了该行动建议
- 执行方式: 可直接使用的邮件草稿/日历邀请/谈话要点
- 执行时间: 今日/本周/在[成交日期]前
Stage 4: Output Format
阶段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>
╔══════════════════════════════════════════════════════════════╗
║ 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>
Daily 7am CST Run
每日美国中部时间7点运行
This skill is designed to run as a scheduled task:
Schedule: Daily at 7:00 AM CST (13:00 UTC)
Task name: "deal-momentum-daily"
Scheduling options:
- Session-based: with prompt
CronCreate "57 6 * * 1-5"(3-day auto-expire, must re-create each session)"Run deal-momentum-analyzer" - Persistent: launchd agent at (future work)
~/Library/LaunchAgents/com.tim.deal-momentum.plist - On-demand: Tim says "deal momentum" or "morning brief"
Flow:
- Pull all open deals from HubSpot
- Score each deal on 6 momentum signals
- Classify GREEN/YELLOW/RED
- Generate next-best-actions for YELLOW/RED
- Create Gmail drafts for recommended re-engagement emails
- Output report (saved to workspace + presented in morning brief)
Integration with SOD/Morning Brief:
When Tim says "morning brief" or "SOD", this report is included as the pipeline section.
</scheduled_automation>
<dependencies>该技能设计为定时任务运行:
调度设置: 每周一至周五,美国中部时间早上7:00(UTC时间13:00)
任务名称: "deal-momentum-daily"
调度选项:
- 会话式: 使用,触发词为
CronCreate "57 6 * * 1-5"(3天后自动过期,每次会话需重新创建)"Run deal-momentum-analyzer" - 持久化: 在创建launchd代理(后续优化)
~/Library/LaunchAgents/com.tim.deal-momentum.plist - 按需触发: Tim说出"deal momentum"或"morning brief"
流程:
- 从HubSpot提取所有未结交易
- 基于6个推进动力信号对每个交易评分
- 将交易分类为绿色/黄色/红色
- 为黄色/红色交易生成最佳下一步行动建议
- 为推荐的重新互动邮件创建Gmail草稿
- 生成报告(保存至工作区并在晨间简报中展示)
与SOD/晨间简报的集成:
当Tim说出"morning brief"或"SOD"时,该报告将作为销售管道部分纳入简报。
</scheduled_automation>
<dependencies>Required MCP Tools
所需MCP工具
- Epiphan CRM MCP: hubspot_search_deals, hubspot_search_companies, hubspot_search_contacts, hubspot_get_deal, hubspot_get_company, hubspot_get_contact, ask_agent (activity history, stage velocity medians, pipeline coverage, deal conversion benchmarks)
- Apollo MCP: apollo_mixed_people_api_search, apollo_people_match (for multi-threading actions)
- Gmail MCP: gmail_create_draft (for re-engagement email actions)
- Google Calendar MCP: gcal_create_event (for booking check-in calls)
- Scheduling: CronCreate (session-based, 3-day max) or launchd (persistent)
- Epiphan CRM MCP: hubspot_search_deals, hubspot_search_companies, hubspot_search_contacts, hubspot_get_deal, hubspot_get_company, hubspot_get_contact, ask_agent(活动历史、阶段速度中位数、管道覆盖范围、交易转化基准)
- Apollo MCP: apollo_mixed_people_api_search, apollo_people_match(用于多线程行动)
- Gmail MCP: gmail_create_draft(用于重新互动邮件行动)
- Google Calendar MCP: gcal_create_event(用于预约跟进通话)
- 调度工具: CronCreate(会话式,最长3天)或launchd(持久化)
Sibling Skills Referenced
参考的关联技能
- — HubSpot query patterns, pipeline stage definitions
hubspot-revops-skill - — MEDDIC framework, pipeline coverage benchmarks
sales-revenue-skill - — Generates full call prep when action = "book a call"
meddic-call-prep-auto-skill - — Captures deal recovery metrics for GTME portfolio
portfolio-artifact-skill
- — HubSpot查询模式、销售管道阶段定义
hubspot-revops-skill - — MEDDIC框架、管道覆盖基准
sales-revenue-skill - — 当行动建议为"预约通话"时,生成完整的通话准备内容
meddic-call-prep-auto-skill - — 捕获交易挽回指标,用于GTME组合分析 </dependencies>",
portfolio-artifact-skill