接口是后面才谈的事。客户、价格、订单、回款这几类数据先各指一个主,同步顺序才有依据。
一次报价评审上,销售报出的单价和 ERP 里的价格差了几个点。销售说系统里就是这个数,商务说 ERP 里不是。查了半天,问题不在谁填错,而在两套系统各存了一份价格,谁也没有义务跟对方对齐。CRM和ERP怎么打通,多数讨论从接口技术开始,而真正的分歧点往往更靠前:这条数据谁说了算。
CRM和ERP怎么打通:先回答谁的数据算数
把两套系统放在一张桌子上,头一件事是列出双方都在维护的字段,然后逐个指派一个主。客户名称、客户编码、联系人、物料、价格、信用额度、订单、发货、回款,这九类东西几乎每家企业都会重复维护,重复就意味着迟早不一致。
指派的原则不复杂:谁的业务动作产生这条数据,谁就是主。客户与联系人由销售在 CRM 里建档,ERP 只做引用;物料、成本、库存由 ERP 主导,CRM 只读;订单则要看签单动作发生在哪一侧。多数制造企业让 CRM 承接商机与报价,合同生效后推送到 ERP 生成销售订单,之后以 ERP 为准。
这件事如果不在开工前定下来,接口写得再漂亮也只是把冲突从会议桌搬到了数据库。
客户编码:一个字段决定后面所有麻烦
客户编码看着是小问题,实际是打通的头一道坎。销售习惯按名称找人,财务习惯按编码记账,两边的编码规则往往还是不同年代定下的:CRM 里是流水号,ERP 里带区域前缀。一个人改名、一家公司被并购、一个集团下面挂了五个采购主体,编码就会打架。
可行的做法是设一个与业务无关的全局客户编号,作为两套系统之间的唯一对照键,名称、税号、地址都作为属性存在,允许变更。CRM 侧新建客户时自动生成这个编号,ERP 侧只接受带编号的请求,不接受按名称匹配。按名称匹配的接口在测试环境里往往跑得很好,数据量上来之后,同名不同户、同户不同名会同时出现。
还有一处容易漏:集团客户与采购主体是两层结构。合同签在集团,收货和付款在子公司,CRM 里如果只有一个客户对象,回款就对不上。要么在客户对象上增加上级单位字段,要么单独建主体对象,选哪种取决于是否需要按集团合并统计。
三种打通方式,代价不一样
接口直连是常见的一种:CRM 调用 ERP 提供的服务,实时读写。好处是状态即时,代价是两边版本强耦合,ERP 升级一次接口,CRM 侧就要跟着改。适合数据量不大、变更不频繁的场景,比如客户主数据查询。
中间表或中间库是第二种:一方定时写表,另一方定时读表。它对两边系统的侵入小,ERP 团队不必为 CRM 单独开发服务,缺点是延迟,通常几分钟到半小时。适合价格、库存、信用额度这类允许短暂不一致的数据。
集成平台是第三种:把两边都接到一个中间层,由中间层做转换、路由、重试和监控。前期投入明显更高,但当企业有五六套系统要互联时,把逻辑集中在一处,比点对点连十几条线好维护。判断标准很直接:需要互联的系统超过三套,就值得考虑中间层;只有两套,点对点更省事。
同步频率与失败处理,比接口本身更需要设计
接口通了不等于打通了。真正决定日常体验的是三件事:多久同步一次、失败了怎么办、冲突了听谁的。
同步频率要按数据的变质速度来定。客户档案一天一次足够,价格和信用额度按小时,库存如果用于报价时的交期承诺,就得接近实时。全都做成实时,服务器压力和维护成本会一起上来,而且多数业务并不需要。
失败处理要有兜底。常见的设计是:失败进重试队列,重试三次仍失败则落异常表并通知责任人,同时允许人工在后台补推。没有异常表和补推入口的接口,出问题时只能靠开发查日志,一线只能干等。
冲突处理回到归属上。谁主,冲突时就覆盖另一方,不做双向合并。双向合并听起来公平,实际上会把两边的错误揉在一起,事后谁也说不清哪条是对的。
打通之后仍然要对齐的三件事
- 口径。CRM 里的成交金额含不含税、含不含运费,必须与 ERP 的订单金额一致,否则两边报表永远差一截。
- 时点。CRM 记的是签约日期,ERP 记的是订单创建日期,中间可能隔几天。做同比分析时要说清用哪个时点。
- 状态。商机赢单、合同生效、订单下达、发货、开票、回款,这是一条链。链条上每个状态由谁触发、回写到哪一侧,要画出来贴在项目群里。
一个可以照做的落地顺序
先做客户主数据单向同步,从 CRM 到 ERP,只推新增和变更,跑两周看异常率。再做价格与信用额度的反向只读,让销售报价时能看到 ERP 的实时口径。第三段才做订单与回款的状态回写。这个顺序的好处是每一步都能单独验收,出问题也能定位到具体一段。
反过来,一上来就做订单全链路双向同步的项目,往往在第三周卡住:基础数据还没干净,订单接口已经在报错,两边团队互相等对方。
LEVCRM 在这件事上的做法
LEVCRM 只做私有云与本地化部署,接口层的能力放在 aPaaS 低代码平台里:对象、字段、触发规则都可以由实施顾问在后台配置,对接 ERP 时用集成配置定义请求地址、字段映射、触发时机和失败重试策略,不必为每个接口单独写代码。
举个具体的配置方式。客户对象上增加全局客户编号、上级单位、ERP 同步状态三个字段,编号由规则引擎在新建时生成;集成配置里设一条出向任务,触发条件为编号非空且同步状态为待同步,字段映射按对方接口的字段名逐项对应,失败三次后把状态置为同步异常,并给客户成功经理发站内提醒。价格侧配一条入向任务,按小时拉取价目表,落到只读对象上,销售在报价单里选物料时直接带出。
实施时我们会先和客户的 ERP 团队确认三张表:客户对照表、物料对照表、状态码对照表。这三张表定完,接口工作量能估出七成。项目型业务的打通经验,整理在装备制造行业方案里;部署形态与环境要求见私有云部署方案。
从哪一步开始
如果现在就动手,建议先做一件事:把两套系统里都在维护的字段拉一张清单,标注每条的负责人。这张清单通常一两天能出,却能省掉后面几周的争论。
需要按现有 ERP 接口清单过一遍,可以预约一次技术沟通,我们带着对照表的模板来。销售服务热线 010-67201766,技术服务热线 010-60624622。
LEVCRM 只做私有云与本地化部署,顾问会按您现有的系统与流程给出建设顺序。
