在企业客户维护过程中,合理分配客户资源对提升服务效率至关重要。
为实现未分配客户一键分配给指定人员,可借助快捷按钮与触发器达成此目标。该方案还能拓展到一键派单等场景。
1、场景需求介绍
公司拥有11名服务人员,主管每日从其中挑选10人值班,并记录在排班表中。
随着客户量不断增加,为提高工作效率,主管期望系统能依据排班表,自动将待分配客户平均分配给当日值班的人员。
本篇通过解决“依据值班表排班计划查找值班人,一键将客户平均分配给每个值班负责人”,来介绍快捷按钮一键平均分配数据的配置方法。
预期效果如下:
2、表格结构简介
- 客户表:记录客户基本信息,包括值班人员等关键数据,是客户信息的核心存储表。
- 成员表:用于记录团队成员的详细信息,构成团队成员的基础信息库。
- 成员排班表:记录每日的排班计划,明确当天值班人员,为客户分配提供关键依据。
3、需求解决方案
本方案采用 “客户侧编号除以 n 取余数 = 当日值班人员编号” 的规则(n 为当日值班人员总数)。
适用于每天参与排班人员总数≤10 的场景,其中:
- 客户编号从 1 开始逐一自增且无上限;
- 值班人员编号从 1 开始逐一自增,最大为 10 ;
- 通过 “(客户编号 + n)/n” 取余数获取 1~n 的个位数值,与值班人员编号匹配,实现平均分配。
详细配置如下:
3.1 设置快捷按钮启用节点
在【客户表】添加快捷按钮,选择 “针对多条数据的操作”,这样在网格视图中批量选中多条客户数据时,就能触发快捷按钮,满足批量分配客户的操作需求。
3.2 快捷按钮:为当日值班人员编号
3.2.1 查找当日值班人员
在【成员排班表】中依据日期条件查找当日值班人员,对找到的数据进行排序,最早创建的数据排在前。
3.2.2 为找到的【排班表】数据进行编号
- 配置循环:获取前面节点找到的数据,逐条进入循环
- 配置编号:对进入循环的排班表数据编号
利用循环,借助 if 函数仅对未编号的排班数据进行编号。
若同一天按一个通道自增,INCREMENT () 函数中的自增通道部分可省略。
3.3 快捷按钮:为待分配客户编号
3.3.1 查找本次待分配的所有客户数据
查找批量选中的客户数据,可选择对其排序,该节点的目的是让最早创建的先进入循环。
如果不设置该节点,也可直接调取触发数据进入循环,那么最新创建的数据先进入循环。
3.3.2 为找到的【客户表】数据进行编号
- 配置循环:获取前面节点找到的数据,逐条进入循环
- 配置编号:利用循环为选中的客户数据编号
为「当日自增编号」字段赋值时,由于选择的客户数据都是待分配的,因此赋值前编号都是空值,这里直接对字段赋值即可。
- 查询最新的编号:获取刚刚编号的数据
编号完成后通过获取单条数据,查找到刚刚编号的数据,为后续调用手动执行触发器做准备。
以上编号部分就完成了,下面开始配置手动执行触发器部分。
3.4 手动执行触发器:为客户分配值班人
利用循环逐条为客户查找匹配的值班人编号,并依据编号分配值班人员。
3.4.1 配置手动执行触发器
- 设置触发方式、触发条件
在【客户表】中配置手动执行触发器,设置为手动触发找到数据后批量执行。
添加执行参数: “数据 ID”、“客户自增编号”、“日期” 。
筛选规则设定为每次触发仅筛选满足条件且排序在前 100 条的数据进行逐条触发。
与 100 条数据相匹配的功能规则:
- “针对多条数据的操作”的快捷按钮,仅在批量选中数据 ≤100 时才能使用。
- “数组循环”执行一次最多只能循环100次,即最多100条数据进入循环。
1个客户仅需分配1个员工,因此基于以上规则执行一次快捷按钮,最多分配100个客户。
- 设置执行操作
- 在执行操作中,先计算客户编号的余数,再在【成员排班表】中查找当日值班成员数据,使编号个位数与余数相等,将匹配到的成员赋值到客户数据的 「值班人员」字段。
【除数取余参数解读】
① 临时变量中的“客户编号余数”:用于计算出可匹配成员序号的数值。
② 表达式 MOD({执行参数.编号}+N,N) 逻辑如下:
- 当天有几个值班人 N 就是多少;
- 余数范围为 1 ~(N-1)~ 0,例如 N=10:
- (1+10)/ 10、(101+10)/ 10 余数为1
- (9+10)/ 10 、(119+10)/ 10 余数为9
- (10+10)/ 10 、(200+10)/ 10 余数为0
3.4.2 在快捷按钮中调用手动执行触发器
在快捷按钮中通过参数传递,将循环中所需的值给到触发器,实现为每个客户逐一分配值班人,进而达成每个值班人平均分配客户的目的。