平时销售人员在收集线索的时候,常常会面临几个痛点
1.你不知道对方公司是做什么的
销售拿到 leads 后经常困惑:这是干嘛的公司?有没有潜在业务价值?
一般销售都会去手动访问潜在客户的公司网站,搜索公司的信息,成本高、速度慢。
2.线索跟进不及时
销售将潜在客户提交信息后,销售洞察(Sales Insight)不能即时同步到CRM,导致跟进缺乏针对性。
所以效率都会大打折扣。
那我们今天我们用n8n来搭建一个自动化工作流,解决上面的痛点问题。
这个工作流的大概逻辑是这样:销售提交公司的网站地址,工作流会自动抓取网站首页的内容,AI来分析业务内容是否明确,如果不明确,则自动跳转到网站的about页,继续抓取和总结一次,最后,统一将分析的内容(他们是谁、他们做什么、他们服务谁)存入到多维表格中,并发送通知给团队。
一句话来概括,这是一个 AI 驱动的智能获客 & 线索洞察系统,用于从网站访客提交的线索中自动识别对方业务、生成销售洞察,并推送给销售团队。
接下来我们就详细看看这个n8n流程是如何来配置实现的。

工作流的具体配置方法(详细教程)
我们可以把这个工作流分成4个业务阶段,这样就比较好理解一些。
阶段 1: 触发与初始信息抓取
On form submission(表单触发器)
- 用途: 表单,主要是用来填写新潜在客户的输入数据(姓名、邮箱、网站)。
- 配置方法:
– Form Title/Description: 填写我们希望展示的表单标题和描述。 – Form Fields(表单字段):
– 添加三个字段:Name (String), Email (Email), Website (String)。 – 操作: 当我们保存并开启工作流时,就可以以生成一个Webhook URL和公开表单,用户在表单填写并提交即可触发工作流。

Scrape home page(HTTP Request – 爬取首页)
- 用途: 访问我们在表单提交的网站 URL,通过http节点,来获取首页的 HTML 内容。
- 配置方法:
– URL: 使用表达式来清理和格式化用户输入的网站 URL,确保是一个有效的 URL。
– URL字段的表达式如下:
“`Plain =((() => { // 1. Trim whitespace (Crucial first step)let url = $json.Website.trim();
// 2. Add protocol if missing (Default to https)if (!url.match(/^https?:\\/\\//)) { url = ‘https://’ + url; }
try { // 3. Parse the URL objectconst urlObj = new URL(url);
// 4. Add ‘www.’ ONLY if:if (!urlObj.hostname.startsWith(‘www.’) && urlObj.hostname.split(‘.’).length === 2) { urlObj.hostname = ‘www.’ + urlObj.hostname; }
// 5. Return the clean URLreturn urlObj.toString();
} catch (error) { // If the input is total garbage, return original to let the node error out naturallyreturn url; } })() “ - Options (Response) > Response Format: 选择 Text`。
当我们运行这个节点后,就会把首页的HTML内容提取出来。

HTML(HTML 解析)
- 用途: 从上一步获取到的 HTML 文本中,结构化的提取关键信息。
- 配置方法:
– Operation: 选择 Extract HTML Content。 – Extraction Values: 添加以下规则:
– key: h1, cssSelector: h1 – key: h2, cssSelector: h2, Return Array: 启用 – key: meta_description, cssSelector: meta[name="description"], Return Value: attribute, Attribute: content – key: nav_links, cssSelector: nav a, header a, Return Value: attribute, Attribute: href, Return Array: 启用
运行节点后,就会帮我们从HTML中结构化的提取出关键信息

阶段 2: AI 智能判断与信息总结
AI分析
- 用途: 用AI模型(我们这里用open AI)来分析提取的信息,判断业务描述是否清晰,并决定下一步动作。
- 配置方法:
– Credentials: 连接您的 OpenAI API Key。 – Model ID: 选择需要使用的模型。 – Responses:
– System Prompt(系统角色):
“`Plain You are a Sales Researcher. I will give you the H1, H2, and Description from a company’s home page.
Your Goal: Determine if this text CLEARLY explains what the company does.
Scenario A (Clear): If you understand the business, write a 2-sentence summary in English of the business to better help a sales agent understand the lead. Scenario B (Unclear): If the text is vague (e.g., just says “Welcome” or “Future is here”), look at the provided nav_links list. Find the one most likely to be the “About” or “Mission” page.
Output JSON ONLY: { “status”: “success” OR “need_more_info”, “summary”: “The script…” (if success), “fallback_url”: “/about-us” (if need_more_info, return the specific path from the list) } “`
– User Prompt(用户输入): 注入上一步提取的数据。
“Plain =H1: {{ $json.h1 }} H2: {{ $json.h2 }} Description: {{ $json.meta_description }} Links: {{ $json.nav_links }} “

Switch(路由判断)
- 用途: 根据 AI 的 JSON 输出,将工作流路由到不同的分支。也就是说,需要把提取到的 H1/H2/Description 传给 LLM(chatgpt-4o-latest),判断文本是否“清楚说明公司做什么”,并在清楚时生成 2 句 summary;若不清楚则返回
need_more_info并给出 fallback_url(About 页路径)。

- 配置方法:
– Rule 1: Script Ready (AI 总结成功)
– Conditions:
– Left Value:={{ $json.output[0].content[0].text }} – Operator:contains – Right Value:"status": "success" – Rule 2: Need Deep Dive (需要更多信息)
– Conditions:
– Left Value:={{ $json.output[0].content[0].text }} – Operator:contains – Right Value:"status": "need_more_info" – Fallback Output: 连接到 Error handling 分支。

