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>
<workflow>
<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>
<workflow>

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
search_crm_objects
(HubSpot MCP) with two OR-ed filter groups to capture both owned and collaborated deals:
FilterGroup 1 — Tim is COLLABORATOR:
  • hs_all_collaborator_owner_ids
    CONTAINS_TOKEN
    87486452
  • hs_is_closed
    EQ
    false
FilterGroup 2 — Tim is OWNER:
  • hubspot_owner_id
    EQ
    87486452
  • hs_is_closed
    EQ
    false
Properties to request:
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
Sort by
hs_lastmodifieddate
DESCENDING. Limit 100.
For each deal, capture:
FieldHubSpot Property
Deal name
dealname
Amount
amount
Stage
dealstage
Close date
closedate
Create date
createdate
Last activity
notes_last_updated
or
hs_lastmodifieddate
Owner
hubspot_owner_id
Collaborators
hs_all_collaborator_owner_ids
Associated contactsvia associations
Associated companyvia associations
使用
search_crm_objects
(HubSpot MCP),通过两个或条件过滤组捕获负责人和协作者相关的交易:
过滤组1 — Tim为协作者:
  • hs_all_collaborator_owner_ids
    包含
    87486452
  • hs_is_closed
    等于
    false
过滤组2 — Tim为负责人:
  • hubspot_owner_id
    等于
    87486452
  • hs_is_closed
    等于
    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. Deal Role Tagging

1a-bis. 交易角色标记

After pulling deals, tag each deal with Tim's role:
  • OWNER
    hubspot_owner_id
    =
    87486452
    → Tim owns the deal directly
  • COLLABORATOR
    hs_all_collaborator_owner_ids
    contains
    87486452
    but
    hubspot_owner_id
    87486452
    → Tim is helping close (AE-owned or SE-owned deal)
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
    =
    87486452
    → Tim直接负责该交易
  • 协作者
    hs_all_collaborator_owner_ids
    包含
    87486452
    hubspot_owner_id
    87486452
    → Tim协助推进该交易(由客户经理或解决方案负责人负责的交易)
两种角色的交易均需展示在推进动力报告中。由客户经理(负责人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分)

ConditionPoints
< median for this stage25
At median15
1.5x median8
> 2x median0
Stage medians (calibrate from Tim's historical data):
StageExpected Days
Appointment Scheduled7
Qualified to Buy14
Presentation Scheduled10
Decision Maker Bought-In14
Contract Sent7
Closed Won
条件得分
少于该阶段的中位数天数25
等于中位数天数15
为中位数的1.5倍8
超过中位数的2倍0
各阶段中位数天数(根据Tim的历史数据校准):
交易阶段预期天数
已预约演示7
已确认购买资格14
已安排演示10
决策人已认可14
已发送合同7
已成交

Signal 2: Activity Recency (20 points)

信号2:活动时效性(20分)

Last activityPoints
< 3 days ago20
3-7 days15
7-14 days8
14-21 days3
> 21 days0
最后活动时间得分
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 engagedPoints
3+ contacts, including at least 1 ATL-tier contact (confirmed EB)15
2+ contacts with at least 1 ATL-tier12
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 titles2
0 active contacts0
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 signalPoints
Call in last 7 days + positive sentiment15
Call in last 7 days + neutral10
Call in last 14 days7
No calls in 14+ days0
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 identifiedPoints
5-6 of 6 dimensions15
3-4 dimensions10
1-2 dimensions5
0 dimensions0
根据可用数据估算:
已识别的MEDDIC维度数量得分
6个维度中的5-6个15
6个维度中的3-4个10
6个维度中的1-2个5
0个维度0

Signal 6: Close Date Integrity (10 points)

信号6:成交日期合理性(10分)

ConditionPoints
Close date in future, never pushed10
Close date pushed once6
Close date pushed 2+ times2
Close date in the past (overdue)0
条件得分
成交日期在未来,从未延期10
成交日期延期过1次6
成交日期延期过2次及以上2
成交日期已过期0

Classification

分类标准

ScoreClassificationAction Priority
70-100GREEN — On TrackMonitor
40-69YELLOW — SlowingIntervene this week
0-39RED — StalledIntervene 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 GapRecommended ActionTool
No activity > 14 daysSend re-engagement email
gmail_create_draft
No calls > 14 daysBook a check-in call
gcal_create_event
Single-threaded (1 contact)Research + reach additional stakeholder
apollo_mixed_people_api_search
No economic buyer identifiedAsk champion to intro EBCall script
Close date overduePropose new timeline in email
gmail_create_draft
Negative call sentimentAddress objection head-onCall prep brief
Competitor mentionedPull competitive battlecardResearch
MEDDIC gapsDiscovery questions for next callMEDDIC brief
主要信号缺口推荐行动工具
超过14天无活动发送重新互动邮件
gmail_create_draft
超过14天无通话预约跟进通话
gcal_create_event
单线对接(仅1名联系人)调研并联系其他利益相关者
apollo_mixed_people_api_search
未识别到经济决策者请支持者介绍经济决策者通话脚本
成交日期已过期在邮件中提议新的时间线
gmail_create_draft
通话情绪消极直接处理异议通话准备简报
提及竞争对手调取竞品分析卡片调研
MEDDIC存在缺口下次通话的探索性问题MEDDIC简报

Action Output Format

行动输出格式

For each action, provide:
  1. What: Specific action description
  2. Why: Which signal triggered this
  3. How: Draft email / calendar invite / talking point ready to use
  4. When: Today / This week / Before [close date]
每个行动需包含:
  1. 行动内容: 具体的行动描述
  2. 触发原因: 哪个信号触发了该行动建议
  3. 执行方式: 可直接使用的邮件草稿/日历邀请/谈话要点
  4. 执行时间: 今日/本周/在[成交日期]前

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]

