导言:同一个客户,为什么会在系统里变成三条记录?
在前面的 O2C 文章里,客户一直都在场。
第 8 篇里,销售要先识别客户需求,才能把商机转成销售订单。第 9 篇里,系统要检查这个客户的信用额度,决定订单能不能放行。第 11 篇里,财务还要把客户的付款和发票做核销,确认这笔钱到底有没有收回来。
但如果你真的打开一套企业系统后台,常常会看到一个让人困惑的现象:同一个客户,在销售系统、财务系统、客服系统里,很可能不是一条记录,而是三条看起来都像它的记录。
销售系统里记录的是“张三负责跟进的重点客户”;财务系统里记录的是“开票主体为某某科技有限公司”;客服系统里记录的是“联系人王经理,电话 138xxxxxx”。名字看起来差不多,但编码、地址、联系人,甚至公司全称都可能不一样。
这时候问题就来了:支撑 O2C 全流程流转的“客户”,到底是什么?
今天这篇文章,我们就来讲清楚 CRM 的真正位置。我的结论是:CRM 不是一个单纯给销售用的工具,而是 O2C 流程里的客户主数据底座。 如果没有这块底座,订单不知道该开给谁,信用检查不知道该查谁,发票和收款也不知道该挂到谁名下。
CRM:被误解的“客户管理系统”
很多工程师第一次听到 CRM,脑子里想到的往往是“销售录客户”“跟进商机”“做客户拜访记录”。这些都没错,但只看到这一步,很容易把 CRM 理解得太窄。
业务定义:CRM(Customer Relationship Management,客户关系管理)是围绕客户建立、维护和使用信息的一套系统能力。它不仅管理“我们在跟谁做生意”,更管理“这个客户是谁、长什么样、和我们是什么关系、在整个业务流程中该如何被识别和使用”。
你可以把 CRM 理解成一个企业级的“客户档案袋”。
这个档案袋里装的,不只是一个名字和一个电话,而是至少四类信息:
- 身份信息:这个客户到底是谁,如何唯一识别。
- 属性信息:这个客户有哪些基本信息、经营信息和信用信息。
- 关系信息:这个客户和谁有关联,属于哪个集团,由谁跟进,通过什么渠道成交。
- 业务轨迹:这个客户过去问过什么、买过什么、欠过多少钱、有没有投诉记录。
所以,CRM 的核心价值并不只是“方便销售跟单”,而是让整个企业对“客户是谁”形成统一认知。
这也是本文最重要的反常识点:CRM 的核心价值不在“销售”,而在“数据”。 销售没有 CRM,最多是工作效率差一点;但 O2C 没有 CRM,整个流程很快就会开始对不齐。
客户主数据的三层模型:身份、属性、关系
如果想把 CRM 讲清楚,我最推荐的方法不是一上来背字段,而是先建立一个简单的三层模型:身份层、属性层、关系层。
第一层:身份层——先回答“你是谁”
身份层解决的是最基础的问题:系统到底怎么认出这个客户。
对于企业来说,最危险的不是“没有客户”,而是“同一个客户被系统当成了两个客户”。一旦识别错了,后面的订单、信用、开票、收款都会连着错。
身份层通常包括这些内容:
| 字段 | 通俗理解 | 示例 |
|---|---|---|
| 客户主编码 | 系统里唯一的客户 ID | CUST-000128 |
| 客户名称 | 这个客户叫什么 | “华东智联科技有限公司” |
| 客户类型 | 是企业、个人,还是经销商 | 企业客户 / 经销商 |
| 统一社会信用代码 | 企业的法定唯一标识 | 9131XXXXXXXXXXXXXX |
| 别名/简称 | 日常被怎么称呼 | “华东智联” |
| 状态 | 这个客户是否有效 | 启用 / 冻结 |
这些字段看起来朴素,但作用非常关键。
比如销售说“华东智联”,财务说“华东智联科技有限公司”,客服系统里又记成“华东智联上海”。如果系统里没有统一的客户主编码,这三条记录就很可能被当成三个客户。结果就是:销售看到的交易额不完整,财务看到的应收账款分散,客服看到的投诉记录也无法关联。
所以,身份层的本质不是“记名字”,而是建立唯一性。
第二层:属性层——再回答“你是什么样的客户”
只知道客户是谁,还不够。系统还要知道这个客户“长什么样”,才能决定后续流程怎么跑。
这就是属性层的作用。
属性层通常包括这些信息:
| 字段 | 通俗理解 | 示例 |
|---|---|---|
| 所属行业 | 这个客户做什么生意 | 制造业 / SaaS / 零售 |
| 所在区域 | 主要在哪个地区 | 华东区 |
| 客户等级 | 企业如何给它分层 | VIP / A 类 / 普通 |
| 结算方式 | 通常怎么付款 | 月结 30 天 |
| 默认币种/税率 | 财务处理的默认口径 | 人民币 / 13% |
| 信用额度 | 最多允许欠多少钱 | 500,000 元 |
| 联系地址 | 单据、发货、拜访要用什么地址 | 上海市浦东新区某路某号 |
属性层决定的是业务规则如何作用在这个客户身上。
比如:
- 如果客户等级是 VIP,报价时可以自动走 VIP 价。
- 如果客户属于高风险行业,信用检查时可能要走更严格规则。
- 如果客户默认结算方式是月结 30 天,订单创建时就能自动带出付款条件。
- 如果客户在华东区,对应的销售组织、税率口径、物流策略也可能不同。
换句话说,属性层不是为了“让客户看起来更完整”,而是为了让业务规则有抓手。
第三层:关系层——最后回答“你和谁有关”
企业里的客户,通常不是孤立存在的。
一个客户可能属于某个集团,下属多个子公司;也可能通过代理商下单,由最终门店收货;还可能有多个联系人,分别负责采购、财务、技术和售后。
这些都属于关系层。
关系层常见的信息包括:
| 字段 | 通俗理解 | 示例 |
|---|---|---|
| 集团关系 | 是否属于某个母公司 | 华东智联集团 |
| 子公司关系 | 是否是集团下属公司 | 苏州子公司 |
| 联系人关系 | 和哪些人打交道 | 采购经理、财务经理 |
| 渠道关系 | 是直营还是经销渠道 | 华东总代 |
| 销售归属 | 由哪个销售或团队负责 | 企业业务一部 |
| 历史交易关系 | 和我们发生过哪些业务 | 下单、开票、回款、投诉 |
关系层解决的问题,不再是“识别”或“画像”,而是上下文。
比如一个集团客户,销售订单可能由子公司签,发票抬头是母公司,实际收货又是门店。如果系统没有关系层,前台看上去只是“客户信息有点乱”;但到了财务核销、信用额度控制、渠道结算这些环节,问题就会迅速放大。
三层模型到底有什么用?
为了把三层模型记得更牢,我们可以把它理解成一个非常简单的顺序:
- 身份层:保证“找得到同一个人”
- 属性层:保证“知道该怎么对待这个人”
- 关系层:保证“知道这个人和谁连在一起”
如果缺了身份层,系统会认错人。
如果缺了属性层,系统虽然认得这个客户,却不知道该给什么价格、什么账期、什么风控规则。
如果缺了关系层,系统即便知道这个客户是谁,也很难处理集团客户、渠道客户、多联系人客户这种现实业务。
这三层合在一起,才构成一个真正可用的客户主数据底座。
CRM 如何串起 O2C 全流程
理解了三层模型后,我们再回头看 O2C,就会发现 CRM 其实一直在幕后“供数”。
| O2C 环节 | 从 CRM 取什么 | 为什么必须取 |
|---|---|---|
| 销售机会/报价 | 客户名称、客户等级、所属行业、联系人 | 销售要知道在跟谁谈,报价要知道适用哪套价格规则 |
| 销售订单 | 客户主编码、开票主体、收货地址、付款条件 | 订单必须明确签给谁、货送到哪、钱怎么结 |
| 信用检查 | 客户信用额度、风险标签、历史逾期情况 | 系统要判断这笔订单会不会带来坏账 |
| 发票开具 | 法定名称、税号、开票地址、开户信息 | 发票必须准确开给法定主体 |
| 收款核销 | 客户主编码、应收主体、信用占用情况 | 财务要把钱正确挂到对应客户,并释放额度 |
| 售后服务 | 联系人、设备地址、历史订单 | 客服要知道到底服务谁、服务过什么 |
从这个表里你会发现,CRM 不是 O2C 的一个边角模块,而是一个几乎每个节点都会被读取的数据中枢。
这也是为什么我前面说:CRM 的核心价值不在销售,而在数据。
因为 O2C 的每一步都在问同一个问题,只不过问法不同:
- 销售在问:这个客户值不值得跟。
- 风控在问:这个客户能不能赊。
- 财务在问:这张发票该开给谁。
- 收款在问:这笔钱到底该冲谁的账。
如果底层没有一套统一的客户主数据,这些问题就会被不同系统各自回答,最后得到彼此对不上的答案。
客户主数据为什么总是容易“长歪”?
理论上,CRM 应该是客户的统一底座。但现实里,客户主数据很容易越用越乱。最常见的有三类问题。
难题一:一客多号
同一个客户,可能通过官网注册过一次,通过销售手工新建过一次,通过经销商导入又来过一次。
结果就是:系统里出现多个“看起来像同一个客户”的记录。
这类问题的本质,是没有把“唯一识别”放在第一位。
常见做法包括:
- 设立统一客户主编码,不允许各系统各自造号。
- 把统一社会信用代码、手机号、邮箱等作为辅助去重条件。
- 建立客户合并机制,让重复客户可以合并,而不是永远并存。
难题二:跨系统同步
销售把客户地址改了,财务系统不知道;财务更新了开票信息,客服系统也没同步。这种问题在企业里非常常见。
它的本质不是“某个人忘了通知”,而是多个系统都把自己当成客户信息的维护入口。
更稳妥的思路通常是:
- 明确谁是客户主数据的源头系统。
- 其他系统优先读取,不随意本地改写。
- 对必须本地维护的字段,划清边界,比如“销售联系人”由销售维护,“开票税号”由财务维护。
简单说,客户信息不能谁都能改。否则数据同步问题不是偶发 bug,而是必然结果。
难题三:敏感字段权限
客户的基本名称和联系人,大多数业务人员都要看。但像信用额度、欠款余额、税号、开户信息这类字段,就不能默认对所有人开放。
如果权限放得太开,数据安全有风险;如果权限放得太死,业务流转又会卡住。
这类问题最稳妥的处理方式,通常不是“整个客户档案能不能看”,而是按字段分级授权。
比如:
- 销售可以看联系人、等级、商机记录。
- 财务可以看开票信息、收款信息、信用额度。
- 客服可以看联系人、设备、服务记录,但不一定能看信用额度。
这说明一个很重要的事实:CRM 不只是“有一张客户表”,而是一整套围绕客户数据的治理机制。
客户主数据字段设计速查清单
如果你在需求评审、产品设计或者系统建模时,不知道 CRM 字段该怎么分,可以先用下面这张表做第一轮检查。
| 字段 | 所属层 | 必填度 | 敏感度 |
|---|---|---|---|
| 客户主编码 | 身份层 | 必填 | 中 |
| 客户名称 | 身份层 | 必填 | 低 |
| 客户类型 | 身份层 | 必填 | 低 |
| 统一社会信用代码 | 身份层 | 企业客户必填 | 高 |
| 客户简称/别名 | 身份层 | 可选 | 低 |
| 所属行业 | 属性层 | 建议必填 | 低 |
| 所在区域 | 属性层 | 建议必填 | 低 |
| 客户等级 | 属性层 | 建议必填 | 中 |
| 付款条件 | 属性层 | 建议必填 | 中 |
| 信用额度 | 属性层 | 账期客户必填 | 高 |
| 风险标签 | 属性层 | 可选 | 高 |
| 开票地址/税号 | 属性层 | 开票客户必填 | 高 |
| 集团关系 | 关系层 | 集团客户必填 | 中 |
| 联系人信息 | 关系层 | 建议必填 | 中 |
| 销售归属 | 关系层 | 建议必填 | 中 |
| 渠道关系 | 关系层 | 渠道业务必填 | 中 |
这张表不是标准答案,但很适合做第一轮自检。
如果一个系统里连“客户主编码、客户名称、客户类型、付款条件、联系人”这些基础字段都没有定义清楚,那它大概率还谈不上真正的 CRM。
总结:CRM 不是销售工具,而是 O2C 的数据地基
回到文章开头那个问题:为什么同一个客户,在系统里会变成三条记录?
答案通常不是因为业务太复杂,而是因为企业没有把“客户”当成一份统一的主数据来管理。
CRM 的真正价值,不是多一个让销售录信息的页面,而是帮助企业回答清楚三件事:
- 这个客户是谁:靠身份层保证唯一识别。
- 这个客户是什么样:靠属性层承接业务规则。
- 这个客户和谁有关:靠关系层支撑真实业务上下文。
理解了这三件事,你就能明白为什么 CRM 会出现在 O2C 的每一个关键节点里。订单、信用、开票、收款,看起来是不同流程,底下用的其实都是同一份客户认知。
CRM 不是 O2C 的配角,它是整个流程能对得上的数据地基。
在下一篇文章中,我们继续往前走一步:当客户已经被分层、被识别、被管理之后,企业又该如何针对不同客户,设计不同的价格体系?
往期回顾
- 业财通识11:从开票到收款,企业如何收回每一分钱?
- 业财通识10:当货物发出,系统里发生了什么?
- 业财通识09:订单确认前,系统如何防止坏账风险?
- 业财通识08:企业赚钱的第一步,从“潜在客户”到“销售合同”
- 业财通识05:商品世界的基石——SPU与SKU
关于十三Tech
资深服务端研发工程师、架构师、AI 编程实践者。
希望能和大家一起写出更优雅的代码!
如果正好有需要,可以支持一下
这里放了一个阿里云活动入口。你本来就打算了解这类服务的话,可以从这里进去;如果有推广收益,我会优先用来覆盖服务器、域名和维护成本。