阶段 3: 深度信息抓取与最终总结(Need Deep Dive 分支)
当 AI 认为首页信息不足时,工作流会进入这个分支。
Construct secondary URL(Set – 构造二级 URL)
- 用途: 将原始网站 URL 与 AI 推荐的 Fallback Path(如
/about-us)拼接成完整的二级 URL。 - 配置方法:
– Assignment Name:Fallback URL – Value:
“`Plain =((() => { // 1. Extract the path (e.g., /about-us) from the AI’s JSON outputconst extractedPath = $json.output[0].content[0].text.match(/\”fallback_url\”:\s*\”([^\”]+)\”/)[1];
// 2. Get the raw website base URL from the triggerconst rawBase = $(‘On form submission’).item.json.Website;
// 3. Clean the base URL (add https if needed, remove trailing slash)const cleanBase = (rawBase.startsWith(‘http’) ? rawBase : ‘https://’ + rawBase).replace(/\\/$/, “”);
// 4. Combine themreturn extractedPath.startsWith(‘http’) ? extractedPath : cleanBase + extractedPath; })() “`

Scrape secondary URL(HTTP Request – 爬取二级页面)
- 用途: 访问上一步骤构造的完整 URL(如
https://www.company.com/about-us)。 - 配置方法:
– URL: 引用上一步骤的输出:={{ $json["Fallback URL"] }} – Options (Response) > Response Format: 选择 Text。

HTML1(HTML 解析 – 二级页面)
- 用途: 这个原理就和上一个HTML节点类似了,不同的是这里提取的是二级页面的主体内容,作为 AI 总结的输入。
- 配置方法:
– Extraction Values: 添加规则:
– key: about_text, cssSelector: main , Return Value: Text ,
(cssSelector选择 标签,通常包含页面的主要文本内容)

AI分析
- 用途: 这里是针对“关于我们”页面的深度文本,生成最终的总结内容。
- 配置方法:
– Credential和Model: 都和之前的AI节点是一样的配置方法 – Responses:
– System Prompt(系统角色):
“`Plain You are a Sales Rep. I will give you text from a company’s “About Us” page. Your goal is to write a 2-sentence summary in English so that a sales rep understands the business of the lead clearly.
Strategy: Mention their mission or history found in the text.
Output: Just the 2 sentences of the script. Do not output JSON. Just the raw text. “`
– User Prompt(用户输入):
“Plain =Page Text: {{ $json.about_text }} “
Clean Data & Clean Data1(Set节点 – 清理数据)
- 用途: 从 AI 的输出中提取并统一最终的总结内容(
final_script字段)。 - 配置方法:
– Clean Data(Success 分支): 从 JSON 中提取 summary 字段。
– Assignment Name:final_script – Value:={{ $json.output[0].content[0].text.match(/\"summary\":\s*\"([^\"]+)\"/)[1] }} – Clean Data1(Need Deep Dive 分支): AI 直接返回了文本,无需 JSON 解析。
– Assignment Name:final_script – Value:={{ $json.output[0].content[0].text }}
阶段 4: 同步到飞书多维表格
Aggregate(聚合)
- 用途: 将来自不同分支(Clean Data 和 Clean Data1)的数据聚合到一起,确保后续节点只有一个数据流。
- 配置方法: 默认配置即可,Aggregate:
Aggregate All Item Data。
获取飞书token并写入飞书多维表格
- 用途: 比如我们用飞书多维表格搭建了一个CRM轻应用,那么我们就可以将完整的潜在客户信息和 AI 洞察写入我们的多维表格里了
关于飞书多维表格的配置方法之前已经讲过很多了,这里就不再详细说明了。
运行之后,如下图,对应的内容就写入到飞书多维表格中了。

最后,我们可以再加上一个通知节点,可以把获取到的内容发送到飞书、telegram、slack或者邮箱都可以
异常处理分支(Error Handling)
- Error handling(记录失败)
– 用途: 当 Scrape home page 或 Scrape secondary URL 节点失败时(例如 URL 无效或网站宕机),将错误信息记录到多维表格中。 – 配置方法:
– 与步骤 12 类似,但 AI Insight 字段的值设置为:Scrape Failed - Check URL manually

最后
我们回顾一下这个工作流是如何自动化、智能化的解决了潜在客户信息处理的问题。
| 提效点 | 传统人工操作 | n8n AI 工作流 |
|---|---|---|
| 客户洞察 | 手动浏览网站,耗时 5-10 分钟。 | AI 自动总结,10 秒内生成 2 句话的核心业务洞察。 |
| 信息深度 | 首页信息不足?需要手动点击“About Us”等链接。 | AI 自动判断,信息不足则自动查找并抓取“关于我们”页面。 |
| 数据同步 | 销售/运营手动录入 CRM。 | 自动同步到表格,并附带 AI 洞察。 |
| 团队通知 | 仅通知新线索。 | 实时通知,包含 AI 生成的销售话术/洞察,实现“速度跟进(Speed-to-Lead)”。 |
这个工作流极大地提高了“潜在客户响应速度”和“首次接触的质量”,确保销售团队能在第一时间用精准的信息跟进客户。
📋 这套销售调研相关模板,我整理成模板了
跟着上面步骤搭要花点时间。想直接拿现成的改,加我微信备注「销售调研」,我发你。
🤔 卡在某一步了?
搭建过程里如果哪一步卡住了,如果你照着做没跑通,或者你们公司情况不太一样,可以找我聊聊,我免费帮你看看怎么调。不合适我也会直说。
扫码加我,备注「销售调研」领模板
想看更多这类方案,我都整理在 吨师傅工具箱 里了:客户管理、进销存、工单报修……按场景分好类,可以直接抄。


