2026-09-24 · 原文发布日
n8n 工作流:语音汇报带看,自动跟进买家
面向房产经纪的 n8n 模板:经纪人在 Telegram 发带看语音,OpenAI 转写后由 GPT-4o-mini 提取买家联系方式、偏好、预算和意向度,写入 GoHighLevel 联系人并生成跟进计划。再从 Google Sheets 的房源表按条件打分选出 3 套相似房源(排除已看的),有邮箱就经 Gmail 发给买家,并在 CRM 建跟进任务,最后在 Telegram 回执汇总。需要 Telegram、OpenAI、GoHighLevel、Google 多处凭证。
原文要点
原模板由 Rahul Joshi 发布在 n8n 模板库:Telegram 触发器接收经纪人语音,非语音消息会提示补发语音;OpenAI 转写后用 GPT-4o-mini 抽取买家联系方式、偏好、预算、意向度并生成带时间的跟进计划;有电话或邮箱就在 GoHighLevel 里 upsert 联系人并附加带看笔记;从 Google Sheets 房源表按条件打分取前三套且排除已看房源;有邮箱且匹配成功经 Gmail 发送;在 CRM 建跟进任务并在 Telegram 回执汇总。设置项含 GHL location ID、表格列 listing_id/title/area/price/bedrooms/property_type/url/status。
这次做成什么
在本站用一个简化练习复现这条流水线的核心:把一段模拟带看语音转写文本解析成结构化买家档案,再对一份合成房源表打分选出 3 套推荐并生成跟进话术。练会后再按原模板接 Telegram/GHL/Gmail 节点。
准备什么
- n8n 实例与 OpenAI API key(文本模型即可练习)
- 一个 Google Sheets 测试表,含房源数据页
- 练习阶段不需要真实 Telegram/GHL/Gmail 凭据,可用手动触发加测试数据代替
具体怎么做
搭建手动触发的解析练习
在 n8n 新建工作流,用 Manual Trigger 接一个 Set 节点,字段 transcript 填入下方示例的虚构转写文本。后面接 OpenAI Chat 节点,粘贴材料一的结构化抽取提示词,要求严格输出 JSON。
校验并落库买家档案
在 OpenAI 节点后接 Code 节点解析 JSON:若 phone 或 email 至少一个存在,进入模拟 CRM 写入分支(练习时可用 Google Sheets 的 Buyers 页代替 GHL);两者都缺失则走另一分支回写一条“请经纪人补充联系方式”的提示文本,对应原模板无联系方式则不建联系人的逻辑。
房源打分选三套
再接 Google Sheets 读取节点读房源表,用 Code 节点实现打分:预算内 +2 分、卧室数匹配 +2、区域一致 +1、类型一致 +1,排除 visited_listing_id 等于本次带看房源的行,按分数降序取前三。
生成跟进内容并汇总
用第二个 OpenAI 节点把买家档案加前三房源拼成跟进邮件草稿与跟进任务清单(材料二提示词),最后用 Set 节点汇总 CRM 状态、已匹配房源数、任务到期日,模拟 Telegram 回执消息。
可直接复制的材料
买家意向结构化抽取提示词
本站独立编写,字段名可对照原模板输出调整;{{ }} 为 n8n 表达式。
你是房产经纪 CRM 助手。下面是经纪人带看后的语音转写文本。请抽取并仅输出 JSON,不要输出任何其他文字:
{"buyer_name": "字符串或null", "phone": "字符串或null", "email": "字符串或null", "budget_max": 数字或null, "preferred_areas": ["区域"], "bedrooms_min": 数字或null, "property_type": "字符串或null", "visited_listing_id": "字符串或null", "interest_level": "high|medium|low", "follow_up_plan": [{"step": "动作", "due_in_days": 数字}]}
判定规则:明确说近期要定/复看为 high;只问价为 medium;随便看看为 low。跟进计划按意向度生成 2-3 步。转写文本:{{ $json.transcript }}跟进邮件与任务生成提示词
本站独立编写,Gmail 节点正文可引用其邮件部分。
基于以下买家档案 JSON 和候选房源 JSON 数组,输出两部分:1)一封 150 字以内的中文跟进邮件正文,逐套给出标题、区域、总价、户型和一句卖点;2)跟进任务清单 JSON:[{"title":"任务名","due_in_days":数字}]。没有候选房源时邮件改为告知“正在继续为您筛选”。买家:{{ $json.buyer }} 房源:{{ $json.matches }}合成房源表 CSV
本站合成数据,导入 Google Sheets 测试页使用;status 非 available 的行应被过滤。
listing_id,title,area,price,bedrooms,property_type,url,status
L101,江畔两居,滨江,3200000,2,公寓,https://example.test/L101,available
L102,学府小三房,城西,4100000,3,公寓,https://example.test/L102,available
L103,湖畔叠墅,滨江,6800000,4,别墅,https://example.test/L103,available
L104,老城一居,城中,1800000,1,公寓,https://example.test/L104,available
L105,滨江三房,滨江,3900000,3,公寓,https://example.test/L105,available
L106,山景联排,城北,5200000,3,别墅,https://example.test/L106,sold输入与输出示例
本站虚构演示,非原作者运行结果,输出格式供核对练习分支是否走对。
输入
转写文本:“刚带王女士看了 L101 江畔两居,她预算四百万以内,想要滨江或城西的两到三居,电话 13800001234,邮箱 wang@example.test,说下周想复看,挺急的。”对应输出
{"buyer_name":"王女士","phone":"13800001234","email":"wang@example.test","budget_max":4000000,"preferred_areas":["滨江","城西"],"bedrooms_min":2,"property_type":"公寓","visited_listing_id":"L101","interest_level":"high","follow_up_plan":[{"step":"发送相似房源邮件","due_in_days":1},{"step":"电话确认复看时间","due_in_days":3}]};按打分规则:L105得6分(预算内+2、三居+2、滨江+1、公寓+1),L102得4分(410万超预算不得预算分,三居+2、城西+1、公寓+1),L104与L103各得3分并列、按总价更低优先取L104。故前三为L105、L102、L104;L101因visited被排除,L106因已售被过滤。做完检查这些
- OpenAI 节点输出是可被 JSON.parse 解析的单层 JSON,无多余解释文字
- 无 phone 且无 email 的转写会走提示补充分支而不写入买家表
- visited_listing_id 对应的房源不出现在前三推荐中
- status非available的房源被过滤,超预算房源不得预算加分因而排名靠后,练习打分与规则逐条可对上
容易卡住的地方
- 语音转写节点需要真实 Telegram 语音文件,练习用文本代替时不要删除正式流程的转写节点
- GoHighLevel 需要 LeadConnector OAuth/API 访问并填对 location ID,否则 upsert 会静默失败
- Gmail 发送节点要求 OAuth2 授权范围含发信权限
- 打分权重是本练习设定,原模板的具体打分逻辑需在导入后核对 Code 节点
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Follow up real estate site visits from Telegram with OpenAI, GoHighLevel and Gmail
- 原作者
- Rahul Joshi
- 原始发布日期
- 2026-09-24T07:50:31.061Z
- 来源
- https://n8n.io/workflows/19887