AI PLAY玩法更新持续收录
← 回到更新流

2026-09-28 · 原文发布日

开发信回信分类并生成每日电话清单

免费n8n模板:Smartlead的EMAIL_REPLY webhook触发后清洗回信正文,用OpenAI(不配则用关键词规则兜底)分类为有意向、暂缓、转介绍、退订、外出、需人工六类,映射成Zoho CRM的线索状态更新和带截止日的跟进任务;退订可自动调Smartlead接口全局屏蔽。工作日上午7:30还从Zoho拉取目标状态线索,按意向排序生成限量电话清单发到团队webhook。支持预览模式先看不写库。

原文要点

该n8n模板免费,由Smartlead的EMAIL_REPLY webhook触发(也内置演示触发器生成样例回信),清洗正文去除引用历史后用OpenAI分类,未配置OpenAI则用关键词规则加兜底;分为interested、not_now、referral、unsubscribe、out_of_office、needs_human六类,映射为Zoho CRM线索状态更新和带截止日的跟进任务,外出类忽略;退订可经Smartlead API全局屏蔽;预览模式只输出payload不写库;工作日上午7:30从Zoho按配置状态拉线索,按意向、转介绍、高分A级排序生成限量电话清单发到团队webhook。Zoho用Self Client OAuth,refresh token需含ZohoCRM.modules.ALL与ZohoCRM.coql.READ作用域。

这次做成什么

先以TEST_RUN预览模式跑通「回信清洗→六分类→Zoho payload预览→退订屏蔽演示→电话清单」全链路,确认payload正确后再切live;配本站设计的分类提示词与关键词兜底规则。

准备什么

  • Smartlead账号并能创建EMAIL_REPLY webhook指向本工作流生产URL
  • Zoho CRM账号及Self Client OAuth的client ID、client secret、refresh token
  • Smartlead API Key用于退订屏蔽;可选OpenAI API Key用于AI分类
  • 可选Slack/Teams/Google Chat的incoming webhook地址用于告警与电话清单

具体怎么做

  1. 触发与清洗

    Webhook节点接收Smartlead EMAIL_REPLY事件(演练阶段用演示触发器或Pinned本站样例)。Code节点剥离引用历史:截断「On ... wrote:」「-----Original Message-----」之后内容,去除多余空行,并归一化email、name、leadId、campaign字段。

  2. 六分类(AI或规则)

    配置OpenAI凭据时用HTTP Request/AI节点发下方分类提示词,要求只回JSON;未配置时走Code节点执行关键词兜底规则(见材料),命中退订类关键词需再经安全检查,避免把含「不需要」的长句误杀,不确定一律落needs_human。

  3. 分类映射为Zoho动作

    Switch节点按分类分流:interested→状态设「有意向」并建明日到期跟进任务;not_now→状态「暂缓」建一周后任务;referral→状态「转介绍」并通知团队;out_of_office→忽略不写库;unsubscribe→进入屏蔽分支;needs_human→仅发团队告警。TEST_RUN=true时用Code节点输出payload预览。

  4. 退订屏蔽分支

    unsubscribe分支在配置Smartlead API Key后调其退订接口将该线索从所有campaign屏蔽;未配置时输出「将要发送的请求」预览,不实际调用。

  5. 每日电话清单

    Schedule Trigger设为工作日07:30(注意时区),HTTP Request用COQL查询Zoho中配置状态的线索,Code节点按interested→referral→A级评分排序并截取上限(本站演练设20条),POST到NOTIFY_WEBHOOK_URL;确认无误后把TEST_RUN改为false允许写库。

可直接复制的材料

回信六分类提示词(粘贴到OpenAI消息体)

本站独立编写;阈值0.7为本站设定,可调整

你是开发信回信分类器。把下面的回信正文分类为六类之一:interested(明确兴趣/约聊)、not_now(暂缓/以后再说)、referral(转介绍他人)、unsubscribe(要求退订/不要再发)、out_of_office(自动回复/休假)、needs_human(含糊、投诉、法律措辞或无法判断)。只输出JSON:{"label":"类别","confidence":0到1,"reason":"10字内依据"}。confidence低于0.7时label一律改needs_human。回信正文:{{cleanedText}}

关键词兜底规则配置

本站独立编写的示例规则,优先级自上而下,可按业务改词表

{"rules":[{"label":"unsubscribe","any":["退订","unsubscribe","不要再发","opt out","remove me"]},{"label":"out_of_office","any":["自动回复","out of office","休假中","on vacation","auto-reply"]},{"label":"referral","any":["你可以联系","转给","speak with","cc'd"]},{"label":"not_now","any":["下个月再","暂时不需要","later","not now","下个季度"]},{"label":"interested","any":["感兴趣","约个时间","interested","book a call","报价"]}],"fallback":"needs_human","safetyCheck":"正文超过200字且同时命中unsubscribe与其他类关键词时改判needs_human"}

合成EMAIL_REPLY测试数据

本站合成数据;清洗后正文应为前两行,预期分类not_now

{"event_type":"EMAIL_REPLY","lead":{"email":"zhangsan@demo-corp.cn","name":"张三","lead_id":"L-1001"},"campaign":"Q4-demo","reply_text":"谢谢来信。\n这周实在没空,下个月初再联系我吧。\n\nOn Mon, agent wrote: 我们提供..."}

输入与输出示例

本站虚构演示,非模板实测结果;OpenAI与Zoho可能另计费

输入

用上方测试数据触发:张三回复「这周实在没空,下个月初再联系我吧」(含引用历史)

对应输出

清洗后正文=「谢谢来信。这周实在没空,下个月初再联系我吧。」;分类{"label":"not_now","confidence":0.93,"reason":"明确说下个月再联系"};预览payload:Zoho线索状态=暂缓,任务=「回访张三-开发信暂缓」截止日为今天+7天(对应步骤3的一周后跟进任务设定)

做完检查这些

  • 清洗后正文不含「On ... wrote:」之后的引用内容且email字段已归一化
  • 六类样例各跑一条时Switch分支走向与映射表一致
  • TEST_RUN=true时不产生任何Zoho写入,只输出payload预览
  • 退订分支在未配Smartlead Key时只输出将要发送的请求
  • 工作日07:30清单消息按interested优先排序且不超过设定上限

容易卡住的地方

  • Zoho refresh token必须含ZohoCRM.modules.ALL和ZohoCRM.coql.READ两个作用域,缺一会查询失败
  • 07:30调度需确认n8n实例时区,否则电话清单会在错误时间发出
  • 未配OpenAI时关键词规则可能误分类长邮件,safetyCheck兜底别删
  • TEST_RUN默认应为true,切false前先用合成数据验证payload
  • 电话清单排序中的A级评分依赖你Zoho里的评分字段,需先确认字段存在

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Classify Smartlead replies and build a daily call list with Zoho CRM and OpenAI
原作者
Atharva Ashtekar
原始发布日期
2026-09-28T07:32:25.492Z
来源
https://n8n.io/workflows/20023