ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

从零自研CRM的关键:数据模型、权限与消息触达设计实践

从零自研CRM的关键:数据模型、权限与消息触达设计实践 见过太多CRM项目真的十个里有七个最后变成了“老板强制销售填写的记流水账系统”。销售觉得是负担管理者看到的数字又是假的最后整套系统就被晾在一边只剩下登录页面还在跑。我做过一套叫DeskcommCRM的客户关系管理系统从需求梳理、数据模型设计到真正让销售愿意每天用整个过程走下来最大的感受是CRM成不成的关键根本不是功能多不多而是你的数据模型、权限设计、消息触达这三件事有没有想清楚。这套系统面向的是B2B业务场景管的是从线索、商机、报价、合同到回款的完整链路。叫Deskcomm这个名字其实带了一点业务定位在里面Desk代表桌面端优先Comm是Communication强调客户沟通留痕CRM则是核心的客户关系管理。这篇文章我就把从0到1的选型思路、表格结构、审批流实现、消息触达还有上线之后让销售真正用起来的关键动作一次性讲透。如果你也在犹豫是自研CRM还是买现成的或者已经在做但卡在了某个环节这篇应该能给你一些实在的参考。1. DeskcommCRM是什么一次业务流程驱动的自研选型1.1 为什么叫Deskcomm而不是简单的“某某CRM”系统起名这件事看起来简单实际上反映了你对业务边界的定义。市面上大多数CRM叫“XX云”或者“XX通”强调的是云端协同或通用化管理但DeskcommCRM这个名字有三层含义值得拆开来说。Comm是Communication的缩写这在业务上是刻意的。我们调研了一批销售和交付人员发现他们日常最有价值的动作就是“沟通记录”——跟客户电话聊了什么、微信上确认过什么交付物、邮件里承诺过什么节点。这些东西在传统CRM里经常被压缩成一句“已跟进”但恰恰是管理层做判断最需要的信号。所以Deskcomm在设计之初就把“沟通记录”当成和“客户资料”同样重量级的主数据来对待而不是跟随进记录混在一起。Desk前缀则代表这套系统的主要使用场景是桌面端的坐席操作。确实现在大家习惯手机办公但B2B领域的客户管理动作比如导入一批线索、审批一份折扣合同、调整下个季度的商机构成多半是在办公室用大屏幕完成的。手机端我们只做了关键信息的查看和简短的跟进录入这算是产品定位上的主动取舍。CRM是客户关系管理但在Deskcomm里它更贴近“Customer Revenue Management”重点放在和营收直接挂钩的线索转化和回款动作上。这不是玩文字游戏而是划分功能优先级的标准和收入相关的功能排前面做辅助性的字段、报表、权限设置往后放。1.2 项目从哪来一张Excel表格逼出来的系统这个项目不是老板拍脑袋说要搞数字化也不是IT部门觉得该上个新系统真正的起因是业务侧的一张Excel表扛不住了。公司的销售团队大概30人左右每天用共享表格记录客户跟进情况。一开始还好后来问题越来越多A销售以为某个客户是自己的结果B销售也在跟报价单发出去之后没人追踪客户说“再考虑一下”就再也没有然后合同签了但回款计划没人维护财务月底对账才发现有应收逾期。最要命的是老板想看一下这个季度的商机预测Excel表格里的数据落后了至少一周而且因为多人同时编辑数据冲突不断根本没法看。当时也考虑过直接用市面上的SaaS CRM有试用过几套功能确实丰富什么营销自动化、工单系统、呼叫中心全都有。但仔细一评估问题也明显一是系统底层的数据模型是固定的我想把“沟通记录”提升为独立实体标准产品做不到二是审批流和权限模型比较复杂标准产品要么不支持要么就是收费插件三是历史数据的迁移非常麻烦Excel里的客户归属、跟进历史、报价记录质量参差不齐标准产品导入模板根本装不下。DeskcommCRM就是在这种背景下立项的。不追求大而全目标非常明确把线索、客户、商机、报价、合同、回款这六张主表做扎实再把跟进记录和审批动作贯穿其中让每一笔业务都有迹可循。1.3 与市面通用CRM的核心差异数据规范死严格执行自研系统有个容易被忽略的好处就是你可以把数据规范做成系统层面的强制约束而不依赖销售自觉。举个例子。在Excel时代客户的“预计签单时间”这一列有填“下个月”的有填“2025-06-30”的还有干脆写“尽快”的。到了DeskcommCRM里这个字段的数据类型被硬性定义为日期而且系统会校验预计签单时间不能早于商机创建时间超过了就弹提示根本存不进去。就这一个约束报表里的商机预测准确性立刻就不一样了。再比如客户名称的重复控制。以前A销售录一个“北京华信科技有限公司”B销售录“华信科技”系统认为这是两家。现在通过字段级相似度匹配和手动合并机制重复客户的占比从最初的15%降到了3%以内。这个数字直接影响的就是销售之间抢客户的纠纷率。说白了CRM的数据规范化程度决定了系统上线之后是帮你理清业务还是替你制造混乱。2. 数据模型设计为什么字段不能照抄大厂的实现2.1 六张主表的底层关系从线索到回款的主干结构数据模型是整个系统的地基。市面上的CRM主数据模型基本是客户、联系人、商机、订单这套Deskcomm也是这样设计的区别在于我们更强调各表之间的流动方向以及对关键节点的状态控制。完整的业务链路是这样的线索Lead从展会、官网、转介绍等渠道进入系统线索经过初步电话沟通确认需求后转化为客户Account和联系人Contact针对客户的实际需求创建商机Opportunity记录预计金额和预计签单时间商机推进过程中产生报价单Quote记录每次报价的版本、折扣和产品明细客户确认合作后报价单转合同Contract合同关联回款计划PaymentSchedule回款计划每期到期系统自动提醒相关销售和财务这六张表听起来不多但每张表的字段设计和状态流转都需要仔细推敲。以商机表为例核心字段包括商机编号自动生成格式OPP-年份-流水号客户ID关联客户表负责人ID关联员工表也就是这个商机的主要跟进人金额当前阶段预计的成交金额阶段意向确认、需求沟通、方案确认、商务谈判、合同审批、已赢单预计签单日期系统强制校验的日期字段赢单概率根据阶段自动带出来的默认值允许人工微调来源类型新商机、老客户扩展、渠道合作等这里面最容易出问题的是“金额”字段。Excel时代销售经常把整个项目额写上去但实际上这个客户可能分成三期采购每一期的预算不同。所以在Deskcomm里一张商机会挂多个商机明细行每行记录产品名称、数量、单价系统自动汇总成商机总金额。这样做的好处是报价的时候可以直接从商机明细里拉数据生成报价单避免重复录入。2.2 销售阶段用字典表而非枚举值改配置不动代码这里有个选型细节我觉得特别值得拿出来说销售阶段的定义一定要用字典表而不是写死在代码里的Enum枚举值。为什么因为业务阶段大概率会变。今天你觉得销售流程是“意向确认、需求沟通、方案确认”这三步半年之后业务模式调整可能要拆成“意向确认、初步沟通、产品演示、需求调研、方案确认、商务谈判”六步。如果用枚举实现每次调整都要改代码、发版本用字典表只需要由管理员在后台改一条记录的排序值就行代码完全不用动。Deskcomm里的字典表结构设计得很轻只有四列字典类型、字典值、排序号、是否启用。销售阶段、跟进方式、线索来源、合同类型都走这套通用方案。与之配套的是一个阶段变更记录表。商机从“意向确认”变成“需求沟通”的时候系统自动记录变更人、变更前后阶段、变更时间和备注。一开始销售觉得这是多余的后来他们反而非常依赖这个功能——因为汇报项目进度的时候打开阶段变更记录就能把整个推进过程讲清楚连周报素材都有了。这里也踩过一个坑阶段变更不能没有约束。最初版本允许销售在任意阶段之间来回切换结果出现了为了满足“本月赢单率指标”把商机从“商务谈判”临时拖回“方案确认”的骚操作。后来我们在状态机上加了业务规则只有当前阶段和下一个阶段之间的跳转是允许的跨阶段跳转需要提交审批赢单之后的商机不允许撤回。加了这几条约束之后数据一下子就健康了。2.3 自定义字段的边界过度灵活就是灾难CRM系统永远绕不开自定义字段这个问题。销售希望所有字段都能自己加但作为系统设计者我对自定义字段的态度是可以开放但必须加限制和管理过度灵活的结果就是数据失控。Deskcomm的自定义字段基于JSONB实现允许业务管理员在后台动态添加文本、数字、日期、下拉选项这四种类型的字段。数据结构上主表加了一个attributes的JSONB字段自定义字段都塞在里面查询的时候通过GIN索引加速。但有两个限制我认为是不可妥协的自定义字段的数量上限是20个。超过20个就停下来反思一下是真的有这个业务需求还是只是觉得“万一以后用得上”自定义字段创建之后不能直接删除只能停用。这是为了保护历史数据的一致性否则你停用字段的时候历史数据里面对应的值就变成了一堆没有定义的孤儿JSON键。自定义字段还有一个容易忽略的问题权限控制。如果所有销售都能看到同一个商机上的全部自定义字段可能就会有人钻空子比如把客户关键决策人的微信号记在自定义字段里然后绕过系统私下跟进。所以在字段设计上我们把自定义字段也纳入了字段级权限管理管理员可以控制哪些角色能看到、能编辑哪些字段。3. 审批流与消息触达CRM里最容易翻车的两个环节3.1 审批流为什么不套用现成引擎状态机加扩展字段就够了CRM系统里的审批流看着简单做起来很容易失控。市面上的开源工作流引擎比如Flowable、Activiti这些功能确实强大BPMN流程图一画什么会签、或签、条件分支都不是问题。但对一个管理客户和商机的系统来说引入这么重的引擎维护成本和业务复杂度都是灾难。Deskcomm审批流的设计思路是轻量状态机。枚举审批类型每种类型定义初始状态、可转移状态和操作角色就够了。以“折扣审批”为例销售提交报价单折扣超过5%就触发审批审批状态从“待销售总监审批”开始销售总监通过后如果折扣超过10%自动流转到“待总经理审批”总经理审批后状态变为“已批准”报价单上的版本号加1任何审批节点驳回状态回到“已驳回”销售修改后重新提交这套状态机逻辑用代码实现起来并不复杂核心就是一张审批实例表加一张审批记录表。审批实例表存当前状态、发起人等审批记录表存流转历史。好处是业务人员能清楚地看到每张报价单处于审批的哪个节点销售总监也能一眼看出来这个月有多少折扣申请被驳回、多少在等待他处理。比较重要的一点是审批动作必须通过数据库事务保证数据一致性。用户点击“批准”的时候系统要做两件事更新审批实例的状态以及更新业务表里的相关字段。比如折扣批准后报价单的有效折扣率就要同步更新。这两个动作必须在一个事务里完成否则就会出现“审批已经通过了但报价单上的折扣还是原价”这种数据不一致的诡异问题。3.2 消息触达的优先级排序站内信、邮件与企微机器人CRM系统如果只是一堆页面销售肯定会忘记上去看。消息触达是驱动用户使用系统的关键环节。但消息触达也要分优先级不能什么都推。Deskcomm的实践是分三层站内信系统内的基础通知所有用户默认接收记录在通知中心可查历史邮件针对需要正式留痕的信息比如报价单已发送、合同审批已完成企微机器人针对真正紧急的事项比如审批超时、回款逾期、客户超过一周未跟进三层各有定位。站内信是全部消息的兜底一定会有记录邮件适合包含附件的正式通知企微机器人则只推三种真正需要立即处理的事情避免销售对消息产生免疫。回款提醒是我觉得做得最有效的功能。以前财务月底做应收表跟销售对账要花好几天。现在回款计划到期前三天、当天、逾期后一天系统自动把提醒消息推送给商机负责人同时抄送销售总监。上线一个季度应收账款的逾期率下降了大约20%这个功能功不可没。不要小看一条小小的提醒消息在系统里它代表的是“有人盯着回款呢”对销售的心理约束力远大于Excel里的逾期天数列。3.3 数据权限的底线设计客户归属权必须是排他状态数据权限是CRM里最敏感的设计做得不好轻则数据泄露重则销售直接不带你玩了。Deskcomm的权限体系强调“客户归属权排他”这个底线。所谓排他就是任何一个客户在某一时刻必须有一个明确的唯一负责人。客户表上有一个owner_id字段这个字段只能指向一个员工。其他员工可以浏览这个客户的基本信息但跟进记录、商机信息和联系方式是加密的只有负责人和有权查看的管理角色能看到。这个设计带来了一个直接的好处销售之间关于“这个客户是谁的”的矛盾大幅减少。因为系统层面已经清楚定义了归属权不需要开会议来扯皮。那客户转移怎么做呢有两种方式一是管理员在后台直接调整负责人同时保留变更日志二是通过“公海池”机制超过30天没有任何跟进记录的客户会自动释放到公海池其他销售可以主动领取。公海池的设计对减少死客户特别有效销售知道如果不持续跟进客户就不是自己的了这比任何KPI提醒都管用。同事之间临时协助的情况也考虑到了。Deskcomm支持“协作人”功能商机负责人可以邀请同事成为协作人协作人可以看到这个客户的信息并在系统里留下沟通记录但不拥有转移归属权的权限。这样就兼顾了灵活性和底线的安全性。4. 从测试到全员使用让销售愿意用系统的关键动作4.1 别把录入率当成开单指标仪表盘到底做给谁看产品功能做得再完善销售就是不用这事也白搭。Deskcomm从开发的第一天起就没有把“销售必须录入所有信息”当成管理目标而是反过来问自己一个问题这个系统能帮销售解决什么问题让他们心甘情愿地打开它答案是做成销售自己的“工作台”而不是老板的“监控台”。传统CRM的仪表盘多半是给管理者看的老板关心的是本季度成单金额、销售漏斗转化率、各团队业绩排名。这些指标会让销售产生“系统是老板的猎手”的抵触感。Deskcomm仪表盘的第一屏不是这些而是销售个人视角的待办一共四个板块今日待跟进客户根据上次跟进时间和下次跟进日期自动计算即将到期的报价报价单有效期前三天自动提醒超时未审批的申请销售发起的审批在总监那里积压超过一天自动置顶提醒本月的个人业绩进度个人商机金额及预计签单时间和目标的距离这四个板块的价值销售在使用的第二天就能感受到。以前他们靠小本子记“今天这五个客户要打电话”现在系统自动列出来了以前报价发出去就忘了追踪现在系统会提醒“这份报价三天后过期”。系统帮销售管好了他们的私事他们自然愿意录入数据这是一个正向循环。4.2 一条跟进记录的录入流程控制在30秒内“录入成本高”是销售抗拒CRM的第一大理由。设计跟进记录功能时我给团队定了一个硬性指标从打开跟进页面到完成保存操作路径不能超过三次点击输入内容不能超过两分钟。最终实现的方案是“41”快速跟进设计四类常用标签电话沟通、微信沟通、到访拜访、邮件往来点击即选一个下次跟进时间系统根据标签自动带出建议日期比如电话沟通默认两天后到访拜访默认一周后销售可以手动改跟进内容输入框默认是单行输入用自然语言的方式记录比如“客户张总对新产品感兴趣约了下周三下午演示”保存按钮按一下完事这套设计把一个跟进动作的耗时控制在30秒到1分钟之间。而且录入的字段极简反而保证了数据的质量和一致性。跟进标签是下拉选项统计“电话沟通占比多少、上门拜访占比多少”就非常容易分析不同跟进方式的转化效果也有了可靠的数据基础。这里还有一个提升录入效率的技巧语音输入。移动端的跟进记录页面集成了系统级的语音识别接口销售在外面跑完客户用语音说一段系统自动转文字再手动修正关键词比手打快得多。转文字的正确率在80%到90%之间稍微改一下就能保存。4.3 迁移历史数据的三个原则能不留就不留历史数据迁移是上线前最容易被低估的工作。我们决定迁移的时候定了三个原则事后证明非常有效。原则一只迁移未来还可能要跟进的客户。那些确定已流失、或者至少两年没联系的客户直接冻结在Excel归档里不进新系统。否则系统里全是僵尸数据销售打开客户列表看到几千条记录想找自己真正在跟的都费劲。原则二跟进历史只保留最近三条。原因很简单以前的跟进记录质量参差不齐而且销售本人对历史记录有记忆不需要系统来提醒。保留最近三条作为上下文就够了更多的记录迁移过来也是噪音。原则三负责人归属权的确认必须人工完成。Excel里的负责人一列很多是错的有人早就离职了有人只是配合过。迁移前我们组织了一次全员核对把每个客户的负责人指定到当前在岗的员工花了整整三天时间但这三天换来了上线后几乎没有“客户归属纠纷”的清净。这条原则值得所有计划上CRM的团队参考。5. 上线三个月的数据变化与下一轮迭代5.1 量化结果录入量、转化率与成交周期DeskcommCRM上线满三个月后我们拉了一批数据做复盘。不看系统本身的功能留存只看业务侧的指标变化是比较明显的。客户资料的数量从迁移时的800条增长到1300条左右其中有效线索的增加主要来自官网表单自动接入以前这些线索靠市场部手动整理漏掉三分之一都很正常。商机录入量从Excel时代的每月20条左右上升到每月60条以上这个增长很大程度上是“工作台待办”的功劳销售不再需要被催就主动录了。销售漏斗的转化率也有了正向变化。整个团队的线索到商机转化率从18%提升到了26%商机到签单的转化率从33%提升到41%。分析下来原因并非销售能力突然提升而是系统让销售能更清楚地看到自己每个商机所处的阶段以及哪些商机拖得太久该主动放弃或收回精力。平均成交周期从原来的82天缩短到64天。这个变化来自报价过期提醒和回款计划提醒的功劳以前报价发出去就石沉大海现在销售会在报价过期前主动联系客户推动决策而不是被动等客户回头。5.2 复盘踩过的坑过度设计、权限边界与冷启动复盘不是为了列功劳更要正视问题。Deskcomm上线过程中有三个明显的坑值得记录。第一个坑是过度设计了。初期我们做过一个“客户健康度评分”模块试图用RFM模型给每个客户打分。结果这个功能上线后几乎没人用销售看不懂这个分数代表什么管理者也不觉得它比人工判断更准。后来我们把这个模块降级为默认关闭的白名单功能只对几个试点团队开放。这个教训是不要为了技术炫技而制造概念业务方没有主动提的需求千万别自作主张。第二个坑是权限配置太复杂了。字段级权限、行级权限、操作权限、审批权限四套体系叠加在一起后台的权限配置页面连管理员自己都懵。后来我们做了一次大精简把操作权限和字段级权限合并行级权限只用“数据范围”一套规则表达审批权限独立保留。精简之后权限配置的工作量降了一半管理员的维护负担大幅减轻。第三个坑是冷启动期的数据空洞。刚上线的两周系统里很多客户没有完整的联系人信息商机没有关联报价单回款计划也没有填。数据空洞直接导致管理报表没法看。解决方法是设了一个“数据完整性”指标每周出一个数据健康报告列出缺失数据的客户和责任人由部门主管推动补齐。撑了大概一个月核心数据字段的完整率终于从75%恢复并稳定到了96%以上。5.3 后续迭代方向公海池回收策略与线索自动评分上线三个月只是起点。后续的迭代计划里比较确定的是三个方向。公海池回收策略要更智能。现在的规则是统一30天自动回收但实际上不同类型的客户跟进频率差异很大大型企业客户一个月联系一次很正常中小企业可能一周就要联系一次。下一步打算按客户级别设定不同的回收周期并加入“商机阶段”这个维度如果客户名下还有活跃商机比如处于商务谈判阶段即使超过30天没跟进也不应该被回收回收规则需要重新设计。线索评分要做起来。现在官网进来的线索还是人工分配和判断后续计划做一套基于规则引擎的线索评分模型。比如线索的行业、公司规模、是否有明确的产品需求、是否留了企业邮箱这些特征都配置上不同的权重系统自动打分后再分配给对应行业的销售让高潜力线索得到优先处理。第一版先用规则引擎实现规则可由市场部人员自行调整不需要开发介入。对外API平台也要提上日程。现在很多客户信息是从企微的会话存档里手动同步过来的下一步希望能通过企业微信开放接口自动归档聊天记录中的关键客户信息减少人工录入。还有合作方通过API提交线索、系统自动创建客户和商机这些都需要一套规范的REST API。做API平台的时候最要注意的依然是权限边界外部系统不能直接访问客户全量数据必须通过授权码和字段级白名单双重校验。DeskcommCRM这套系统走到现在从一张Excel表变成了支撑日常业务运转的客户数据中枢回头总结成功的关键我以为不是技术多先进而是严格遵守了几条朴素原则数据字段要少但要严格、权限规则要清晰但要排他、消息提醒要及时但不过载、推广方式要帮销售而不是监控销售。踩过的坑也不算什么危机无非是过度设计了几个没人用的模块权限配置把自己绕晕了一轮冷启动期被数据空洞刺痛了一阵子。如果你也在做类似的系统我的建议是少看那些功能堆砌的CRM产品宣传页多去跟业务一线的销售聊一聊搞清楚他们最痛的一件事是什么把那个痛点解决到位这套系统就已经成功一半了。技术永远只是手段真正让系统跑起来的是每天打开它的人。
返回列表