mcpField
C
callable-lead-count

callable-lead-count

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

关于 callable-lead-count

面向 HubSpot 的线索盘点 Skill,可筛选可拨打联系人、按等级分类,并报告拨号库存天数和预警。适用于每日拓客盘点及晨间简报准备。

主要功能

  1. 01查找有电话号码的联系人
  2. 02筛除排除项和抑制联系人
  3. 03划分 ATL、GRAY、BTL 和 NEVER 等级
  4. 04计算拨号库存天数
  5. 05标记库存不足和待审核项
  6. 06生成摘要和联系人表

适用场景

  1. 01检查每日可拨打线索库存
  2. 02找出优先拨打的 ATL 联系人
  3. 03在联系人数量低于阈值时发出预警
  4. 04向晨间简报提供库存数据

MCP 相关

该 Skill 使用 HubSpot MCP 工具 `search_crm_objects` 查询具有电话号码的联系人。

安装

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

$npx skills add https://github.com/scientiacapital/skills --skill callable-lead-count

安装后在 Claude Code 中输入/callable-lead-count确认已加载。

附带文件config.json

详细介绍

可拨打潜在客户数量技能

在 HubSpot 中生成每日可拨打潜在客户(有电话号码的联系人)库存。应用黄金规则筛选。按 ATL/BTL 层级分类。计算 ATL 储备天数指标(按每天拨打 15 通的目标计算 ATL 拨打天数)。如果每日库存低于 50,或 ATL 库存低于 15,则发出提醒。支持晨间简报和拨打名单优先级设置。

<quick_start> **触发条件:**美国东部时间周一至周五上午 7:25(每日,在上午 7:30 的晨间简报之前)
手动触发:“显示可拨打潜在客户”或“检查潜在客户库存”
**依赖项:**需要访问 HubSpot 门户 21530819
**输出:**按层级统计的可拨打潜在客户数量、ATL 储备天数、健康状况提醒 </quick_start>

<success_criteria>

  • 查询 HubSpot,查找 phone != null 的联系人
  • 应用黄金规则(排除客户、渠道合作伙伴、设备所有者、产品页面互动者)
  • 根据 CLAUDE.md 中的决策者规则,将每位联系人分类为 ATL/BTL 层级
  • 统计总数:ATL、GRAY、BTL、NEVER(供参考)
  • 计算 ATL 储备天数 = ATL 数量 ÷ 每天拨打 15 通 = X 天库存
  • 计算总储备天数 = 可拨打潜在客户总数 ÷ 每天拨打 50 通 = X 天
  • 如果 ATL < 15,则发出提醒(⚠️ 警告)
  • 如果总数 < 50,则发出提醒(🚨 严重)
  • 如果 NEVER ATL > 0,则发出提醒(🔍 审查并从序列中移除)
  • 输出:汇总统计数据 + 详细表格 + 与前一天的趋势对比 </success_criteria>

阶段 1:查询 HubSpot 中可拨打的联系人

MCP 工具: search_crm_objects(HubSpot)

objectType: "contacts"
filterGroups: [{
  filters: [
    { propertyName: "phone", operator: "HAS_PROPERTY" }
  ]
}]
properties: [
  "firstname",
  "lastname",
  "email",
  "phone",
  "jobtitle",
  "company",
  "hs_lead_status",
  "hubspot_owner_id",
  "hs_analytics_num_page_views",
  "custom_atl_btl_tier",
  "custom_prospect_vertical",
  "lifecyclestage",
  "createdate"
]
limit: 100

**分页:**遍历所有结果(可能有 200 多位联系人)

**输出:**包含所有属性的完整联系人列表(暂不筛选)


阶段 2:应用黄金规则筛选

黄金规则(硬性排除条件):

跳过以下联系人:

  • 邮箱域名与 crm_customers 表匹配(客户账户)
  • 联系人标记为“Channel Partner”(hubspot_owner_id = 渠道负责人)
  • 联系人标记为“Device Owner”或位于设备所有者名单中
  • 联系人标记为“Product Page Engager”(仅参与营销互动)
  • 职位包含 BTL 关键词:Technician、Support、Intern、Volunteer、Operator、Designer(非总监级)
  • 职位属于 NEVER ATL 名单(Warehouse Manager、Network Manager、Systems Admin、AV Tech、Graphic Design Instructor、Program Administrator、Web Designer、Classroom Support、Lab Coordinator、Maintenance、Building Engineer、Multimedia Services Manager、Video Production Specialist、Streaming Crew)
  • Lead 状态属于排除名单:Unqualified、Opted Out、Bad Fit
  • 电话号码无效或重复

