upio.ai / Akke / 用户案例 / 客户 E · 上海
E
USER JOURNEY · 首触 → 召回 → 问“哪个店” → 被反问城市 → 门店话两次被换成“做哪些柜子” → “我已经在对接了” → 回复没发出 → 三天无人接

客户 E · 上海
「你是哪个店啊」——他问的是店,我们连问两遍“做哪些柜子”

9 月 24 日下午,销售个人微信给他发了样板房活动(上海档 898 → 598)和两张海报。召回跟进发出 1 分钟后,他第一次开口:“你是哪个店啊”。接下来 8 分钟里,模型两次想答门店(“上海有的!咱们在浦东和宝山都有店……”、宝山总店地址),两次都被发送前的检查整条换掉,客户实际收到的是几乎一样的一句:“这次打算做哪些柜子?衣柜、橱柜,还是全屋都做?” 16:00 他说“你们活动都一样了,你知道他应该也知道”。AI 写好的回复在发送前被认人检查拦下(当时窗口开着另一位客户,拦得对),之后再没有下文,提醒卡片在群里挂了三天没人接。

1 分钟 召回后客户开口2 次 模型原话被整条换掉2 遍 同一个“做哪些柜子”3 天 最后一句无人回复◌ 已冷却
1
首触:活动 + 两张海报
9-24 15:22
2
召回:样板房政策
9-24 15:51
3
“你是哪个店啊”
9-24 15:52
4
被反问城市
9-24 15:52
5
答“上海” → 被问柜子
9-24 15:54
6
确认宝山位置 → 又被问柜子
9-24 15:59
7
“我已经在对接了”
9-24 16:00
8
回复没发出 · 冷却
9-24 16:01 →
00 · Full transcript

完整聊天记录与逐句来源标注

时间为北京时间。来源标注:首触 / 召回(消息表 + 召回任务表)、AI 代回(有真实调用记录,列出这一轮喂给模型的资料、示例、规则)、读屏补录(只出现在模型输入里、消息表没有;发送方按客户端读屏判定,未经截图核对)、未发出。

