通话只是手段,客户才是资产:聊聊 Voicelen 里的客户是怎么被管理的

通话只是手段,客户才是资产:聊聊 Voicelen 里的客户是怎么被管理的

上一篇讲了 Voicelen 的整体架构 — 一通电话怎么从进来到落库,中间被哪些角色处理。有读者留言说:”你把电话讲清楚了,那电话背后的人呢?”

这篇就讲电话背后的人 — 客户。

做呼叫中心做到最后,大家会有一个共同的感受:通话只是手段,客户才是资产。一通电话结束了,如果客户信息没沉淀下来,那这通电话就白打了。反过来,如果客户信息沉淀得好,哪怕他这次没成交,下一次某个同事翻到他的档案,能立刻接着上次的对话继续 — 那就叫资产。

Voicelen 里的客户模块,前后重构过三次。今天把最新这一版拆开讲讲,它包含哪些能力、为什么这么设计、我踩过哪些坑。

客户是从哪儿来的

Voicelen 里客户进入系统的入口有三个:

手工录入。 一个客户一个客户地加,适合零星补录。表单很朴素:号码、姓名、以及一堆企业自定义的扩展字段(职业、来源渠道、上次沟通对象…)。扩展字段是完全动态的 — 企业在设置里配置想要哪些字段,前端会自动生成对应的表单项。

批量导入。 从 Excel 里粘一大堆号码进来,一次几万条。这个入口用得最多,常见于市场部门拿到一批新线索,交给客服团队跟进。

通话中自动创建。 有一个陌生号码打进来了,系统之前没见过这个人 — 那就顺手给他建一条档案,姓名先填”未知客户”,通话结束之后由座席补全。这样避免了”通话结束了才想起来这号码还没入库”的尴尬。

三个入口都会做同一件事:校验号码格式 + 查重 + 脱敏加密

号码格式很好理解 — 不合法的号码直接拒绝。查重是按”企业 + 号码”这个组合来判定的,一家企业里同一个号码只允许有一条客户档案。至于脱敏加密,值得单独讲。

脱敏这件事

隐私保护现在是硬要求。客户的手机号如果全员可见、可复制、可导出,一旦有员工把整张表拷贝走,那就是一场事故。

Voicelen 的做法是把”看号码”这个动作拆成两件事:

一是显示脱敏。 前端拿到的号码默认是 138****8000 这样的形式。中间四位星号,谁都看不到。除非这个员工被显式授予了”查看完整号码”的权限,否则他从头到尾看不到真号码。

二是拨号加密。 但客服总要打电话吧?打电话需要真号码,可员工又不该看到真号码,怎么办?

我们的做法是:后端返回给前端的除了脱敏号码,还有一个”加密令牌” — 22 个字符的乱码字符串。这个令牌是用企业自己的密钥加密出来的,只有 Voicelen 后端能解开。员工点”拨号”按钮的时候,前端把令牌发给后端,后端解出真号码,直接发起呼叫。

整个过程里,员工的浏览器/手机里从没出现过完整的号码。他能打电话,但他复制不走号码。

这个设计的关键在于密钥是企业级的,每家企业一把密钥,企业管理员可以在设置里旋转密钥 — 就像密码定期更换一样。哪怕数据库被扒走了,不知道密钥也解不开。

客户档案里存了什么

一个客户档案除了基础的号码和姓名,还有几组冗余字段:

  • 累计通话次数

  • 最近一次通话时间

  • 累计质检评分

  • 跟进状态(待跟进 / 跟进中 / 已成交 / 已流失)

  • 归属客服

  • 上次通话备忘(AI 生成的一段话,几十字概括最近一次通话)

这些字段严格来说都可以从其它表里算出来 — 通话次数就是 count(*) 通话记录、评分平均可以现算。但我把它们冗余到客户表里,是因为列表页要按这些字段排序和筛选

比如”最近 30 天没通过话、评分平均 3 分以下的客户”,如果每次都去联表算,几万个客户的列表页会卡到没法看。冗余进来之后,一个索引就能搞定。

冗余字段的更新时机是我犹豫最久的地方。最后的做法是:顺手更新,不新建同步进程。计费的进程扣完费之后,顺手把通话次数 +1;质检的进程算完分之后,顺手把评分累加进去。历史数据不回填 — 从现在开始,新通话/新质检发生了自然会累积,老的数据保持它原来的样子。

这个选择的代价是:某个客户在你启用 Voicelen 之前已经通过 100 次电话,你在新系统里看到他”通话次数 0”。但换来的好处是,不需要一个专门的定时任务扫全表,不会有”某个通话漏统计了”的诡异 bug。

上次通话备忘 — 让客户”活”起来

刚才提到的”上次通话备忘”值得单独说说。

这是 Voicelen 里我最喜欢的一个小功能。它的作用是:当一个客服打开某个客户档案准备打电话之前,能一眼看到上次和他聊了什么。不是听录音、不是翻文字对话,而是一段几十字的话,类似:

“客户对我们的年费套餐有兴趣,预算在 2000 元以内,希望周五前给他打回访。上次通话情绪偏正面。”

这段话是通话结束后,由 AI 基于对话内容自动生成的。它有一个”过期时间” — 默认 30 天没通话就自动清零,避免展示的是几个月前的过时信息。

这个功能上线之后,客服的反馈是:再也不用听录音了。以前打回访,尤其是接手别人客户的时候,得先花五分钟听录音回忆一下上次聊了啥。现在瞄一眼备忘就行。

标签

除了固定字段,客户身上还挂标签。

Voicelen 的标签分两层:

系统标签 — 内置的,主要用来标客户意向:强意向、弱意向、无意向、待确认。这一组标签是由 AI 质检模块自动打上去的,每次通话结束、意向变化了,标签跟着换。

