四、客户管理(含客户公海)
菜单入口:CRM客户 → 客户管理 / 客户公海。客户是 CRM 的核心档案,公海机制则是客户资源在销售之间流转的规则引擎。

页面操作:查询、创建、更新、删除、导出、导入(Excel,按客户名称查重——同名时按"允许更新"开关决定覆盖或报错)。
4.1 客户档案要点
| 字段组 | 字段 | 说明 |
|---|---|---|
| 基本信息 | 客户名称(必填唯一性查重来源)、电话/手机 | 手机号不做唯一性校验 |
| 归属 | 负责人、所属行业、来源、级别 | 负责人决定数据权限 |
| 跟进 | 最后跟进时间/内容、下次联系时间 | 下次联系时间=今天 时进入待办"今日需联系客户" |
| 成交 | 成交状态 | 以存在审批通过的合同为统计口径(报表侧) |
业务规则:
- 新建/转移/领取时校验拥有客户数上限(见 客户限制配置);
- 详情页"团队成员"添加协作者(只读/读写);
- 写跟进记录会更新最后跟进时间并触发待办变化——这是影响公海超时判定的关键字段。
4.2 客户公海机制(核心)
公海 = 没有负责人的客户池。公海页面的数据就是 ownerUserId IS NULL 的客户。

页面操作:查询、领取(销售自己领)、分配(管理员指定负责人,需 crm:customer:distribute 权限)。
客户如何进入公海
| 方式 | 说明 |
|---|---|
| 自动掉入(定时任务) | XxlJob 任务 customerAutoPutPoolJob(多租户)按 公海配置 扫描到期客户 |
| 手动放入 | 客户列表操作"放入公海"(需负责人权限;公海数据/已锁定客户不可放入) |
自动掉入的到期判定(同时满足:有负责人 + 未锁定 + 未成交,且下列任一):
- 成交超时:领取时间距今超过"未成交放入公海天数"(dealExpireDays);
- 跟进超时:领取超时 且(最后跟进时间距今超过"未跟进放入公海天数" contactExpireDays,或从未跟进)。
放入公海时:客户负责人清空 → 名下联系人负责人一并清空 → 删除 OWNER 数据权限。
注意:如果调度中心(XxlJob)没有配置
customerAutoPutPoolJob,自动掉公海不会发生——这是唯一驱动任务。
客户如何离开公海
领取/分配的校验链:
- 必须是公海数据(无负责人);
- 未锁定;
- 未成交(已成交客户不能被领取);
- 领取人拥有客户数未超上限(即客户限制配置的领取限额)。
成功后:设置新负责人与领取时间、创建 OWNER 权限。
提前提醒(待进入公海)
公海配置开启提醒后,客户列表显示"距进入公海 N 天"(提醒窗口 = 到期前 notifyDays 天内),并进入 待办事项 的"待进入公海的客户"。
4.3 锁定与转移
| 操作 | 规则 |
|---|---|
| 锁定/解锁 | 负责人手动操作;锁定数受"锁定客户数限制"约束;已锁定客户不进入公海、不能被领取。系统没有"超期自动锁定"机制 |
| 转移 | 将客户转给其他人(负责人变更);同时校验对方拥有上限;可勾选连带转移联系人/商机/合同 |
4.4 公海业务节奏建议
销售离职/调岗 → 管理员批量"放入公海" → 团队成员从公海领取(受上限约束)
长期未跟进 → 自动掉入公海(配置天数 + 定时任务) → 提醒窗口内销售主动激活