ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

自建客户管理系统(CRM)实战:从Excel到DeskcommCRM的完整部署与运维指南

自建客户管理系统(CRM)实战:从Excel到DeskcommCRM的完整部署与运维指南 说实话在把客户资料从“销售个人微信备注”挪进 DeskcommCRM 之前我和大多数小微团队一样看到“CRM”这三个字母就头疼。市面上叫“客户管理系统”的产品没有一个让我们真正用起来免费的权限乱、数据说没就没付费的按人头收费一年下来比房租还贵自己拿 Excel 做了个共享表格结果销售离职时顺手删了半年的跟进记录恢复都恢复不出来。后来我们花了两个周末把 DeskcommCRM 部署到自己的服务器上用了大概半年才真正理解了什么叫“客户数据在自己手里”的踏实感。这篇文章不是产品软文是我以一个普通使用者和部署者的身份记录从选型、部署到日常运维的完整过程。如果你也在纠结“到底该选免费 SaaS CRM、付费云 CRM还是自己搭一套”我的经验可能比厂商销售那张 PPT 更有参考价值。1. 从“手机里的 Excel”到 DeskcommCRM我为什么最终选了自建客户管理系统先说背景。我们团队当时 12 个人其中 7 个是销售客户主要靠微信群、电话和个人微信维护。所谓“客户管理”其实就是销售各自在手机备忘录里记客户需求每周五开会时对着投屏念一遍。丢单、撞单、客户跟进断档都是家常便饭。真正让我下定决心换系统的是一个特别小的事有一个老客户主动来问新产品报价结果接待他的销售休假了其他人翻遍他的微信聊天记录也不知道这个客户之前聊到哪一步最后报了一个错的价格客户直接火了。那一刻我就明白不管用什么工具客户信息必须变成“公司资产”不能再是某个人手机里的聊天记录。一开始我试了市面上几款免费 CRM。说实话免费版本用来用去都是那么几个问题自定义字段要收费、导出数据要收费、成员数量超三个就要收费最要命的是数据全在别人服务器上哪天厂商调整产品线说停就停。我也研究过那些“永久在线”的云 CRM 网站界面确实好看但数据导出一次要发工单申请等审批下来黄花菜都凉了。后来我们技术同事提到可以试试自建方案于是找到了 DeskcommCRM。让我决定选它的原因其实很朴素一是它部署在自己服务器上数据文件、数据库、备份全在自己手里二是它没有按人头收费的概念多少个员工用都是一个价三是它底层用的是比较主流的 Java 技术栈团队里熟悉 Ruoyi 这类后端框架的同事接手二次开发不费劲后续想加字段、改流程自己就能动手不用事事找厂商。我到现在还记得第一个版本跑起来那天销售主管在后台看到那 3000 多条从旧表导入的客户记录时的表情——他第一反应是问“这数据传到别人服务器上了吗”我指着机柜里那台小服务器说“就传到了这里”。1.1 我们界定的使用边界自建 CRM 不是要把所有功能都堆上来。当时我给自己定的原则只有三条客户信息统一沉淀、跟进记录不可丢失、权限能够隔离。什么营销自动化、客户公海、漏斗分析第一版统统没开。原因很简单团队连基本的数据录入习惯都没养成上再多花哨功能只会让大家更抗拒。先用最核心的“客户-联系人-跟进记录”这三个概念把日常跑顺再逐步加东西。2. DeskcommCRM 解决了 SaaS CRM 最让我不放心的一件事数据究竟在谁手里所有用过云 CRM 的人心里其实都悬着一块石头我的客户数据到底存放在哪里这块石头的分量在平时可能感觉不到一旦你遇到账号被封、厂商倒闭、价格暴涨就会瞬间砸到你头上。先说“免费 CRM 与私人网站的区别”这是很长一段时间大家都在搜的问题。我的理解是免费 CRM 本质上是厂商用你的数据喂自己的产品它给你免费用是因为你作为免费用户本身成了产品的一部分而所谓“私人网站”——也包括自建 CRM——是指系统跑在你自己的服务器、你自己的域名下面数据从写入那一刻起就在你的数据库里厂商倒了跟你没关系服务器宕了你也能自己重启。拿我们实测的数据来说旧客户表 3278 条记录从 MySQL 导出再导入 DeskcommCRM整个过程用了不到二十分钟中间没有任何一个字段丢失。后来我们想给客户表加两个自定义字段一个记录“客户行业细分”一个记录“最后沟通渠道”在后台配置页面里十几分钟就完成了不需要提工单不需要等版本排期。这在免费 SaaS CRM 里几乎不可能做到。我承认自建方案需要有人懂一点服务器知识这是它的门槛。但反过来想一个工具把数据的“所有权”交还给你换来的是你愿意长期往里录数据——而 CRM 的价值恰恰建立在“录进去的数据”之上。2.1 关于“永久在线的 CRM 网站”很多人搜“永久在线的 crm 网站”可能想找的是一个永远不会关停的网页应用。实际上真正的“永久在线”不是哪个厂商承诺的而是你自己控制的部署在云服务器上只要服务器不欠费、程序没崩它就一直在线再加上监控和自动重启脚本稳定性是可以做到的。我们团队用的是最低配的 2 核 4G 云主机运行 Java 应用加 MySQL 数据库日常十来个销售同时使用CPU 占用率常年不到 20%。2.2 对比表格免费云 CRM vs 付费云 CRM vs 自建 DeskcommCRM对比维度免费云 CRM付费云 CRM自建 DeskcommCRM数据存储位置厂商服务器厂商服务器自有服务器数据导出权限通常受限通常支持直接读数据库无限制按员工数收费超人数收费按人头收费不按人头收费自定义字段需要升级部分支持完全支持需要懂技术不需要不需要需要基础 Linux/容器知识数据出现问题时响应速度等工单等客服自己动手分钟级恢复这张表不是要说自建方案天下第一而是告诉大家选型本质上是选“谁掌握控制权”。如果你对控制权没需求用现成的省心如果有自建这条路是值得考虑的。3. 从一台闲置服务器到全员可用DeskcommCRM 的部署与初始化过程我得坦白一个事实Deployment 当天我们踩了很多坑但回头复盘真正的过程并没有想象中复杂。只要你能照着下面这条路走大部分团队应该一天之内能跑通。3.1 环境准备一台服务器加一个域名服务器最低 2 核 4G 内存、40G 系统盘操作系统 Ubuntu 22.04 LTS数据库MySQL 8.0也可以换 PostgreSQL但官方默认路径用 MySQL 顺手运行环境Docker 与 Docker Compose域名最好有一个哪怕是二级域名因为后面要申请 HTTPS 证书原本我们用的是旧电脑当服务器放在办公室角落里后来发现办公室一停电外网销售就登不进去果断迁到了云主机。我的建议是生产环境不要省这几百块钱固定公网 IP 很重要否则换 IP 后所有外勤销售的客户端都要重新配置。3.2 Docker Compose 部署示例我用的是 Docker Compose 方式部署把配置文件放在/opt/deskcomm/目录下。下面是一个简化版的docker-compose.ymlversion: 3.8 services: app: image: deskcommcrm/server:latest restart: always ports: - 8080:8080 environment: DB_HOST: db DB_PORT: 3306 DB_NAME: deskcomm_crm DB_USER: deskcomm DB_PASSWORD: change_this_password TZ: Asia/Shanghai depends_on: - db db: image: mysql:8.0 restart: always command: --default-authentication-pluginmysql_native_password volumes: - ./data/mysql:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: change_this_root_password MYSQL_DATABASE: deskcomm_crm MYSQL_USER: deskcomm MYSQL_PASSWORD: change_this_password启动命令很简单cd /opt/deskcomm docker-compose up -d启动完成后浏览器访问http://服务器IP:8080按照安装向导创建管理员账号即可。我强烈建议在初始化时就把强制 HTTPS 打开不要图省事只搞个 HTTP因为客户信息属于敏感数据明文传输在团队里是过不了自己这一关的。3.3 初始化配置导入组织和人员结构系统起来之后第一步是先建组织架构再建部门和成员最后建管理员角色。这里有一个经验把“销售组长”和“普通销售”两个角色的权限边界一开始就设好后面能省很多事。比如我们规定普通销售只能看自己的客户、自己的跟进记录而组长可以看本组成员的客户但也不能看其他组的客户。部门、角色、人员都建完后再配置“客户数据字典”。这块相当于搭好一个统一的填写模板。我们团队的字典包含客户名称、客户类型新客户/老客户、所在行业、来源渠道、负责人、状态等基础字段以及几个自定义扩展字段。确认无误后再导数据不要着急导入否则数据不规范会很难清洗。3.4 数据迁移从 Excel 表格到 CRM旧数据迁移这一步我的方案是先在 Excel 里做一遍清洗统一字段名删除重复姓名补齐负责人手机号导出为 CSV 文件用文本编辑器打开确认编码为 UTF-8在 DeskcommCRM 后台的导入页面选择 CSV按映射关系逐步对应导入完成后抽查 50 条记录验证手机号、负责人、更新时间是否正确我们最后导入了 32 个销售、7 个部门的全部历史数据只用了不到二十分钟。唯一的小插曲是 CSV 里有一些手机号被 Excel 自动转成了科学计数法导致末尾三位变成“0”好在导入前用数据透视表做了核查没有污染正式数据。4. 让销售愿意每天打开它客户、线索与跟进记录的功能设计再强大的系统如果销售不爱用最终都是一座数据的空坟。DeskcommCRM 在功能设计上有一个好处它没有强迫你改变原有工作习惯而是把你已经在做的事变得有迹可循。4.1 核心模型客户、联系人与跟进记录客户、联系人和跟进记录是 CRM 的三大核心对象DeskcommCRM 对这三者的关系划分得很清楚客户公司、组织层面的信息包括公司全称、行业、规模、所属销售联系人客户公司内部的具体人员一个客户可以挂多个联系人每人有职位、手机、微信等跟进记录每一次与客户互动的文字记录包括时间、方式电话/微信/拜访、内容摘要、下次跟进时间这套模型看似简单实际使用中非常顺手。以前销售在微信里聊完客户就翻篇了现在他们习惯在通话结束后花三十秒录一条跟进记录。我们不强行要求写长篇报告只要把关键信息记录下来即可。一个月下来销售主管能随时看到每个客户的进展每周五的汇报会议从“翻聊天记录”变成了“打开 CRM 看数据”。4.2 待办与提醒让跟进不会断档我最喜欢的功能其实是“下次跟进时间”。每条跟进记录都可以设置一个预定的下次跟进时间和提醒系统会在首页的待办里列出今天需要联系的客户。这个机制非常像我们常用的待办清单应用但它绑定的是客户所以销售一打开系统就知道今天要联系谁。我实测下来这个简单功能直接把我们团队的“客户遗忘率”降了一大截。过去老客户到期了没人跟进现在系统会主动提醒销售只需要按计划执行就行。4.3 客户视图的个性化配置DeskcommCRM 的列表页支持自定义显示字段。我建议不要一股脑全显示而是在列表页只保留客户名称、负责人、状态、最近跟进时间四个字段其他字段放进详情页。信息越精简越容易快速定位一屏能看完的东西大家才愿意天天看。5. 团队协作不等于共享账号邀请成员、权限划分与协同细节我见过不少小团队为了省钱几个人共用一个 CRM 账号。这个做法在免费 SaaS 产品里很常见但在自建系统里完全没必要因为成员数不受限制邀请员工是零成本的。经常有人跑去找飞鱼 CRM 怎么邀请员工、怎么设置角色其实在 DeskcommCRM 里这套流程的逻辑是一样的但更透明。5.1 邀请员工加入的具体操作以管理员身份登录后在后台“成员管理”页面点击“新增成员”填写员工姓名、登录账号建议用企业邮箱、手机号分配初始角色如销售、销售组长、客诉专员、管理员系统生成邀请邮件或邀请链接员工点击后设置自己的登录密码即可进入系统我们把 7 个销售、2 个客服、1 个运营、1 个财务逐批导入整个过程不到半小时。每个成员都有独立的账号每个人操作留下的痕迹都可以追溯到人这一点在复盘“为什么这个客户跟丢了”的时候特别关键。5.2 角色权限的细分常见的权限级别有这么几档管理员全部权限包括系统配置、字段管理、数据导入导出销售组长看本组成员的客户支持分配客户可以编辑组内跟进记录普通销售只能看自己名下的客户、联系人和跟进记录客服/运营只能看与自己相关的客户不能修改销售字段只读成员比如老板和财务能看所有数据但不能改动这个权限设计还有一个隐藏的好处它能约束数据不被误删。普通销售的删除权限我们默认关闭只保留编辑和新增权限。这样就算销售离职时心情不好也不可能把客户数据带进黑洞。5.3 撞单避免与客户认领机制多人协作中撞单是永恒的痛点。DeskcommCRM 里可以通过“客户认领”机制降低撞单概率新进线索进入“公共池”销售可以一键认领认领后其他人不可编辑。系统同时保留“申请接管”流程销售 A 想接管销售 B 的客户必须提交申请由组长审批才能生效。这套机制比群里面互相喊“这是谁的单”文明得多也让销售省去了很多扯皮的时间。6. 部署当天就该做好的四件事备份、HTTPS、监控与升级策略很多人部署完系统就以为完事了其实真正的工作才刚刚开始。我把“部署当天就要完成”的硬性任务列了一个清单照着做一遍心里才有底。6.1 自动备份数据库与附件目录备份是 CRM 系统的生命线。我的做法是写一个 shell 脚本每天凌晨两点使用mysqldump备份数据库再用tar打包附件目录传到独立的备份存储同时保留最近 14 天的备份。#!/bin/bash BACKUP_DIR/backup/deskcomm DATE$(date %Y%m%d%H%M) docker exec deskcomm_db mysqldump -u root -p$DB_PASSWORD deskcomm_crm $BACKUP_DIR/db_$DATE.sql tar czf $BACKUP_DIR/files_$DATE.tar.gz /opt/deskcomm/data/uploads find $BACKUP_DIR -name *.sql -mtime 14 -delete find $BACKUP_DIR -name *.tar.gz -mtime 14 -delete这个脚本必须经过一次真实恢复演练才算数。我被坑过备份文件在但备份时候的命令参数写错了导出的 SQL 文件只有 1KB等于每天备份了一个空壳。现在我的规矩是每周随机抽取一个备份文件在另一台临时服务器上恢复一次确认能查到最新一条客户数据才放心。6.2 HTTPS保护客户数据的底线前面说过我们初始化时就把强制 HTTPS 打开了。用 Let’s Encrypt 申请证书配合 Nginx 反向代理把 80 端口请求全部跳转到 443整个配置过程半小时以内能搞定。配完之后浏览器地址栏显示小锁图标销售在咖啡厅连公共 WiFi 查客户资料时心里踏实很多。6.3 监控系统挂了不能靠销售来通知你最不专业的情况是销售打电话问你“系统怎么登不上去了”你才知道服务挂了。我部署当晚就做了最基础的监控一个 UptimeRobot 每分钟检查一次登录页 URL状态异常会推送到企业微信另外在服务器上加了定时任务检查负载和硬盘空间超过阈值就发送告警。6.4 升级策略小步快跑别追最新版DeskcommCRM 的版本更新不算频繁但我养成了一个习惯绝不直接在正式环境上升级。先在测试服务器拉一份生产数据快照升级完跑一遍核心功能测试登录、客户查询、新建跟进记录、备份确认没问题再对生产环境操作。版本不是越新越好稳定才是第一位的。7. 用了半年后踩过的坑以及我做的调优半年时间说长不长但足够暴露一些设计和使用上的问题了。我把踩过的坑原原本本列出来希望能帮你省去同样的弯路。7.1 字段设计太克制导致老销售用 Excel“私藏”数据我的第一版客户信息字段很少只有公司名称、联系人、电话、行业这几个必填项。结果两个月后发现有几个老销售习惯在“备注”字段里写大量背景信息一屏看不完导致新接手的人根本不敢动。后来我增加了“客户背景”“需求偏好”“历史报价”三个自定义字段并给销售培训了填写规范“备注”里的长篇大论才逐渐转移到结构化字段里。7.2 并发不高但数据库连接池爆了使用人数一多大概在 20 人同时在线时系统偶尔会出现卡顿。后来排查发现不是服务器 CPU 不够而是 MySQL 连接池默认值太低。调整连接池参数后问题立刻消失。这里也分享一个排查思路先看监控里的 CPU、内存、磁盘如果都正常就要看数据库的连接数和慢查询日志。DeskcommCRM 底层用的是常见的 Java 技术栈和 Ruoyi 这类框架的调优思路有相通之处都是先查慢 SQL再调连接池参数。7.3 附件目录越来越大的隐患销售越来越习惯在里面上传客户产品照片、合同扫描件半年下来附件目录涨到 40 多 GB。我没做对象存储就硬扛着结果备份时间和恢复时间都变得不可接受。最后做的调整是对超过 20MB 的附件限制直接上传改成传网盘链接同时对老附件做冷备归档只保留最近一年的热数据在服务器上。7.4 数据质量录入习惯是永远的核心系统只是工具真正决定数据质量的是习惯。我们靠两个办法逐步养成了习惯一是每天早上例会用五分钟扫一眼“今日待跟进”列表二是给销售组长开放“数据完整度”报表谁名下的客户资料长期不完整一眼就能看到。我到现在还记得第一次全员用上系统那个月月底销售主管在例会上放了一页数据客户跟进记录从过去一个月不足 50 条变成了 400 多条。那一刻我意识到选对工具只是开始让大家愿意把数据交给系统才是真正的分水岭。最后再补一个我自己都在用的“土办法”我不太喜欢把 CRM 用得太重所以一直保留一个简单的做法每周五下午让每个销售挑一个“本周最值得关注的客户”在系统里更新完整资料并写一段客户现状总结。不是让他们写长篇大论而是用三四句话说清楚“这个客户现在是什么状态、下一步准备怎么办”。半年下来这些“周报客户”变成了公司最有价值的资源库老板做明年计划时很多线索都从这里来。如果你刚部署完 DeskcommCRM我建议你也试试这个方法。系统里那些冷冰冰的记录只有在被反复翻看、反复思考时才会变成真正的业务资产。
返回列表