系统
个人微信单聊。我方:销售 A的个人微信,代回客户端(Windows 版)运行在他的销售电脑上,人设“销售 A”,当天客户端版本 1.22.10。客户备注以「沪A」开头(地区码 = 上海),其余编号和手机号不展示。
会话信息来源:会话表 + 召回任务表 + 客户端事件
我方
全屋定制样板房活动,ENF级多层实木板,兔宝宝、千年舟、莫干山任选,原价898元/㎡,样板房活动价598元/㎡,含量尺、设计、安装和售后,环保检测不合格全额赔付,给您发活动介绍和产品配置看一下~ [图片] 样板房活动海报(上海 / 江苏档 · 898 → 598) [图片] 产品配置(598)
09-24 15:22首触 · 消息表 15:22:13 · 固定首触话术(没有模型调用记录)· 会话 15:22:10 建档
我方
跟您同步下咱们的样板房专项政策。现在为了征集宣传样板房,总部提供专项补贴,名额按套申请。您如果还在了解,我可以先把样板房协议和申请方式发给您看看。
09-24 15:51召回 · 第 1 轮 · 召回任务 15:49 领取、15:51:11 发出(销售 A那台销售电脑)
客户 E
你是哪个店啊
09-24 15:52:14客户消息 · 消息表 · 召回发出后 63 秒
我方
您在哪个城市呀?
09-24 15:52:36AI 代回 · 调用记录 ac066d42 · 喂进去的资料:《全国门店地址清单》(相关度 0.31)、《全国网络服务点城市清单》(0.24)· 示例 3 条:别家 550 嫌贵、价太高砍价、网上负面评价 · 规则 10 条(含“客户报城市 → 按门店清单原文报地址”“答完就把客户往到店上带”)模型原话:“您在哪个城市呀?我帮您看看最近的门店是哪家~”,后半句被发送前检查删掉。这一轮的提示词里已经写着“客户所在城市已识别为「上海」· 这个城市有实体门店”,并附了上海两家店的地址——模型没用上,反过来问了城市。
客户 E
上海
09-24 15:53:46客户消息 · 消息表
我方
好的。这次打算做哪些柜子?衣柜、橱柜,还是全屋都做?
09-24 15:54:04AI 代回 · 调用记录 0eb3e8d4 · 资料:《全国门店地址清单》(0.34)· 示例 3 条:别家 550 嫌贵、增项怎么算、感冒去不了模型原话:“上海有的!咱们在浦东和宝山都有店,您看哪个区方便,我帮您约时间过去看看样柜和色卡?”→ 门店地址检查先删掉后半句,剩“上海有的!”→ 个微发送检查判为“答非所问”再删(unsupported_or_offtopic_clause_removed),删空了 → 换成本地兜底句(empty_reply_fallback)。客户收到的这句不是模型写的。
我方
咱们是哪里的呢?我好给您发离您最近的门店
09-24 15:54–15:58 之间读屏补录 · 只出现在 15:58 那一轮的模型输入里 · 消息表没有、也没有对应的 AI 调用 → 推断为销售手动发送
客户 E
宝山建配龙
09-24 15:54–15:58 之间读屏补录 · 客户原话 · 消息表没有
我方
[位置]
09-24 15:54–15:58 之间读屏补录 · 位置卡片 · 推断为销售手动发送
客户 E
对的
09-24 15:58:47客户消息 · 消息表 · 在屏幕上紧跟那张位置卡片
我方
好的,您在上海。这次打算做哪些柜子?衣柜、橱柜,还是全屋都做?定下来我按投影面积给您估个数。
09-24 15:59:06AI 代回 · 调用记录 e580e9f9 · 资料:《全国门店地址清单》(0.05)· 示例 3 条:价太高砍价、别家 550 嫌贵、水电刚完工 · 规则 11 条(新增“别复读:上一两轮说过的话这轮换个说法”)模型原话:“宝山建配龙是咱们上海总店,地址在长逸路15号B馆三楼Bj1商铺,下午六点下班,您方便哪天过来坐坐?”→ 个微发送检查判为“客户没问门店却主动推门店”(unsolicited_store_pivot_fallback),整条换成兜底句。和 5 分钟前那句几乎一样。
我方
咱们门店也是这里
09-24 15:59–16:00 之间读屏补录 · 只出现在 16:01 那一轮的模型输入里 · 推断为销售手动发送
客户 E
那我有你们这家店的人的联系方式了呀
09-24 15:59–16:00 之间读屏补录 · 客户原话 · 消息表没有
客户 E
我已经在对接了,我慢点会再和他核实的
09-24 15:59–16:00 之间读屏补录 · 客户原话 · 消息表没有
我方
好的,咱们这边是跟谁对接呢?
09-24 15:59–16:00 之间读屏补录 · 推断为销售手动发送
客户 E
你们活动都一样了,你知道他应该也知道
09-24 16:00:59客户消息 · 消息表 · 这是库里这位客户的最后一条消息
系统 · AI 写好但没发出的回复
咱们活动政策都是一样的,您对接的同事会更清楚您家情况。如果有需要我也可以同步下信息,确保您这边了解得更全面。
09-24 16:01:03 生成AI 代回 · 调用记录 0a31ddf1 · 资料 0 篇 · 示例 3 条:感冒去不了、价太高砍价、别家 550 嫌贵 · 规则 11 条16:01:12 发送前认人没过:要发给这位客户,但当时电脑上打开的是另一位客户的聊天窗口 → 拦下不发,客户端记“15 秒后第 2 次再问”(identity_blocked)。此后日志里没有这位客户的任何记录,重试结局没验成。
系统
对接群提醒卡片“回复写好了但没发出去”“客户问了一直没人回”,从 9-24 16:30 一直提醒到 9-27 16:30。消息表里至今没有任何后续回复。
09-24 16:30 → 09-27 16:30群提醒卡片记录 · 销售是否在手机上人工回过:没验成

聊天截图待销售补。7 条“读屏补录”的原文和先后顺序来自客户端每一轮上报给服务端的屏幕内容:15:58 那一轮读到了“宝山建配龙”那一段,16:01 那一轮读到的是后面四句,两轮读到的范围不一样。它们的发送方、准确时间都需要截图核对。

01 · Customer context

用户背景与核心需求

他开口第一句问“哪个店”,最后说“我已经在对接了”。这两句连起来看,他关心的不是柜子,而是“你们是不是一家”。

📍

他在哪

上海。备注地区码是「沪A」,15:53 他自己也答了“上海”,随后说出“宝山建配龙”。系统在他开口前就已识别出上海(15:52 那一轮提示词里已有这一段)。

🔗

他已经在跟谁聊

“那我有你们这家店的人的联系方式了呀”“我已经在对接了,我慢点会再和他核实的”——他手上已经有一位“你们这家店的人”。这个人是谁、是不是我方同事,库里没有记录。

❓

他为什么问“哪个店”

推断:他在核对我们和他正在对接的那家是不是同一家店。依据是他后面的两句原话;他没有明说。

💬

