2026-09-21 · 原文发布日
表单线索自动评分分流
把网站表单 POST 到 webhook 后,先规范姓名、邮箱、公司、官网、留言等字段并缺项报警;再抓官网文本,连同线索交给 Claude 返回 0–100 分、理由、顾虑、摘要和下一步,按阈值分 hot/warm/cold,解析失败进 review。热线索发 Slack 简报,热与温线索用 Gmail 回确认信,全部评分结果 upsert 到 HubSpot;模型只评分,不决定路由。
原文要点
这是Amplence发布的免费n8n模板(仅核心节点,n8n Cloud或自托管均可运行)。流程:POST webhook接收表单线索;规范化name、email、company、website、message、source字段,缺email或message就向Slack发“需要人工查看”告警;HTTP抓取公司官网并提取清洗后的短文本;连同线索发给Anthropic Messages API(Claude,Header Auth为x-api-key),要求返回0–100分、理由、顾虑、摘要、下一步的结构化JSON;解析后按阈值分hot/warm/cold,解析失败进review并打时间戳;热线索发Slack简报,热与温线索经Gmail发确认信,全部结果upsert到HubSpot。作者强调模型只评分,不决定路由;阈值与ICP文本在Settings节点改。
这次做成什么
搭好“表单→Claude评分→阈值分流→Slack/Gmail/HubSpot”的线索处理线,并用两条合成线索分别验证hot与review路径。评分由Claude给出,路由完全由阈值代码决定。
准备什么
- n8n Cloud或自托管实例,模板只用核心节点
- Anthropic API key,存为名为x-api-key的Header Auth凭据
- Slack凭据与一个目标频道,用于热线索简报和缺项告警
- HubSpot私有应用token,用于联系人upsert
- Gmail凭据,用于向线索发送确认邮件
- 能POST JSON的表单工具,字段含name、email、company、website、message、source(source可选)
具体怎么做
接webhook并做字段校验
新建Webhook节点,方法POST。把生成的URL配到表单工具。后面接Code节点:把name、email、company、website、message、source统一取出并trim;若email或message为空,走IF分支向Slack发“needs a look”告警并终止该条,不再调Claude。
抓官网文本
有website时接HTTP Request节点GET该网址,再用Code节点从HTML里剥掉script/style标签,截取一段清洗后的纯文本(例如前2000字符)作为给模型的公司背景样本。抓取失败时置空字符串继续,不阻断评分。
调Claude拿结构化评分
用HTTP Request节点调Anthropic Messages API,凭据选x-api-key的Header Auth。请求体里把线索字段、官网文本、以及Settings节点里的公司名与ICP段落拼进用户消息,系统提示词用下方材料全文,强制只返回指定JSON。注意保持JSON输出,否则下游解析会把所有线索送进review。
阈值分流与路由
接Code节点解析Claude返回:取score、reasons、concerns、summary、nextStep;解析异常或模型拒答时tier=review。否则按Settings里的阈值判定,例如hot≥80、warm≥50、其余cold,并写入评分时间戳。模型输出不参与路由判断。
执行三个出口
IF分支:tier=hot时向Slack频道发包含评分、理由、下一步的简报;tier为hot或warm时经Gmail向线索邮箱发确认信(正文用Settings里的公司名和回复时限承诺,确认信为固定模板、不含AI生成内容);所有非缺项线索都走HubSpot节点upsert联系人,写入name、email、company、websiteUrl、score、tier、summary。
可直接复制的材料
Claude评分系统提示词
本站独立编写,粘在调Anthropic API的HTTP请求体system字段;保持JSON输出是分流代码能解析的前提。
你是B2B线索评分器。根据给定的线索信息、公司官网文本摘要和理想客户画像(ICP),评估线索的匹配度与意向强度。只返回一个JSON对象,不要任何额外文字,字段为:score(0到100的整数)、reasons(字符串数组,最多3条得分依据)、concerns(字符串数组,最多2条顾虑,没有则为空数组)、summary(一句中文摘要)、nextStep(一句建议的下一步动作)。只依据提供的信息评分,不要推测官网文本中不存在的事实;信息不足时在concerns中说明并适当压低分数。Settings节点参考值
本站独立设定的参考值,替换为你自己的公司名、ICP描述、阈值与回复承诺;阈值改动即改变分流边界。
{"companyName":"云桥数据科技","icp":"理想客户:50至500人规模的国内电商或连锁零售企业,有明确的报表或数据整合需求,预算周期在本季度内。","thresholds":{"hot":80,"warm":50},"replyPromise":"我们将在1个工作日内回复您。"}两条合成测试线索JSON
本站虚构数据。第一条email、message齐全走评分;第二条缺email,应触发Slack缺项告警且不调用Claude。
[{"name":"陈静","email":"chenjing@example-shangcheng.cn","company":"尚城电商","website":"https://example-shangcheng.cn","message":"我们300人电商团队想找报表整合方案,本季度要定","source":"官网表单"},{"name":"test","company":"","message":"随便看看"}]输入与输出示例
本站虚构演示,非真实调用Claude的结果;评分数字仅用于说明阈值分流。
输入
{"name":"陈静","email":"chenjing@example-shangcheng.cn","company":"尚城电商","website":"https://example-shangcheng.cn","message":"我们300人电商团队想找报表整合方案,本季度要定","source":"官网表单"}(阈值hot≥80、warm≥50)对应输出
Claude返回示意:{"score":86,"reasons":["团队规模300人落在ICP区间","明确提到报表整合需求","本季度内有采购时限"],"concerns":["未提及预算范围"],"summary":"中大型电商团队,需求与ICP高度匹配且有明确时限","nextStep":"24小时内安排顾问电话并发送同类产品案例"}
路由结果:tier=hot → Slack收到评分86的热线索简报;Gmail向chenjing@example-shangcheng.cn发出确认信;HubSpot upsert联系人并写入score=86、tier=hot。做完检查这些
- 缺email的测试线索触发Slack告警且Anthropic接口无调用记录
- Claude返回可被JSON解析,含score、reasons、concerns、summary、nextStep五字段
- score=86在阈值80以上被判为hot,Slack简报与Gmail确认信都发出
- 故意让模型返回非JSON文本,该线索tier变为review且不发送任何对外邮件
- HubSpot联系人记录里score与tier字段与分流结果一致
容易卡住的地方
- Anthropic凭据必须是名为x-api-key的Header Auth,挂在Claude那个HTTP请求上
- 一旦改动提示词导致输出不是纯JSON,解析失败会把所有线索打进review
- 官网抓取可能遇到反爬或超时,练习时用可访问的示例站点,失败时按空文本继续
- 确认信是固定模板不含AI内容;若要个性化回复需按作者建议另加人工审核步骤
- 阈值只认Settings里的数字,改完要重新执行测试线索核对边界(如80整归hot)
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Score and route inbound leads with Claude, HubSpot, Slack, and Gmail
- 原作者
- Amplence
- 原始发布日期
- 2026-09-20T16:03:56.129Z
- 来源
- https://n8n.io/workflows/19767