保留逻辑:

  • 保留 hs_lead_status 为以下状态的联系人:Subscriber、Qualified Lead、Inbound Lead、Marketing Qualified Lead、Sales Qualified Lead
  • 保留最近 90 天内创建的潜在客户
  • 保留 hs_analytics_num_page_views > 0 的联系人(互动信号)

**输出:**筛选后的可拨打名单(应用黄金规则后,通常保留输入名单的 50-70%)


阶段 S — 抑制门控

在统计库存和生成拨打队列前,排除受抑制的联系人:

  • 排除 bdr_suppression_until 已设置且 bdr_suppression_until > TODAY 的联系人
  • 包含 bdr_suppression_until 未设置的联系人(从未受抑制)
  • 包含 bdr_suppression_until < TODAY 的联系人(冷却期已过)

HubSpot 筛选条件:propertyName: "bdr_suppression_until", operator: "NOT_HAS_PROPERTY" 或 operator: "LT", value: TODAY_ISO 参考:lead-suppression-spec(bdr_suppressed、bdr_suppression_reason、bdr_suppression_until)


阶段 3:按 ATL/BTL 层级分类

**MCP 工具:**不适用(基于 jobtitle 的逻辑分类)

应用 ATL/BTL 决策者分类(依据 CLAUDE.md):

ATL 层级(始终作为潜在客户) — 10 个通用关键词:

  • Chief、CIO、CTO、CFO、COO
  • Vice President、VP、AVP、SVP、EVP
  • President、Provost、Vice Provost
  • Superintendent、Director(IT/Tech/Facilities/Academic Tech/Procurement)
  • Dean、Court Administrator、Clerk of Court
  • City Manager、County Manager、Senior Pastor、Executive Pastor

GRAY 层级(视情况而定——预算权限 >$25K):

  • Manager(AV/Facilities/IT)——仅限向 Director+ 汇报的情况
  • Department Chair——视具体情况而定(小型与大型机构)
  • Director of Educational Technology——取决于汇报关系
  • Program Director——仅限拥有部门级预算权限的情况

BTL 层级(无预算权限):

  • Technician、Specialist、Coordinator、Support
  • Administrator(Systems/Network/Database)
  • Engineer(AV/Network/Systems)、Operator
  • Instructor、Professor、Faculty、Designer、Assistant
  • Clerk(非 Court)、Volunteer、Help Desk
  • Student、Resident、Intern

绝不属于 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

分类算法:

FOR each contact IN filtered_list:
  title = contact.jobtitle.lower()
  
  IF title matches any NEVER_ATL keyword:
    tier = "NEVER"
    action = "REVIEW" (may need removal from sequences)
  
  ELIF title matches any ATL keyword:
    tier = "ATL"
  
  ELIF title matches any GRAY keyword:
    tier = "GRAY"
    note = "Verify budget authority >$25K via company research"
  
  ELSE:
    tier = "BTL"

**输出:**已分类并分配层级的可拨打联系人


阶段 4:计算可拨打名单指标

按层级计数:

atl_count = count(tier == "ATL")
gray_count = count(tier == "GRAY")
btl_count = count(tier == "BTL")
never_count = count(tier == "NEVER")
total_callable = atl_count + gray_count + btl_count

ATL 可拨打余量指标:

atl_runway_days = ROUND(atl_count / 15, 1)
# Tim's target: 15 ATL dials/day
# Example: 45 ATL contacts = 3 days of ATL inventory

总可拨打余量指标:

total_runway_days = ROUND(total_callable / 50, 1)
# Tim's target: 50+ dials/day (mix of ATL, GRAY, BTL)
# Example: 200 callable = 4 days of total inventory

线索年龄指标:

avg_days_in_system = AVERAGE(TODAY() - contact.createdate)
recent_engagers = count(hs_analytics_num_page_views > 0)

阶段 5:生成健康状况警报

警报阈值:

指标阈值警报级别操作
ATL 数量< 15⚠️ 警告“增加 ATL 潜在客户开发(prospect-enrich + prospect-refresh)”
可拨打联系人总数< 50🚨 严重“库存不足以支持每天拨打 50 次——升级潜在客户开发”
NEVER ATL 数量> 0🔍 审查“NEVER ATL 层级中有 X 个联系人——将其从序列中移除”
ATL 可拨打余量< 2 天⚠️ 警告“ATL 拨打名单不足 2 天——立即补充”

警报输出:

✓ ATL inventory: 42 contacts (2.8 days runway)
✓ Total callable: 185 contacts (3.7 days runway)
🔍 NEVER ATL: 2 contacts (remove from sequences)
✓ Health: GREEN (acceptable inventory)

阶段 6:输出摘要报告

**格式:**Markdown 摘要 + 详细表格

摘要部分:

# Daily Callable Lead Inventory — 2026-03-19

## Health Status
✓ ATL Inventory: 42 contacts (2.8 days)
✓ Total Callable: 185 contacts (3.7 days)
🔍 NEVER ATL: 2 contacts (review)

## Detailed Breakdown
| Tier | Count | % of Total | Runway Days | Status |
|------|-------|-----------|-------------|--------|
| ATL | 42 | 22.7% | 2.8 | ✓ Good |
| GRAY | 65 | 35.1% | 1.3 | ⚠️ Monitor |
| BTL | 78 | 42.2% | 1.6 | ✓ OK |
| **TOTAL** | **185** | **100%** | **3.7** | **✓ GREEN** |

## Trend vs Yesterday
- ATL: +3 (was 39)
- GRAY: -2 (was 67)
- BTL: +5 (was 73)
- Total: +6 (was 179)

## Top Companies by Leads
1. Acme Corp: 12 contacts (5 ATL)
2. State University: 8 contacts (6 ATL)
3. County Courts: 6 contacts (5 ATL)

## Activity Signal
- Recent engagers (>5 page views): 45 contacts
- Avg days in system: 23 days
- New adds (last 7 days): 18 contacts

可拨打联系人详细表格:

联系人职位公司垂直领域电话层级在系统中的天数互动情况序列
Jane SmithDirector of IT ServicesAcme Corp企业 AV✓ATL3412 次查看BDR_CorporateAV_1
Bob JonesManager, IT InfrastructureState Univ高等教育✓GRAY453 次查看BDR_HigherEd_1
Carol WhiteAV TechnicianExample Inc医疗保健✓NEVER121 次查看REMOVE

阶段 7:与 morning-brief 集成

此技能会将信息传递给 morning-brief(上午 7:30):

  • 将 ATL/GRAY/BTL 细分数据传递给 morning-brief
  • 传递警报标记(⚠️ 警告、🚨 严重、🔍 审查)
  • 传递优先拨打名单中的前 15 个 ATL 联系人
  • 传递余量指标,用于库存规划

传递给 morning-brief 的输出格式:

{
  "atl_count": 42,
  "gray_count": 65,
  "btl_count": 78,
  "never_count": 2,
  "total_callable": 185,
  "atl_runway_days": 2.8,
  "total_runway_days": 3.7,
  "alerts": ["NEVER_ATL_REVIEW"],
  "top_atl_contacts": [
    { "name": "Jane Smith", "company": "Acme", "days_in_system": 34 },
    ...
  ]
}

阶段 8:对比指标(周环比)

可选:跟踪 7 天趋势

日期ATLGRAYBTL总计ATL 可拨打余量状态
2026-03-194265781852.8✓
2026-03-183967731792.6✓
2026-03-173564701692.3⚠️
2026-03-163262681622.1⚠️

趋势分析:

  • ATL 每天增长 3–4 个(良好)
  • 总数每天增长 6 个(良好,达到 prospect-enrich + prospect-refresh 的目标)
  • 可拨打余量稳定在 2.8–3.7 天(可接受;最低要求为 2 天)

输出结果旁路文件

最后一步,将内容写入 ~/.claude/skill-analytics/last-outcome-callable-lead-count.json:

{"ts":"[UTC ISO8601]","skill":"callable-lead-count","version":"1.0.0","variant":"default",
 "status":"[success|partial|error]","runtime_ms":[estimated ms from start],
 "metrics":{"atl_count":[n],"gray_count":[n],"btl_count":[n],"total_callable":[n],"never_atl_flagged":[n],"atl_runway_days":[n]},
 "error":null,"session_id":"[YYYY-MM-DD]"}

如果部分阶段失败但已生成结果,请使用状态 "partial"。仅当未生成任何输出时,才使用 "error"。


技能元数据

版本: 1.0
上次更新: 2026-03-19
作者: Tim Kipper
状态: 生产环境
集成: HubSpot(门户 21530819)
级别: P1(核心 BDR 自动化)
触发方式: 定时(周一至周五上午 7:25)+ 手动(“显示可联系的潜在客户”)
依赖项: 为 morning-brief(上午 7:30)提供数据

评论

支持 Markdown