“你们活动都一样了,你知道他应该也知道”

推断,意思不完全清楚。结合前一句我方问“咱们这边是跟谁对接呢?”,最顺的读法是:活动政策都一样,你们内部自己对得上,不用我再告诉你是谁——也就是婉拒两头聊。另一种可能是他在别的渠道也问过同样的活动。两种读法都指向同一件事:他不打算在这个窗口继续推进。

🧩

未知信息

面积、要做哪些柜子、预算、装修阶段都不知道。15:58 那句“对的”在消息表里看像是回答“衣柜、橱柜,还是全屋”,但在屏幕上它紧跟在位置卡片后面,是在确认位置,不能当成“全屋都做”。

02 · Conversion timeline

完整转化时间线

从“你是哪个店啊”到最后一句,一共 9 分钟;之后三天没有下文。

09-24 15:22

首触:样板房活动 + 两张海报

上海档价格:原价 898、活动价 598 元/㎡。会话在 15:22:10 建档,3 秒后发出。客户是怎么加上好友的,数据里没有。

09-24 15:51

召回第 1 轮:样板房专项政策

首触后 29 分钟发出。63 秒后客户第一次开口。时间上挨着,但不能据此说是这条召回“唤回”了他。

09-24 15:52

“你是哪个店啊” → “您在哪个城市呀?”

提示词里已写明“客户所在城市已识别为上海”并附了两家上海门店地址,模型仍然反问城市。

09-24 15:53

“上海” → 模型说“上海有的!浦东和宝山都有店”,客户收到的是“做哪些柜子?”

两道发送前检查接连删句,删空后换成本地兜底句。

09-24 15:54–15:58

销售手动接上:问位置、发位置卡片,客户说出“宝山建配龙”

这一段消息表里没有,是从 15:58 那一轮的模型输入里看到的。发送方为推断。

09-24 15:58

“对的”(确认位置)→ 模型报宝山总店地址,客户收到的又是“做哪些柜子?”

检查判定“客户没问门店”,整条换掉。同一个选择题 5 分钟内问了两遍。

09-24 15:59–16:00

“那我有你们这家店的人的联系方式了呀”“我已经在对接了”

我方(推断为销售手动)问“咱们这边是跟谁对接呢?”,客户回“你们活动都一样了,你知道他应该也知道”。

09-24 16:01

AI 写好了回复,发送前认人没过,没发出

当时电脑上开着另一位客户的窗口。拦下是对的,防止发错人。此后日志里没有这位客户的记录。

09-24 16:30 → 09-27 16:30

群里提醒了三天,没人接手

“回复写好了但没发出去”“客户问了一直没人回”两类卡片持续提醒。消息表里没有任何后续回复,客户已冷却。

03 · Conversation strategy

每个阶段是怎么推进的

阶段我方动作客户顾虑结果信号来源
首触样板房活动文案 + 两张海报(上海档 598)—29 分钟内没回固定首触话术
召回样板房专项政策,提出发协议和申请方式—63 秒后开口,但问的是“哪个店”召回任务(第 1 轮)
问店反问城市你们是哪家店答“上海”AI 代回(系统已知上海)
答城市模型要答两家上海店 → 实发“做哪些柜子”还是哪家店客户没接这个问题AI 代回 + 发送检查兜底
确认位置问位置、发位置卡片宝山建配龙那家“对的”推断为销售手动(读屏补录)
再答门店模型要报宝山地址 → 实发又一遍“做哪些柜子”—客户转而说自己已在对接AI 代回 + 发送检查兜底
对接人“咱们门店也是这里”“咱们这边是跟谁对接呢?”已有这家店的人在跟“你们活动都一样了,你知道他应该也知道”推断为销售手动(读屏补录)
收尾AI 回复没发出;三天无人接—冷却客户端事件 + 群提醒卡片

来源判定依据:15:52–16:01 该会话有 4 条 AI 代回调用记录,对应消息表里 3 条已发出的我方回复和 1 条没发出的;读屏补录的 4 条我方消息既不在消息表、也没有对应调用记录,故判为销售手动,未经截图核对。

04 · Friction map

核心卡点

用户卡点

问“哪个店”,被反问“哪个城市”

系统已经知道他在上海,提示词里也有上海两家店的地址。客户的第一个问题本可以一句话答完,结果变成他先回答我们的问题。

用户卡点

门店话两次被换成同一个选择题

模型两次都在答门店(15:53 说浦东和宝山都有店,15:58 报宝山总店地址),客户两次都收到“衣柜、橱柜,还是全屋都做?”。第二次时他刚确认完位置。