自定义标签 — 企业自己建的,想标什么标什么。常见的有”VIP 客户””价格敏感””竞品用户””老带新”。这一组标签是可以由 AI 自动打的 — 但不是随便打,而是必须命中”企业已经建好的自定义标签”。这里我特意做了一个限制:AI 不会自动创建新标签

为什么?因为一旦让 AI 随便建标签,一个月之后你会发现企业里冒出来上百个五花八门的标签 — “对活动感兴趣的用户””想了解优惠的用户””想问价格的用户” — 语义高度重叠,谁也不知道该用哪个。所以 Voicelen 强制:标签体系由人定义,AI 只在既定体系里做选择。

跟进记录

跟进记录是挂在客户身上的一系列时间线事件:某年某月某日,谁,做了什么,备注什么。

跟进记录分两种来源:

  • 手动跟进 — 客服自己填的。通话结束了,点”跟进”,写一段话。

  • 自动跟进 — AI 生成的。质检模块判断这通电话应该有一个跟进事项之后,自动生成一条,标记为”AI 生成”。

界面上两种颜色区分。这样客服打开客户档案能一眼看清:哪些是我自己录的,哪些是系统帮我录的。系统录的可以覆盖,可以修改,但保留原始版本可查。

归属

客户模块里最难做的一部分,是归属。

Voicelen 里的客户有一个字段叫”归属客服”。这个字段决定了:这个客户是我的、还是别人的、还是公海里没人认领的。

一个客户可以处于三种状态:

私海 — 已经有明确的归属客服。这个客服可以看到 TA、跟进 TA、打电话给 TA。其他客服看不到 TA。

公海 — 没有归属。所有客服都能看到,谁都可以”领取”,领了之后就变成 TA 的私海客户。

归属流转 — 客户可以从一个客服的私海转到另一个客服的私海(比如主管做团队调整),也可以主动放回公海。

看上去简单,但一个真实的问题是:如果一个客服把客户领了却不跟进,怎么办?

我见过太多这种情况 — 客服一次领 500 个客户,领完就不管了,别人也看不到、也没法跟进,资源就烂在他手里。

Voicelen 的做法是设了两条超时红线:

第一条:首次跟进超时。 客服领取客户之后,必须在 N 小时内至少打一通电话或写一条跟进(N 由企业设置,默认 24 小时)。超时了,系统自动把这个客户放回公海,谁都可以再领。

第二条:长期无跟进回收。 客户已经跟了一段时间,但最近 N 天没任何动静(默认 30 天),也自动放回公海。

两条红线执行时都会写一条流水到”客户归属日志”表 — 记录谁在什么时候把客户领走了、什么时候被系统回收了、什么时候被主管手工转给了别人。这条流水非常关键:出了纠纷(比如两个客服都说某个客户是自己的),翻日志就有真相。

黑名单

最后讲一下黑名单,这是客户模块的反面。

黑名单里放的是”不要再联系这个号码”的号码。来源有三种:

  • 手工添加 — 客服接到骚扰后,把号码拉黑

  • 客户主动要求 — 客户在通话中明确说”以后别打了”,系统自动加入

  • 投诉记录 — 收到 12321 之类的投诉,合规团队批量加入

黑名单可以按方向配置:只挡呼入、只挡呼出、双向都挡。举个例子,某个客户是我们的老客户,还会打电话进来找我们,但企业已经决定不再外呼推销他 — 那这个号码就只加”呼出黑名单”。

命中黑名单的时候会记录一条拦截日志:什么时候被拦的、拦了多少次。这个统计对合规审计很重要 — 能证明”这个号码进入黑名单之后,我们再也没打过他”。

黑名单在 Voicelen 里覆盖了 6 个通话入口 — 手工外呼、批量外呼、AI 外呼、客户呼入、开放接口拨号、队列自动分配 — 无一遗漏。这是我特意花时间抠的地方,因为只要有一个入口漏了,黑名单形同虚设

导出

上一篇提到过,呼叫中心里到处都是”我要一份 Excel”的需求。客户导出是这些需求里最频繁的。

Voicelen 里客户导出是一个异步任务:你在筛选条件下点”导出”,系统立刻返回任务号,后台慢慢生成。生成期间你可以继续做别的事。导出好了在”我的导出”页面下载。

导出的字段是可配置的 — 你想导哪些字段就勾哪些。但有一个字段永远不会全量导出:手机号。导出的默认是脱敏号码。如果你有”导出完整号码”的权限,可以勾选加密令牌一起导出 — 但那个令牌离开 Voicelen 就是一段乱码,别人拿到也没用。

单个任务硬上限 5 万行。超过就报错,让你缩小筛选。这是刻意划的红线 — 一次导 10 万条客户是骚扰营销的典型行为,产品不鼓励。

写在最后

Voicelen 的客户模块,从表面看是个 CRUD — 客户表、跟进表、标签表、黑名单表。但深挖下去,你会发现它其实是一套围绕客户资产的运营体系:

  • 隐私保护决定了客户敢不敢留信息

  • 冗余字段决定了列表页能不能用

  • 归属流转决定了客户会不会烂在某个人手里

  • 备忘和跟进决定了客服能不能高效对话

  • 黑名单和权限决定了企业会不会因为某个员工翻车

每一条都不是技术问题,是产品问题。而这些产品问题,又不是拍脑袋能定的,只能在真实场景里被客户捶出来。Voicelen 走到今天这一版,基本上每个字段背后都有一个”某家企业问我们能不能加这个”的故事。

如果你在做类似的东西、或者正在选型呼叫中心系统,希望这两篇文章能给你一些参考。

下次再聊。

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!