用途
重复对话预防是一套面向销售机器人(sales bot)的构建方案,目标是帮助开发者创建智能协调系统,避免在多个渠道同时联系同一潜在客户,从而抑制重复触达、保护客户体验并提升转化。
为什么重要:碰撞问题
缺乏协调时可能出现:邮件序列发送第3天消息、短信机器人触发互动序列、LinkedIn 机器人发送好友请求、电话系统排队回拨,而这些都在同一2小时窗口内发生。结果是客户反感、退订、声誉受损。
采用重复预防后:邮件发送后其他所有渠道暂停24小时;检测到响应后路由到单一渠道;互动激增时整合到表现最好的渠道。结果是体验连贯、转化更高。
重复检测的三个层次
第一层:身份解析
跨渠道匹配潜在客户,包括主键(标准化邮箱、E.164 格式电话号码、LinkedIn URL/ID)、次要匹配(姓名+公司组合、域名+名字、区号+姓名)以及模糊匹配(如 "John Smith" 与 "J. Smith"、"john@company.com" 与 "jsmith@company.com"、"+1 (555) 123-4567" 与 "5551234567")。
第二层:渠道协调
跟踪活跃对话,记录 prospect_id、活跃渠道、各渠道最后触达时间、状态与冷却截止时间。在每次触达前须检查:客户是否处于活跃对话、是否在冷却期、渠道是否近期使用过、是否有待处理的触达排队。
第三层:序列感知
跟踪序列成员关系(如客户同时属于企业外呼邮件序列第3步和演示跟进短信序列第1步),检测冲突(同一客户、多序列、时间重叠、消息冲突),并按优先级规则解决(演示 > 冷启动外呼),暂停低优先级序列并合并为单一协调流程。
协调策略
- 渠道锁定:邮件发送后对短信、电话锁定24小时;短信发送后对邮件、电话锁定48小时;拨打电话后对所有自动化锁定72小时;收到回复后暂停所有自动化。
- 主渠道分配:依据响应历史、客户偏好、互动数据和行业惯例分配主渠道,主渠道承担80%触达,其他渠道仅用于多样性或再激活。
- 对话状态机:状态包括 COLD、ACTIVE、ENGAGED、MEETING_SET、PAUSED、OPTED_OUT。状态转移控制触达:COLD→ACTIVE 启动序列;ACTIVE 可接收下一次触达;ENGAGED 停止所有自动化,转人工;MEETING_SET 仅允许提醒;PAUSED 不触达;OPTED_OUT 永不触达。
实现模式
- 集中式队列:通过
OutreachQueue类提供can_send与record_touch方法,检查统一记录、对话状态、渠道锁定、近48小时触达次数与待处理触达。 - 分布式锁定:发送前获取 prospect_id + channel 锁,检查冷却、发送、记录、应用锁定、释放锁,锁超时30秒,防止系统间竞态。
- 事件驱动协调:向消息总线发布 touch.sent、response.received、meeting.booked、opt_out.recorded 等事件,各系统订阅并响应(如短信触达时邮件系统暂停、收到响应时全部停止、会议预订后仅发提醒)。
去重规则
- 联系人归一化:邮箱转小写、去空格、移除 plus 寻址;电话仅保留数字并转为 E.164;姓名去空格并规范大小写。
- 合并策略:同邮箱不同电话则合并记录、补充电话、用最新作主;同电话不同邮箱需先验证非不同人,确认为同一人后合并并用商务邮箱作主;仅姓名+公司匹配则标记待审,不自动合并。
- 冲突解决:优先级顺序为活跃交易序列 > 响应跟进序列 > 再激活序列 > 冷启动外呼序列;暂停低优先级,仅继续最高优先级,完成后恢复其他。
跨渠道协调
- 渠道交接:邮件序列活跃时收到短信响应,应暂停邮件序列、将短信路由到对话、标记邮件为"在其他渠道响应",并仅继续短信;不要继续发送下一封邮件、不要在邮件上问相同问题、不要忽略短信响应。
- 统一收件箱:邮件回复、短信响应、LinkedIn 消息、通话记录汇入单一视图,销售人员可查看含全部渠道的按时间线合并的完整信息与单一回复线程。
边界情况
- 合理的多渠道触达:会议提醒(前一天邮件确认+前一小时短信提醒)属预期行为;不同决策人(邮件联系拥护者、电话联系经济买家)属不同人,均需触达;顺序升级(邮件无响应5天后短信"看到我的邮件了吗")属有意的协调行为。
- 共享收件箱处理:如 sales@company.com、info@company.com 等,通过通用前缀、多个回复者、不同签名检测;策略是分别跟踪各回复者、进行公司级协调、不假设为单一联系人。
- 组织级意识:同一公司多联系人需协调,规则包括每公司每天最多2人、同部门联系人间隔48小时、在联系人之间共享正向信号。
指标
- 碰撞率:跟踪重复触达(失败)、被协调阻止的触达(成功)、接近碰撞(4小时窗口内);目标低于1%;当同一客户2个以上渠道间隔小于24小时、或同渠道间隔小于48小时时告警。
- 退订归因:退订发生时检查近7天触达、使用渠道和频率;若退订前48小时内有3次以上触达、同一天多渠道或触达量激增则标记,用于规则优化。
系统设计
架构上,邮件机器人、短信机器人、电话机器人、LinkedIn 均通过统一外呼控制器路由,控制器强制执行协调规则,并连接客户数据库。状态存储包含 prospect_id、identities(邮箱、电话、LinkedIn)、conversation_state、primary_channel、active_sequences、last_touches、lockouts、touch_count_7d 等字段。