用户卡点

人和 AI 在同一个窗口里各说各的

15:54–16:00 销售在手动聊门店(推断),AI 同时在按兜底句问柜子。15:59 那句 AI 回复落在客户确认位置之后、销售说“咱们门店也是这里”之前,两条线在客户面前交叉。

关键信号

“我已经在对接了”

客户手上已有“你们这家店的人”。这是一个需要内部对齐的信号:先弄清那个人是不是我方同事、是不是同一家店,而不是在这个窗口继续抢这位客户。系统没有识别这类说法,也没有提醒任何人。

用户卡点

最后一句没有人回

AI 的回复被认人检查拦下后没有下文;群里的提醒卡片挂了三天。库里没有任何后续回复。

优化建议

客户说“已经在对接”就转人工

这类话出现时,AI 不再自己回,推一张卡给负责人:客户说了什么、提到哪家店、需要确认对接人是谁。

04.1 · Technical blockers

技术卡点:模型想答门店,检查把它换成了同一个问题

以下每条都对照了三样东西:喂给模型的完整输入、模型原话、客户端记录的实发内容。日志只能证明“喂进去什么、吐出来什么、检查换了什么”,不能证明模型内部怎么想的。

技术卡点 01

系统已识别上海,模型仍然问城市

15:52 那一轮的提示词里有“客户所在城市已识别为「上海」· 这个城市有实体门店”,下面是照抄用的两家上海店地址;同一份提示词还写着“系统若给了这一块,照它报”。模型输出的却是“您在哪个城市呀?我帮您看看最近的门店是哪家~”。坐实:输入有、输出没用。这一块的城市从哪来:当时画像里还没有城市(15:53 才抽出“上海”),唯一的来源是备注里的「沪A」——推断是当天 11:39 合入的备注直辖市识别(#1631)起了作用。

喂进去城市已识别上海 + 两家店地址 + 门店清单 + “报城市就按清单报地址”规则
模型原话反问城市 + “帮您看看最近的门店”
检查删掉后半句
客户收到“您在哪个城市呀?”
技术卡点 02

检查判“客户没问门店”,与客户的提问相冲突

15:58 那一轮被换掉的理由是“客户没主动问门店却硬推门店”。坐实的对照:客户第一句就是“你是哪个店啊”;模型这一轮看到的输入里,客户刚说过“宝山建配龙”、我方刚发了位置卡片、客户回“对的”。检查只看客户这一句“对的”,没有往回看这几轮在聊什么。15:53 那一轮同理:客户只答了“上海”,但上一句问的是店,模型答店被当成了答非所问。

15:53 原话“上海有的!咱们在浦东和宝山都有店……”
15:53 检查门店地址检查删后半句 → 发送检查判答非所问 → 删空 → 兜底
15:58 原话宝山总店地址 + “您方便哪天过来坐坐?”
15:58 检查判“没问门店却推门店” → 整条换兜底
技术卡点 03

兜底句不看自己上一句说了什么

两次兜底都落到“做哪些柜子?衣柜、橱柜,还是全屋都做?”,第二次只多了“好的,您在上海”和“按投影面积估个数”。模型那一轮拿到的规则里有“别复读”,但兜底句是检查自己拼的,不经过模型,这条规则管不到它。

技术卡点 04

7 条消息只在模型输入里,消息表没有

“宝山建配龙”、位置卡片、“我已经在对接了”等 7 条都不在消息表。它们出现在模型输入里,说明客户端当时从屏幕读到了;但没有落库,复盘和后续跟进都看不到。两轮读到的范围也不同:15:58 那轮有“宝山建配龙”那段,16:01 那轮没有、只有后面四句。推断:销售手动发的消息和夹在中间的客户原话不按正常消息入库,客户端每次只读当前屏幕能看到的部分。

技术卡点 05

认人拦下之后,没有结局也没有人接

16:01 发送前认人:要发给这位客户,打开的却是另一位客户,拦下。这道检查做对了。客户端记了“15 秒后第 2 次再问”,客户端代码里确有这类短时重试,但此后日志里再没有这位客户,也没有新的 AI 调用——重试有没有跑、跑到哪一步,没验成。重试用完之后服务端没有补投(群卡片原文:“个微端(安卓/Windows)没有补投机制,这批不会自己好”),只能靠人。提醒卡片挂了三天,没人认领。

16:01:03生成回复(资料 0 篇)
16:01:12认人不过,拦下
之后无日志、无新调用
9-24 → 9-27提醒卡片无人接
技术卡点 06

“下午六点下班”被安到了宝山店上

门店清单里“下午六点下班”写在浦东浦三路那家的括号里,宝山建配龙那一条没有营业时间。15:58 模型原话把这句接在了宝山地址后面(这句最终没发出去)。宝山店实际几点下班,需要门店确认。

修复进展 · 截至 2026-09-27

本案暴露的问题,现在修到哪了

本案对话发生在修复之前,页面上的原话不会因此改变。“已上线”依据:线上探针 09-27 返回的版本(43ef161)包含该修复;验证方式是用本案三轮原样输入跑的回归测试,线上还没有见到同类真实对话的行为证据。

问题怎么修的PR状态
系统已知上海,AI 仍问城市城市已知时,“您在哪个城市”“帮您看看最近的门店”这类反问删掉,换成该城市门店清单原文地址(本案会接上海两家店)#1664✓ 已上线
15:53 答“上海”被当成没问门店,删空检查往回看:客户上一句问了店、我方没答,这一句“上海”也算门店话题,保留“上海有的!咱们在浦东和宝山都有店”#1664✓ 已上线
15:58 确认宝山位置后,地址被当成“硬推门店”换掉刚聊过的门店话题(含位置卡片、地址)后面跟“对的”这类短确认,保留门店地址,不换成问柜子#1664✓ 已上线
兜底句 5 分钟内问两遍同一个选择题兜底前先看最近几轮问过什么,问过的换别的问题,能问的都问过就只给内容不再发问#1664✓ 已上线
认人拦下后无结局、提醒三天没人接客户端有短时重试;重试之后的补投、提醒卡片的认领人都还没有—未修
销售手动聊的消息和夹在中间的客户原话不落库——未修
客户说“已经在对接”,系统不识别、不提醒——未修 · 待决定
门店清单里营业时间混在浦东那一条里需要门店确认两家店各自的营业时间,再按店拆开写—待核实
销售电脑上的客户端版本当天是 1.22.10;之后已发布到 1.23.0,这台电脑现在跑哪一版—没验成
05 · Review

案例复盘:做对什么,还能改什么

GOOD

做得好的地方

首触价格用的是上海档(898 → 598),没有报错地区价。模型两次想答的门店都在清单里、地址是真的。销售在 AI 答偏时手动接上,问位置、发位置卡片,把门店这件事对上了。16:01 认人检查拦下了一条差点发给另一位客户的回复。

MID

可以优化的地方

第一句就反问城市,而系统早已知道他在上海。16:01 那条没发出的回复(“您对接的同事会更清楚您家情况”)方向是对的,但没有回答他真正在意的事:他在对接的那个人和我们是什么关系。

BAD

这条链路最伤的一处

客户问的是店,模型也在答店,客户却两次收到同一个“做哪些柜子”。第二次时他刚确认完宝山的位置。对客户来说,这像是在跟一个没在听的机器人说话;随后他说出“我已经在对接了”,然后这个窗口就没人再回他了。

如果重新跟进

更合理的推进方式

他问“你是哪个店啊”,直接答:“我是有大有小上海的,浦东浦三路和宝山建配龙各有一家店,您离哪边近?”他说“已经在对接了”,先转给负责人查清对接人是不是我方同事、是不是同一家店;是的话,告诉客户“那您继续跟他对接就好,活动政策都一样,有需要随时找我”,不在这个窗口抢客户;不是的话,再由销售本人决定怎么跟。

06 · Action plan

后续优化建议

转人工

“已经在对接”即转人工

客户说有你们店的人联系方式、已在对接时,AI 不再自己回,推卡给负责人查清对接关系。

人机协同

销售在聊时 AI 让路

读屏发现窗口里有 AI 没发过的我方新消息,就当销售正在手动聊,这一段 AI 先不插话。

数据完整

读屏读到的都落库

销售手动发的、客户夹在中间说的,只要客户端读到了就落库,并标明来源。

没发出的回复

提醒卡要有人认领

认人拦下、重试用完仍没发出的,卡片点名到这台电脑的销售;超过一定时间没人接,升级给负责人。

示例对口

补“问哪家店”的示例

本案四轮配到的示例多是嫌贵砍价、感冒去不了、水电刚完工,没有一条和“问哪家店 / 已有对接人”相关。

门店资料

营业时间按店写清楚

浦东、宝山两家店的营业时间分开写,避免模型把一家的信息安到另一家上。

07 · Evidence & gaps

证据边界与待补充信息

可核对的证据

消息表 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 那次删掉后半句的具体检查动作(只有整条换句才记事件,这次没有记录);销售电脑现在跑的客户端版本;宝山店的营业时间。