2026-09-28 · 原文发布日
询价邮件自动打分进表格并推送热门线索
免费n8n模板:每5分钟轮询Gmail收件箱,过滤 newsletter、自动回复和退信后,用OpenAI判断是否为真实询价并抽取服务、预算、截止时间和摘要;输出经过清洗和标准化(预算转数字、电话格式化、按预算或紧急度标热门/普通),再以发件人邮箱为唯一键写入或更新Google Sheets的Leads表,热门线索通过Telegram推送提醒并附原邮件链接。
原文要点
原模板是轮询型而非推送型:每 5 分钟按配置查询 Gmail;先剔除 newsletter、自动回复、退信和忽略发件人,并裁剪清洗正文后再进 AI;OpenAI 信息抽取负责判断是否真实询价,并产出 service、budget、deadline、summary 等结构化字段;之后做公式文本消毒、budget 转数字、电话标准化、按预算或紧急度标 hot/normal;Google Sheets 的 Leads 表以发件人邮箱为唯一键追加或更新;hot 线索再用 HTML 安全文本发 Telegram,并附 Gmail 原邮件链接。设置项含表格 ID、Telegram chat ID、热门预算阈值、默认币种、忽略关键词。
这次做成什么
做出可复跑的“询价进表+热门提醒”流程:Schedule 每 5 分钟→Gmail 搜索→过滤噪声→OpenAI 抽取→标准化→以 email 为 key 写入/更新 Leads→仅 hot 发 Telegram。练习用 3 条合成邮件覆盖询价、newsletter、重复询价更新,验证去重和阈值。
准备什么
- n8n 中已配置 Gmail、OpenAI、Google Sheets、Telegram 四类凭据
- Google Sheets 文档已建,内含名为 Leads 的工作表
- Leads 表头完全为 key, received_at, name, email, company, phone, service, budget, currency, deadline, summary, subject, priority, gmail_link
- 已有 Telegram bot,并知道目标 chat ID
- 准备替换 YOUR_SPREADSHEET_ID、热门预算阈值、默认币种和忽略发件人关键词
具体怎么做
建表与设置项
先在 Google Sheets 建 Leads 工作表并按 prerequisites 的 14 列表头逐字建列。n8n workflow 起始放 Set/Settings:spreadsheet_id 替换 YOUR_SPREADSHEET_ID,telegram_chat_id 填测试群,hot_budget_threshold 例如 50000,default_currency 例如 CNY,ignored_senders 例如 newsletter@,no-reply@,mailer-daemon@。
轮询与初滤
用 Schedule Trigger 设每 5 分钟,接 Gmail Get Many,搜索查询只取未读或近 1 天,如 is:unread newer_than:1d。Filter 节点丢弃:from 匹配 ignored_senders、subject 含 unsubscribe/自动回复/退信、headers 带 auto-submitted 的合成测试规则;再用 Code 清洗 body,去引用、HTML 标签、多余空白,截断到约 2000 字符。
OpenAI 抽取并校验
OpenAI 节点使用信息抽取提示词,输入 from、subject、clean_body、received_at、gmail_link;要求只输出 JSON:is_inquiry、name、email、company、phone、service、budget、currency、deadline、summary、urgency。后接 Code:is_inquiry=false 直接终止;文本字段去掉 =,+,-,@ 开头的表格公式风险;budget 用正则提取数字转 number;currency 空则填 default_currency;phone 只保留数字和开头 +;priority 在 budget>=hot_budget_threshold 或 urgency=high 时设 hot,否则 normal;key=email 小写。
写入 Leads 并热门提醒
Google Sheets 节点操作选 append or update,匹配列用 key,映射所有 14 列;received_at 用邮件时间 ISO,gmail_link 用 Gmail 消息链接表达式。后接 IF priority=hot:Telegram Send Message 用 HTML parse mode,文本做转义,包含 name、service、budget currency、deadline、summary 与 gmail_link;normal 不发送。用手动执行先 pin 合成邮件,再开 Schedule。
可直接复制的材料
询价抽取提示词
本站独立编写,可粘贴;表达式字段名需与你的 Gmail/Code 节点一致。
系统:你是销售询价信息抽取器。只输出 JSON 对象,不要 markdown,不要额外文字。若不是真实采购/合作询价,is_inquiry=false,其余字段可为空字符串或 null。字段:is_inquiry 布尔;name,email,company,phone,service,budget,currency,deadline,summary,urgency。budget 只写数字,无法判断写 null;currency 用三字母代码或空;deadline 尽量 ISO 日期,无法判断写 null;urgency 只能是 low|normal|high;summary 不超过 60 个中文字符。不要编造邮件没有的信息。
用户:发件人:{{ $json.from }}
收件时间:{{ $json.received_at }}
主题:{{ $json.subject }}
正文:{{ $json.clean_body }}
邮件链接:{{ $json.gmail_link }}Leads 表头 CSV
本站合成示例表头与一行测试数据;gmail_link 的 TESTMESSAGEID 需替换为测试邮件 ID,不是真实客户。
key,received_at,name,email,company,phone,service,budget,currency,deadline,summary,subject,priority,gmail_link
lead@example.test,2026-09-28T10:00:00+08:00,测试客户,lead@example.test,示例公司,+8613800000000,网站改版,80000,CNY,2026-10-15,需要官网改版并希望两周内报价,询问网站改版报价,hot,https://mail.google.com/mail/u/0/#inbox/TESTMESSAGEID流程设置与字段映射示例
本站练习方案,不是可导入原工作流;未核实的界面名与参数请在原模板和当前 n8n 版本核对。
{"settings":{"spreadsheet_id":"REPLACE_YOUR_SPREADSHEET_ID","sheet":"Leads","telegram_chat_id":"REPLACE_TEST_CHAT_ID","hot_budget_threshold":50000,"default_currency":"CNY","ignored_senders":["newsletter@","no-reply@","mailer-daemon@"]},"gmail":{"pollMinutes":5,"query":"is:unread newer_than:1d"},"normalize":{"key":"email.toLowerCase()","budget":"parse number from text, null if absent","phone":"keep leading + and digits only","priority":"budget>=hot_budget_threshold or urgency=='high' ? 'hot' : 'normal'","sanitize":"strip leading = + - @ from spreadsheet text"},"sheetsMapping":{"key":"key","received_at":"received_at","name":"name","email":"email","company":"company","phone":"phone","service":"service","budget":"budget","currency":"currency","deadline":"deadline","summary":"summary","subject":"subject","priority":"priority","gmail_link":"gmail_link"},"telegramOnlyIf":"priority=='hot'"}输入与输出示例
本站虚构演示,数字字段由示例规则对应生成,未声称原作者运行结果。
输入
合成邮件 A:from=采购部王敏 <wangmin@buyer-example.test>,subject=询价比选:CRM 实施预算 12 万,正文写明公司、服务=CRM 实施、预算 120000 CNY、deadline=2026-10-20、电话 138-0000-0001,希望本周给方案。对应输出
抽取后标准化行关键值:key=wangmin@buyer-example.test,service=CRM 实施,budget=120000,currency=CNY,deadline=2026-10-20,phone=13800000001(按规则仅保留数字,原号码无+故不补国家码),priority=hot;Telegram HTML 消息含“王敏|CRM 实施|120000 CNY|截止 2026-10-20”和 Gmail 链接,Sheets 对该 key 执行更新而非新增重复行。做完检查这些
- 同一发件人邮箱第二次询价会命中 key=email 并更新 Leads 原行,不产生两行重复线索。
- subject 或 from 命中 newsletter/no-reply/mailer-daemon 的邮件在 AI 前被过滤,OpenAI 与 Sheets 节点无执行。
- 正文以 =SUM( 或 +8613 开头的内容写入 Sheets 前被消毒,单元格不会被当成公式执行。
- budget 文本“约 12 万”可转成 120000 数值;无法解析时 budget=null 且不只因预算误判 hot。
- budget 达到 hot_budget_threshold 或 urgency=high 才发 Telegram;normal 线索只进表不推送。
- Telegram 消息为 HTML 安全,公司名中的 < > & 被转义,且含可点击的 gmail_link。
容易卡住的地方
- 每 5 分钟轮询不是实时到达,邮件可能在两次轮询间隔后才进入流程。
- YOUR_SPREADSHEET_ID 未替换或 Leads 表名拼写不同,会让 Google Sheets 节点直接失败。
- 14 列表头顺序和拼写需与映射一致,少 gmail_link 会造成热门提醒缺链接。
- Telegram bot 未加入测试群或 chat ID 错误时,hot 分支会运行但消息无法送达。
- 预算单位混杂时只转数字可能放大误判,阈值 50000 是本练习设定不是通用标准。
- OpenAI 可能把营销邮件误标 is_inquiry=true,要保留 is_inquiry=false 终止和抽样核对。
- 模板页未标注付费不代表 Gmail、OpenAI、Sheets、Telegram 或 Nilyo 类服务不产生各自费用。
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Score inquiry emails into Google Sheets leads with OpenAI and Telegram alerts
- 原作者
- Luna | Flow Lab
- 原始发布日期
- 2026-09-28T13:41:45.890Z
- 来源
- https://n8n.io/workflows/20064