╚══════════════════════════════════════════════════════════════╝
</workflow>
<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]

╚══════════════════════════════════════════════════════════════╝
</workflow>
<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:
    CronCreate "57 6 * * 1-5"
    with prompt
    "Run deal-momentum-analyzer"
    (3-day auto-expire, must re-create each session)
  • Persistent: launchd agent at
    ~/Library/LaunchAgents/com.tim.deal-momentum.plist
    (future work)
  • On-demand: Tim says "deal momentum" or "morning brief"
Flow:
  1. Pull all open deals from HubSpot
  2. Score each deal on 6 momentum signals
  3. Classify GREEN/YELLOW/RED
  4. Generate next-best-actions for YELLOW/RED
  5. Create Gmail drafts for recommended re-engagement emails
  6. 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"
    ,触发词为
    "Run deal-momentum-analyzer"
    (3天后自动过期,每次会话需重新创建)
  • 持久化:
    ~/Library/LaunchAgents/com.tim.deal-momentum.plist
    创建launchd代理(后续优化)
  • 按需触发: Tim说出"deal momentum"或"morning brief"
流程:
  1. 从HubSpot提取所有未结交易
  2. 基于6个推进动力信号对每个交易评分
  3. 将交易分类为绿色/黄色/红色
  4. 为黄色/红色交易生成最佳下一步行动建议
  5. 为推荐的重新互动邮件创建Gmail草稿
  6. 生成报告(保存至工作区并在晨间简报中展示)
与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-revops-skill
    — HubSpot query patterns, pipeline stage definitions
  • sales-revenue-skill
    — MEDDIC framework, pipeline coverage benchmarks
  • meddic-call-prep-auto-skill
    — Generates full call prep when action = "book a call"
  • portfolio-artifact-skill
    — Captures deal recovery metrics for GTME portfolio
</dependencies>
  • hubspot-revops-skill
    — HubSpot查询模式、销售管道阶段定义
  • sales-revenue-skill
    — MEDDIC框架、管道覆盖基准
  • meddic-call-prep-auto-skill
    — 当行动建议为"预约通话"时,生成完整的通话准备内容
  • portfolio-artifact-skill
    — 捕获交易挽回指标,用于GTME组合分析 </dependencies>",