前几天有朋友问我,能不能做个智能体,把各个渠道的客户信息”获取”过来。
我问他,”获取”是什么意思。
他说,就是抖音的评论、私信,还有公众号后台那些人,能不能都自动收进来。
我说这活我接不了。他挺意外,觉得我是不是技术不行。
跟技术没关系。是这件事从架构的第一层开始,方向就是错的。
后来这单还是做了,但做法跟他想的不一样。我把过程记下来,给同样在做企业智能体的人参考。
一、第一层取舍:数据是”推”进来的,不是”拉”过来的
新手做这类系统,第一反应是写爬虫或者逆向接口,去各个平台把数据拉回来。
这条路我一开始就没考虑。原因不是怕,是它的技术债太高了。
逆向接口的问题在于,你写的每一个解析逻辑,都绑死在对方当时的页面结构上。对方改一次前端,你的采集器就全废。这种系统你交付出去,就得承诺长期维护,而且你还不知道人家什么时候改。这不是工程问题,这是个必然烂尾的结构。
所以我用的方式是反过来的,叫”收口”。
不去”拉”数据,而是让数据自己”推”进来。
具体做法是每个渠道都用平台官方的、允许的那条路,让用户主动把信息交出来。抖音走企业号私信和开放平台事件,公众号走官方的关注和互动事件,线下走扫码。这些入口各自独立,但它们推过来的事件格式是统一的。
我的程序只干一件事,就是接住这些事件,落进一个统一的客户档案库。
抖音私信 ┐
公众号 ├→ Webhook 收口 → 客户档案库 → 后续处理
线下扫码 ┘
这么做的代价是,你拿到的字段比爬取少。但换来的是这套东西三年后还能跑,不用天天跟着对方改版。
做企业交付,稳定比字段多重要。
二、第二层取舍:不要试图”合并”同一个人
统一收口之后,你会立刻遇到一个看起来必须解决的问题。
同一个人在抖音咨询过,又在公众号留言过,还在线下扫过码。这三条记录要不要合并成一个人?
我一开始写了一套合并逻辑,用手机号做 key,然后老老实实删掉了。
原因有两个。
第一,合并是不可逆操作。你把三条记录并成一条,后来发现判断错了,这数据就找不回来了。企业客户对”客户档案”的准确度要求极高,一次错误合并就可能把两个客户的记录搅在一起,后面所有跟进都是错的。
第二,你没有可靠的合并依据。平台之间不互通,你能拿到的只有昵称、头像这些随时会变的东西。用这种东西做身份判断,出错是常态。
所以我最后保留的是关联,不是合并。原记录一条不动,只在上面加一个”可能指向同一人”的标记。
这个标记是软判断,可以推翻,可以撤销。系统给你一个提示,人来决定。这比让程序自信地做错事要好得多。
三、第三层取舍:分层要能”解释”
客户分层是这个系统最值钱的部分,但也是最容易做废的部分。
第一版我用了很直接的做法,让模型读一遍对话,”输出 A/B/C 三个等级之一”。跑起来效果看着挺好,但我把它废了。
因为老板会问一个问题,”为什么这个客户是 A 类”。
如果模型答不上来,或者给的理由每次都不一样,那这个分层就不会被信任。一个没人信的分层系统,等于没有。
改版之后,我不让模型直接输出等级,而是让它输出判断依据,等级是后面用规则算出来的:
| 依据项 | 取值 | 权重 |
|---|---|---|
| 是否问过具体型号 / 规格 | 是 / 否 | 高 |
| 是否主动留下联系方式 | 是 / 否 | 高 |
| 是否问过价格和交期 | 是 / 否 | 中 |
| 对话轮次 | 数字 | 低 |
最后那个”为什么是 A 类”,答案是现成的。老板不信,可以自己调权重。
给人一个能调的旋钮,比给一个准确率更高的黑盒有用。
四、第四层取舍:提醒不是定时任务,是状态机
“客户加了微信就没人管了”,这个需求听起来很简单,我一开始也这么以为。
我写了个定时任务,每天扫一遍,超过七天没互动的发个提醒。上线之后基本没人看。
问题不在提醒本身,在它没有上下文。一条”张三七天没联系了”,老板看了没什么可做的。
后来我把它改成了状态机。每个客户身上挂一个当前状态,状态之间有明确的迁移条件:
新线索 → 已首次回复 → 已报价 → 待跟进 → 已成交 / 已流失
提醒的内容不再是”七天没联系”,而是”张三停在『已报价』已经五天,下一步该做的动作是确认交期”。
系统要说的不是有人被忘了,而是这个人卡在哪一步,下一步该干什么。
这个改动的代码量很小,但它是这个系统里客户感知最明显的一块,因为老板第一次觉得是系统在帮他记事,而不是多了一个要看的通知。
五、第五层取舍:数据归属必须写进合同
最后这条不是技术问题,但它影响架构。
客户的数据存在哪里,能不能导出,合作终止之后怎么处理,这几件事必须在动工之前就定下来,而且写进合同。
我见过不少人先做系统,数据顺手存在自己服务器上,出了问题再去跟客户扯。这不是能力问题,是给自己留了个随时会爆的雷。
我现在的做法是,默认部署在客户自己可控的环境里。如果客户要求托管,那托管协议里单独写清数据条款。
这一条不写代码,但它决定了你后面系统长什么样。
最后
这五个取舍加起来,其实说的是同一件事。
不要试图去”获取”数据,要想办法让数据自己流进来。
这句话听着像是绕,但它是这行里少有的、既省事又不出事的做法。爬来的数据你心里没底,主动来的用户,本来就比爬来的准十倍。
我现在给企业做这类系统,入口加分层两块先落地,三五天能演示,客户看一眼就明白这玩意能干嘛。
至于那些听起来更刺激的功能,先等等。它们大多数不是技术难,是根本不成立。
本文涉及的所有渠道对接方式,均基于各平台官方开放接口。








