关于 inbound-lead-qualifier-skill
面向 Claude 的入站线索处理 Skill,使用 HubSpot 数据和补全信息进行资格判断、评分与分流。它将首次联系邮件保存为 Gmail 草稿,并要求在对外沟通前完成检查。
主要功能
- 01查询 HubSpot 联系人和公司
- 02资格门槛与线索评分
- 03为合格线索补全信息
- 04按等级和响应时限分流
- 05创建 Gmail 草稿并提议 HubSpot 跟进
适用场景
- 01分诊演示和报价咨询
- 02按匹配度、意向和紧迫度排序
- 03分流现有客户或合作伙伴咨询
- 04准备经过检查的首次联系邮件
MCP 相关
通过 MCP 工具查询 HubSpot、判断资格、补全信息、搜索产品并检查文案,还可创建 Gmail 草稿;对外邮件只暂存,不会发送。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ scientiacapital/ skills --skill inbound-lead-qualifier-skill安装后在 Claude Code 中输入/inbound-lead-qualifier-skill确认已加载。
附带文件config.json
详细介绍
入站线索筛选与路由
在两分钟内将入站信号转化为决策:从 HubSpot 获取联系人,让 `qualify_lead` 判断其是否为线索(客户、渠道、仅参与产品活动的联系人、由 AE 负责的联系人、已抑制联系人),以及其所属层级;补充缺失信息;评估 ICP 匹配度 + 意向 + 紧迫性,得出 0-100 的优先级和响应 SLA;进行路由(由 Tim 跟进,或安排演示并移交给 AE);并将首次联系邮件保存为 Gmail 草稿。线索响应速度:整个流程应在 CLAUDE.md 规定的 60 分钟线索响应时限内完成。 关键词:`inbound lead`、`qualify inbound`、`score lead`、`demo request`、`form fill`、`triage`<quick_start> 触发语:“筛选这条入站线索”、“为 [姓名](来自 [公司])评分并路由”、“分流入站线索”。 **输入:**姓名 + 公司,或电子邮件,或粘贴的表单通知。可选:来源、表单字段。
工具顺序:
hubspot_search_contacts→hubspot_get_contact(Epiphan AI)——获取记录、转化、页面浏览、负责人和生命周期。对相应账户使用hubspot_get_company。qualify_lead(Epiphan AI)——Gate Q。判定结果决定排除、STALE AE LEAD或层级,然后才能进行任何评分。enrich_contact(Epiphan AI)——为通过 Gate Q 的记录补充职位、资历、组织规模和 LinkedIn 信息。备用方案:apollo_people_match(Apollo 插件)。- 评分(Stage 4)→ 路由(Stage 5)。
- 对表单中提及的任何产品执行 Gate S(
search_product_catalog+ Epiphan Knowledgesearch);对邮件和开场白执行 Gate B(get_writing_style一次,针对每段文案使用check_my_copy)。 - 交付:使用
[email protected]创建 Gmailcreate_draft草稿(绝不发送);HubSpot 备注 + 任务须先确认;AE 路径 →ae-handoff-brief-skill。 </quick_start>
<house_rules>
面向客户的技能。输出前,按顺序执行各项检查(详情:~/.claude/skills/epiphan-house-rules-skill/reference/gates.md):
S:提出任何产品主张前,使用 search_product_catalog(Epiphan AI)或搜索 Epiphan Knowledge。 B:对每一段面向客户的文案使用 check_my_copy。
Q:获取候选联系人后立即使用 qualify_lead,在确定层级、补充信息或创建草稿前执行。 D:对外文本保存为 Gmail 草稿,绝不发送。
负责人 ID、门户、电子邮件、席位等标识符均取自该技能中的 reference/identifiers.md——此处不要重复说明。
任何检查未通过时,遵循 reference/self-healing.md(重试、降级并添加标记、提醒 Tim、停止),并在 ~/.claude/skill-runs/.jsonl 中追加一行。
</house_rules>
<success_criteria>
- 在 HubSpot 中找到联系人(或标记为
not in HubSpot,并根据粘贴的表单进行评分) - 记录
qualify_lead判定结果:附带原因的排除、STALE AE LEAD或 ATL/GRAY/BTL 层级 - 仅为通过 Gate Q 的线索尝试补充信息
- 给出 0-100 的评分,展示三个组成部分及其对应输入
- 给出优先级层级 + SLA + 路由(Tim / 通过 ae-handoff-brief 转交 AE / CSM / 渠道),并附上一句话说明原因
- 根据垂直领域和表单中说明的需求,列出资格确认问题(必问 + 建议询问)
- 邮件/开场白中的产品表述通过 Gate S;所有面向客户的文案均通过
check_my_copy - 首次联系邮件已保存为 Gmail 草稿;提议创建 HubSpot 备注/任务,但不得悄悄写入
- 已写入结果 sidecar 和运行日志行 </success_criteria>
MCP 工具: mcp__claude_ai_Epiphan_Ai__hubspot_search_contacts(按邮箱搜索,否则按姓名 + 公司搜索)→
mcp__claude_ai_Epiphan_Ai__hubspot_get_contact → mcp__claude_ai_Epiphan_Ai__hubspot_get_company。
提取:firstname, lastname, email, phone, jobtitle, company, country, lifecyclestage, hs_lead_status, hubspot_owner_id, first_conversion_event_name, recent_conversion_event_name, recent_conversion_date, hs_analytics_num_page_views, hs_analytics_last_url, notes_last_updated, device_count, is_channel,公司字段 industry, numberofemployees, domain。
- 有多条匹配记录 → 选择最近一次转化的记录;将其他记录列为可能的重复项,供 Gate Q 处理。
- 未找到匹配项(潜在客户通过粘贴的表单通知提交)→ 使用表单数据继续处理,标记为
not in HubSpot,并建议在交付时调用hubspot_create_contact(先确认)。 - 来源优先级:HubSpot 中的表单/转化名称优先于用户输入的内容。
第 2 阶段:Gate Q — qualify_lead 决定这是否是潜在客户
MCP 工具: 对联系人(以及新联系人的所属公司)调用 mcp__claude_ai_Epiphan_Ai__qualify_lead。
| 判定结果 | 路由(停止评分) |
|---|---|
现有客户(device_count >= 1 / 生命周期阶段为客户) | 属于增购或支持,不是入站线索:交给负责的 AE/CSM,并附上一行备注。不要向潜在客户起草邮件。 |
| 渠道合作伙伴 | 交给渠道经理;不起草邮件。 |
| 仅对产品感兴趣的联系人(设置/注册表单,而非演示或定价) | 创建支持工单,不视为潜在客户。添加备注;停止处理。 |
| 由 AE 负责,且活动发生在 90 天内 | 通知负责的 AE(Slack/邮件备注),不由 BDR 起草邮件。 |
| 由 AE 负责,且超过 90 天无活动 | STALE AE LEAD — 评分后提交给 Tim,并注明 AE 姓名;由 Tim 决定是否重新跟进。 |
已抑制(bdr_suppressed / 本地抑制文件) | 停止处理;说明原因。新的入站互动本身就是解除抑制的信号——标记给 Tim,不要悄悄恢复。 |
| 通过 | 继续处理。层级(ATL / GRAY / BTL / NEVER)来自此判定;分类规则见 CLAUDE.md,此处不再重述。 |
非北美潜在客户:标记并继续评分,根据 identifiers.md 转给区域负责人。
重试一次后 qualify_lead 仍不可用 → 生成评分并附上 [Gate Q unverified],不起草邮件、不路由,结果设为 partial,并提醒 Tim。
第 3 阶段:补充缺失信息
MCP 工具: 使用 mcp__claude_ai_Epiphan_Ai__enrich_contact 获取职位、资历、部门、LinkedIn 信息和组织规模。备用工具:mcp__plugin_sales_apollo__apollo_people_match。如果 HubSpot 已有职位 + 公司规模,则跳过。信息补充失败时结果为 partial,绝不因此停止处理——根据已知信息评分,并标记缺失输入。
第 4 阶段:评分
ICP 匹配度(0-40) — 依据 Epiphan 的垂直行业,而非通用 SaaS:
- 垂直行业 ICP(0-10):将 CLAUDE.md 中的垂直行业评分(高等教育 90、法院/法律 85、政府 80、企业 AV 80、医疗保健 75、宗教场所 70、K-12 65)÷ 9;未知垂直行业 = 4。
- 买方层级(0-10):ATL 10 · GRAY 6 · BTL 3 · NEVER 0(来自 Gate Q)。
- 组织匹配度(0-10):表单、公司规模或网站显示存在多会议室/多站点/经常性采集需求 = 8-10;单会议室的业余用途 = 2-4。
- 预算信号(0-10):明确预算或报价请求 10;提及正在申请的资助或财政年度 7;过往交易记录 6;无信号 3。
意向度(0-30): 请求演示 30 · 定价/报价 20 · 下载内容或参加网络研讨会 10 · 一般咨询 5。如果过去 30 天内 hs_analytics_num_page_views > 5,则加 +5(上限 30)。
紧迫度(0-30): “尽快”/有日期的活动 30 · 提及时间安排 20 · “正在了解” 10 · 未提及 5。
| 总分 | 优先级 | SLA | 默认路由 |
|---|---|---|---|
| 80-100 | 🔴 HOT | 1 小时内致电 | ATL/GRAY → 预约演示,通过 ae-handoff-brief-skill 转交给 AE;BTL → Tim 致电并确认 EB |
| 60-79 | 🟡 WARM | 24 小时内致电 | Tim 跟进;确认 EB 和时间安排后再安排演示 |
| 40-59 | 🟢 COOL | 先发邮件,再致电 | Tim 跟进;起草 Gmail 邮件 + 提议加入 Nooks 序列 |
| < 40 | ⚪ NURTURE | 不致电 | 加入营销培育流程;在联系人记录中添加备注 |
第 5 阶段:路由
- AE 路径(HOT + ATL/GRAY,或表单评分高于 BDR 门槛的任何商机):根据 house-rules 技能中
reference/identifiers.md的区域/客户组合确定 AE;此处不要写入负责人 ID。 使用ae-handoff-brief-skill交接;更改负责人前必须先确认(hubspot_update_contact_owner)。 - Tim 路径(通过 Gate Q 的其他所有商机):Tim 是记录在案的 BDR;设置通话任务。
- 现有客户 / 渠道 / 支持:按第 2 阶段的表格处理。 用一行说明“为何采用此路由”(级别、垂直行业、分数、区域)。
第 6 阶段:面向客户撰写任何内容前通过 Gate S 和 B
- **S:**对于表单或开场白中提到的每款产品:
search_product_catalog(Epiphan AI)→ Epiphan Knowledgesearch/fetch。已停产产品需说明停产情况并指向当前产品线,绝不提供规格。没有实时结果 →[spec unverified],并标记为partial。 - 竞品内容(Extron、Matrox、Blackmagic、Crestron、vMix、Teradek):用同样的方式验证,否则省略——“可能在比较 X”仅可作为给 Tim 的内部备注,绝不能出现在草稿中。
- **B:**每个会话调用一次
get_writing_style;对邮件主题、正文和电话开场白调用check_my_copy。暂存前应用修改建议。品牌 MCP 不可用 → 暂存时标记[brand check skipped]。
第 7 阶段:交付
- Gmail 草稿 — 使用
mcp__claude_ai_Gmail__create_draft,发件人为[email protected],收件人为潜在客户。 主题Re: <form/demo request> — <Company>。正文:一行确认具体表单及对方的需求;仅在相关时写一行经验证的产品信息;一个恰当的问题;并提出 15 分钟交流。绝不调用send_message。 - HubSpot — 先提出建议,确认后再调用:
hubspot_create_contact_note(“Inbound scored /100 ; route ; reason …”)以及hubspot_create_contact_task,在 SLA 时限内安排通话。 对于 HubSpot 中不存在的潜在客户 → 先调用hubspot_create_contact(须先确认)。 - 聊天输出(决策卡):
# Inbound: <Name> — <Company> Source: <form> · Received: <ts>
Score <n>/100 🔴/🟡/🟢/⚪ SLA: <x> Gate Q: pass | STALE AE LEAD (<AE>) | excluded: <reason>
ICP <n>/40 (vertical <v> · tier <t> · org <o> · budget <b>) · Intent <n>/30 · Urgency <n>/30
Route: <Tim | AE <name> via ae-handoff-brief | CSM | channel> — why: <one line>
Must-ask: 1. what is driving this now 2. current setup / what breaks 3. timeline + event
4. who signs Good-to-ask: success picture · budget range · alternatives seen
Call opener (brand-checked): "<2 sentences>"
Draft: <Gmail draft id> HubSpot: note + task proposed (confirm) Flags: [spec unverified] [brand check skipped] [not in HubSpot]
qualify this inbound lead: Maria Lopez, Director of Academic Technology, Riverside Community College, demo request form, "need lecture capture in 12 rooms by fall"
HubSpot 命中,qualify_lead 通过,级别 ATL。得分 93(ICP 38:高等教育 10、ATL 10、12 个房间 10、财年 8 · 意向 30 · 紧迫性 25)。🔴 HOT,1 小时 SLA,通过 ae-handoff-brief 路由至 AE(北美,高等教育)。通过 search_product_catalog + Epiphan Knowledge 验证 Pearl Nexus 产品信息。Gmail 草稿已暂存,备注 + 任务已提出。
score and route Dan Wu from Acme Studios, pricing page form
qualify_lead:现有客户(device_count 2)。不作为入站潜在客户评分;作为扩展机会转给所属 AE,并附一行备注。不起草潜在客户邮件。
<anti_patterns>
- 联系人已存在于 HubSpot 时,仅依据粘贴的文本评分。
- 撰写包含未通过 Gate S 验证的产品或竞品声明的电话脚本。
- 在此文件中硬编码 AE 姓名/负责人 ID——这些信息由 identifiers.md 管理。
- 不起草邮件,而是直接发送首次联系邮件。
- 在行内重新实现抑制检查;
qualify_lead已会应用该检查。 </anti_patterns>
<self_healing>
success = 已识别、完成门禁检查、评分、路由并暂存草稿。partial = 已生成决策卡,但某个阶段降级处理(信息补全失败、跳过 Gate S/B 并加以标记、HubSpot 备注未确认、Gate Q 未验证 → 不生成草稿)。error = 完全无法识别潜在客户(没有可用的姓名/公司/电子邮件)。按 ~/.claude/skills/epiphan-house-rules-skill/reference/self-healing.md 中的阶梯处理:重试一次 → 降级处理并加上标记 → 提醒 Tim → 停止。每次运行向
~/.claude/skill-runs/inbound-lead-qualifier-skill.jsonl 追加一行。
</self_healing>
写入结果旁路文件
最后一步,将以下内容写入 ~/.claude/skill-analytics/last-outcome-inbound-lead-qualifier-skill.json:
{"ts":"[UTC ISO8601]","skill":"inbound-lead-qualifier-skill","version":"<frontmatter version>","variant":"default",
"status":"[success|partial|error]","runtime_ms":[estimated ms from start],
"metrics":{"leads_qualified":[n],"hot_leads":[n],"warm_leads":[n],"cool_leads":[n],"nurture":[n],"excluded_by_qualify":[n],"stale_ae_surfaced":[n],"routed_to_ae":[n],"drafts_created":[n],"avg_score":[n]},
"error":null,"session_id":"[YYYY-MM-DD]"}
如果某些阶段失败,但仍生成了结果,请使用状态 "partial";error 必须注明阶段名称。仅在未生成任何输出时使用 "error"。