客户 E · 上海
「你是哪个店啊」——他问的是店,我们连问两遍“做哪些柜子”
9 月 24 日下午,销售个人微信给他发了样板房活动(上海档 898 → 598)和两张海报。召回跟进发出 1 分钟后,他第一次开口:“你是哪个店啊”。接下来 8 分钟里,模型两次想答门店(“上海有的!咱们在浦东和宝山都有店……”、宝山总店地址),两次都被发送前的检查整条换掉,客户实际收到的是几乎一样的一句:“这次打算做哪些柜子?衣柜、橱柜,还是全屋都做?” 16:00 他说“你们活动都一样了,你知道他应该也知道”。AI 写好的回复在发送前被认人检查拦下(当时窗口开着另一位客户,拦得对),之后再没有下文,提醒卡片在群里挂了三天没人接。
完整聊天记录与逐句来源标注
时间为北京时间。来源标注:首触 / 召回(消息表 + 召回任务表)、AI 代回(有真实调用记录,列出这一轮喂给模型的资料、示例、规则)、读屏补录(只出现在模型输入里、消息表没有;发送方按客户端读屏判定,未经截图核对)、未发出。
聊天截图待销售补。7 条“读屏补录”的原文和先后顺序来自客户端每一轮上报给服务端的屏幕内容:15:58 那一轮读到了“宝山建配龙”那一段,16:01 那一轮读到的是后面四句,两轮读到的范围不一样。它们的发送方、准确时间都需要截图核对。
用户背景与核心需求
他开口第一句问“哪个店”,最后说“我已经在对接了”。这两句连起来看,他关心的不是柜子,而是“你们是不是一家”。
他在哪
上海。备注地区码是「沪A」,15:53 他自己也答了“上海”,随后说出“宝山建配龙”。系统在他开口前就已识别出上海(15:52 那一轮提示词里已有这一段)。
他已经在跟谁聊
“那我有你们这家店的人的联系方式了呀”“我已经在对接了,我慢点会再和他核实的”——他手上已经有一位“你们这家店的人”。这个人是谁、是不是我方同事,库里没有记录。
他为什么问“哪个店”
推断:他在核对我们和他正在对接的那家是不是同一家店。依据是他后面的两句原话;他没有明说。
“你们活动都一样了,你知道他应该也知道”
推断,意思不完全清楚。结合前一句我方问“咱们这边是跟谁对接呢?”,最顺的读法是:活动政策都一样,你们内部自己对得上,不用我再告诉你是谁——也就是婉拒两头聊。另一种可能是他在别的渠道也问过同样的活动。两种读法都指向同一件事:他不打算在这个窗口继续推进。
未知信息
面积、要做哪些柜子、预算、装修阶段都不知道。15:58 那句“对的”在消息表里看像是回答“衣柜、橱柜,还是全屋”,但在屏幕上它紧跟在位置卡片后面,是在确认位置,不能当成“全屋都做”。
完整转化时间线
从“你是哪个店啊”到最后一句,一共 9 分钟;之后三天没有下文。
首触:样板房活动 + 两张海报
上海档价格:原价 898、活动价 598 元/㎡。会话在 15:22:10 建档,3 秒后发出。客户是怎么加上好友的,数据里没有。
召回第 1 轮:样板房专项政策
首触后 29 分钟发出。63 秒后客户第一次开口。时间上挨着,但不能据此说是这条召回“唤回”了他。
“你是哪个店啊” → “您在哪个城市呀?”
提示词里已写明“客户所在城市已识别为上海”并附了两家上海门店地址,模型仍然反问城市。
“上海” → 模型说“上海有的!浦东和宝山都有店”,客户收到的是“做哪些柜子?”
两道发送前检查接连删句,删空后换成本地兜底句。
销售手动接上:问位置、发位置卡片,客户说出“宝山建配龙”
这一段消息表里没有,是从 15:58 那一轮的模型输入里看到的。发送方为推断。
“对的”(确认位置)→ 模型报宝山总店地址,客户收到的又是“做哪些柜子?”
检查判定“客户没问门店”,整条换掉。同一个选择题 5 分钟内问了两遍。
“那我有你们这家店的人的联系方式了呀”“我已经在对接了”
我方(推断为销售手动)问“咱们这边是跟谁对接呢?”,客户回“你们活动都一样了,你知道他应该也知道”。
AI 写好了回复,发送前认人没过,没发出
当时电脑上开着另一位客户的窗口。拦下是对的,防止发错人。此后日志里没有这位客户的记录。
群里提醒了三天,没人接手
“回复写好了但没发出去”“客户问了一直没人回”两类卡片持续提醒。消息表里没有任何后续回复,客户已冷却。
每个阶段是怎么推进的
| 阶段 | 我方动作 | 客户顾虑 | 结果信号 | 来源 |
|---|---|---|---|---|
| 首触 | 样板房活动文案 + 两张海报(上海档 598) | — | 29 分钟内没回 | 固定首触话术 |
| 召回 | 样板房专项政策,提出发协议和申请方式 | — | 63 秒后开口,但问的是“哪个店” | 召回任务(第 1 轮) |
| 问店 | 反问城市 | 你们是哪家店 | 答“上海” | AI 代回(系统已知上海) |
| 答城市 | 模型要答两家上海店 → 实发“做哪些柜子” | 还是哪家店 | 客户没接这个问题 | AI 代回 + 发送检查兜底 |
| 确认位置 | 问位置、发位置卡片 | 宝山建配龙那家 | “对的” | 推断为销售手动(读屏补录) |
| 再答门店 | 模型要报宝山地址 → 实发又一遍“做哪些柜子” | — | 客户转而说自己已在对接 | AI 代回 + 发送检查兜底 |
| 对接人 | “咱们门店也是这里”“咱们这边是跟谁对接呢?” | 已有这家店的人在跟 | “你们活动都一样了,你知道他应该也知道” | 推断为销售手动(读屏补录) |
| 收尾 | AI 回复没发出;三天无人接 | — | 冷却 | 客户端事件 + 群提醒卡片 |
来源判定依据:15:52–16:01 该会话有 4 条 AI 代回调用记录,对应消息表里 3 条已发出的我方回复和 1 条没发出的;读屏补录的 4 条我方消息既不在消息表、也没有对应调用记录,故判为销售手动,未经截图核对。
核心卡点
问“哪个店”,被反问“哪个城市”
系统已经知道他在上海,提示词里也有上海两家店的地址。客户的第一个问题本可以一句话答完,结果变成他先回答我们的问题。
门店话两次被换成同一个选择题
模型两次都在答门店(15:53 说浦东和宝山都有店,15:58 报宝山总店地址),客户两次都收到“衣柜、橱柜,还是全屋都做?”。第二次时他刚确认完位置。
人和 AI 在同一个窗口里各说各的
15:54–16:00 销售在手动聊门店(推断),AI 同时在按兜底句问柜子。15:59 那句 AI 回复落在客户确认位置之后、销售说“咱们门店也是这里”之前,两条线在客户面前交叉。
“我已经在对接了”
客户手上已有“你们这家店的人”。这是一个需要内部对齐的信号:先弄清那个人是不是我方同事、是不是同一家店,而不是在这个窗口继续抢这位客户。系统没有识别这类说法,也没有提醒任何人。
最后一句没有人回
AI 的回复被认人检查拦下后没有下文;群里的提醒卡片挂了三天。库里没有任何后续回复。
客户说“已经在对接”就转人工
这类话出现时,AI 不再自己回,推一张卡给负责人:客户说了什么、提到哪家店、需要确认对接人是谁。
技术卡点:模型想答门店,检查把它换成了同一个问题
以下每条都对照了三样东西:喂给模型的完整输入、模型原话、客户端记录的实发内容。日志只能证明“喂进去什么、吐出来什么、检查换了什么”,不能证明模型内部怎么想的。
系统已识别上海,模型仍然问城市
15:52 那一轮的提示词里有“客户所在城市已识别为「上海」· 这个城市有实体门店”,下面是照抄用的两家上海店地址;同一份提示词还写着“系统若给了这一块,照它报”。模型输出的却是“您在哪个城市呀?我帮您看看最近的门店是哪家~”。坐实:输入有、输出没用。这一块的城市从哪来:当时画像里还没有城市(15:53 才抽出“上海”),唯一的来源是备注里的「沪A」——推断是当天 11:39 合入的备注直辖市识别(#1631)起了作用。
检查判“客户没问门店”,与客户的提问相冲突
15:58 那一轮被换掉的理由是“客户没主动问门店却硬推门店”。坐实的对照:客户第一句就是“你是哪个店啊”;模型这一轮看到的输入里,客户刚说过“宝山建配龙”、我方刚发了位置卡片、客户回“对的”。检查只看客户这一句“对的”,没有往回看这几轮在聊什么。15:53 那一轮同理:客户只答了“上海”,但上一句问的是店,模型答店被当成了答非所问。
兜底句不看自己上一句说了什么
两次兜底都落到“做哪些柜子?衣柜、橱柜,还是全屋都做?”,第二次只多了“好的,您在上海”和“按投影面积估个数”。模型那一轮拿到的规则里有“别复读”,但兜底句是检查自己拼的,不经过模型,这条规则管不到它。
7 条消息只在模型输入里,消息表没有
“宝山建配龙”、位置卡片、“我已经在对接了”等 7 条都不在消息表。它们出现在模型输入里,说明客户端当时从屏幕读到了;但没有落库,复盘和后续跟进都看不到。两轮读到的范围也不同:15:58 那轮有“宝山建配龙”那段,16:01 那轮没有、只有后面四句。推断:销售手动发的消息和夹在中间的客户原话不按正常消息入库,客户端每次只读当前屏幕能看到的部分。
认人拦下之后,没有结局也没有人接
16:01 发送前认人:要发给这位客户,打开的却是另一位客户,拦下。这道检查做对了。客户端记了“15 秒后第 2 次再问”,客户端代码里确有这类短时重试,但此后日志里再没有这位客户,也没有新的 AI 调用——重试有没有跑、跑到哪一步,没验成。重试用完之后服务端没有补投(群卡片原文:“个微端(安卓/Windows)没有补投机制,这批不会自己好”),只能靠人。提醒卡片挂了三天,没人认领。
“下午六点下班”被安到了宝山店上
门店清单里“下午六点下班”写在浦东浦三路那家的括号里,宝山建配龙那一条没有营业时间。15:58 模型原话把这句接在了宝山地址后面(这句最终没发出去)。宝山店实际几点下班,需要门店确认。
本案暴露的问题,现在修到哪了
本案对话发生在修复之前,页面上的原话不会因此改变。“已上线”依据:线上探针 09-27 返回的版本(43ef161)包含该修复;验证方式是用本案三轮原样输入跑的回归测试,线上还没有见到同类真实对话的行为证据。
| 问题 | 怎么修的 | PR | 状态 |
|---|---|---|---|
| 系统已知上海,AI 仍问城市 | 城市已知时,“您在哪个城市”“帮您看看最近的门店”这类反问删掉,换成该城市门店清单原文地址(本案会接上海两家店) | #1664 | ✓ 已上线 |
| 15:53 答“上海”被当成没问门店,删空 | 检查往回看:客户上一句问了店、我方没答,这一句“上海”也算门店话题,保留“上海有的!咱们在浦东和宝山都有店” | #1664 | ✓ 已上线 |
| 15:58 确认宝山位置后,地址被当成“硬推门店”换掉 | 刚聊过的门店话题(含位置卡片、地址)后面跟“对的”这类短确认,保留门店地址,不换成问柜子 | #1664 | ✓ 已上线 |
| 兜底句 5 分钟内问两遍同一个选择题 | 兜底前先看最近几轮问过什么,问过的换别的问题,能问的都问过就只给内容不再发问 | #1664 | ✓ 已上线 |
| 认人拦下后无结局、提醒三天没人接 | 客户端有短时重试;重试之后的补投、提醒卡片的认领人都还没有 | — | 未修 |
| 销售手动聊的消息和夹在中间的客户原话不落库 | — | — | 未修 |
| 客户说“已经在对接”,系统不识别、不提醒 | — | — | 未修 · 待决定 |
| 门店清单里营业时间混在浦东那一条里 | 需要门店确认两家店各自的营业时间,再按店拆开写 | — | 待核实 |
| 销售电脑上的客户端版本 | 当天是 1.22.10;之后已发布到 1.23.0,这台电脑现在跑哪一版 | — | 没验成 |
案例复盘:做对什么,还能改什么
做得好的地方
首触价格用的是上海档(898 → 598),没有报错地区价。模型两次想答的门店都在清单里、地址是真的。销售在 AI 答偏时手动接上,问位置、发位置卡片,把门店这件事对上了。16:01 认人检查拦下了一条差点发给另一位客户的回复。
可以优化的地方
第一句就反问城市,而系统早已知道他在上海。16:01 那条没发出的回复(“您对接的同事会更清楚您家情况”)方向是对的,但没有回答他真正在意的事:他在对接的那个人和我们是什么关系。
这条链路最伤的一处
客户问的是店,模型也在答店,客户却两次收到同一个“做哪些柜子”。第二次时他刚确认完宝山的位置。对客户来说,这像是在跟一个没在听的机器人说话;随后他说出“我已经在对接了”,然后这个窗口就没人再回他了。
更合理的推进方式
他问“你是哪个店啊”,直接答:“我是有大有小上海的,浦东浦三路和宝山建配龙各有一家店,您离哪边近?”他说“已经在对接了”,先转给负责人查清对接人是不是我方同事、是不是同一家店;是的话,告诉客户“那您继续跟他对接就好,活动政策都一样,有需要随时找我”,不在这个窗口抢客户;不是的话,再由销售本人决定怎么跟。
后续优化建议
“已经在对接”即转人工
客户说有你们店的人联系方式、已在对接时,AI 不再自己回,推卡给负责人查清对接关系。
销售在聊时 AI 让路
读屏发现窗口里有 AI 没发过的我方新消息,就当销售正在手动聊,这一段 AI 先不插话。
读屏读到的都落库
销售手动发的、客户夹在中间说的,只要客户端读到了就落库,并标明来源。
提醒卡要有人认领
认人拦下、重试用完仍没发出的,卡片点名到这台电脑的销售;超过一定时间没人接,升级给负责人。
补“问哪家店”的示例
本案四轮配到的示例多是嫌贵砍价、感冒去不了、水电刚完工,没有一条和“问哪家店 / 已有对接人”相关。
营业时间按店写清楚
浦东、宝山两家店的营业时间分开写,避免模型把一家的信息安到另一家上。
证据边界与待补充信息
可核对的证据
消息表 9 条(09-24 15:22–16:00);调用记录 8 条(4 次 AI 代回、4 次画像抽取);4 次 AI 代回的 Langfuse 完整输入与模型原话;客户端事件 4 条(2 条发送检查整条换句、1 条认人拦下、1 条回复暂缓);召回任务 1 条;#1664 中用本案三轮原样输入写的回归测试;线上探针 09-27 返回版本 43ef161。
仍需补充
聊天截图待销售补(用来核对 7 条读屏补录的发送方、时间和先后);客户说的“你们这家店的人”是谁、是否我方同事;16:01 之后客户端重试有没有跑、结局如何;销售是否在手机上人工回过;客户是怎么加上好友的;15:52 那次删掉后半句的具体检查动作(只有整条换句才记事件,这次没有记录);销售电脑现在跑的客户端版本;宝山店的营业时间。