大数跨境

CRM公海客户自动分配功能来袭,高效率销售不再是问题!

CRM公海客户自动分配功能来袭,高效率销售不再是问题! 白码
2021-02-01
0

点击蓝字


关注我们

为了让大家更好的使用白码系统,之前已经为大家出了自定义打印功能、扫描枪扫码录入功能、公开页等使用教程。那今天的教程是大家呼声很高的公海客户自动分配功能的实现方法,一起来看看吧~


CRM公海客户自动分配功能的实现

Function Description


实现目标

  1. 市场部添加的公海客户,自动轮巡分配给销售人员。

  2. 可设置销售人员自动分配公海客户的客户数上限。


准备工作

1、在白码低代码开发平台准备销售员数据表,并准备几个销售员数据。

必须字段说明:

  • 自动分配客户上限:数字类型,用于限制自动分配公海客户的客户数。

  • 已分配客户数:数字类型,记录已被自动分配的客户数。

  • 轮序序号:数字类型,连续自增数字,轮巡分配顺序,公海客户将按照此顺序从小到大进行轮巡分配。


2、客户数据表

必须字段说明:

  • 销售归属人:关联类型,关联销售员表,标记客户分配销售。


3、轮巡配置数据表,创建并维持一条数据。

字段说明:

  • 下一轮巡序号:数字类型,标记下次应该分配的销售员,对应销售员表的“轮序序号”字段。

  • 末端序号:数字类型,标记销售员表最大的“轮巡序号”,当轮巡到该序号时,下一次从头开始轮巡。


功能实现

1、新增客户公海数据。


2、获取轮巡配置,因为只有1条配置数据,无需筛选即可获取到配置数据。


3、根据轮巡序号获取销售员

新建获取销售员步骤

根据轮巡序号获取


4、实现轮巡

代码:


向上滑动阅览


async function runProcess($model = model, $plugin = plugin, $params) {

    let customer = $params.customer;//创建的客户

    let config = $params.config;//配置表

    let config_next = parseInt($params.config_next);//配置表-下一轮巡序号

    let config_last = parseInt($params.config_last);//配置表-末端序号

    let endIndex = parseInt($params.config_next);//终止轮巡的序号,标记是否轮巡完所有销售员

 

    //查询所有销售员

    let salerList = await $plugin.data.queryData("6013af3b2f9dc17c88f09ab9");

    //map {index:saler} 可根据轮巡序号获取相应的销售员

    let salerByIndex = {};

    salerList.forEach(s => {

        salerByIndex[s["6013afd92f9dc17c88f09ac8"]] = s;

    });

    //销售员

    let saler = salerByIndex[config_next];

    //开始轮巡

    do {

        max = parseInt(saler["6013af76fe80417c83c0da6b"]);//销售员分配客户上限

        count = parseInt(saler["6013afbecdfeee7c7b37d9bf"]);//销售员已分配的客户数

        //下一轮巡序号,如果当前轮巡序号为末端序号,则重新从序号1开始,否则自增到下一序号

        if (config_next == config_last) {

            config_next = 1;

        } else {

            config_next += 1;

        }

        //该销售员未达到上限

        if (count < max) {

            //将客户分配给销售员

            $plugin.data.updateData("6013b2902f9dc17c88f09aef", customer._id, {

                "6013b2de53eddf7c7c0a4bb7": saler._id,

            });

            //销售员已分配客户数+1

            $plugin.data.updateData("6013af3b2f9dc17c88f09ab9", saler._id, {

                "6013afbecdfeee7c7b37d9bf": parseInt(saler["6013afbecdfeee7c7b37d9bf"]) + 1,

            });

            //更新配置表的下一轮巡序号

            $plugin.data.updateData("6013b493cdfeee7c7b37d9fd", config._id, {

                "6013b4a82f9dc17c88f09b19": config_next

            });

            break;//轮巡结束

        }

        //巡完所有销售员,未找到可分配的销售员,轮巡结束

        if (config_next == endIndex) {

            break;

        }

        //轮巡下一销售员

        saler = salerByIndex[config_next];

    } while (true);

}




实现效果



使用白码系统过程中有任何问题都可以联系客服~

后续也会出更多教程,帮助用户更好使用白码系统~欢迎关注公众号第一时间接受教程信息!

更多详细教程可以点击“阅读原文”前往白码官网的帮助中心和学习视频教程~


往期 · 推荐

跨国进销存解决方案

公开页基本使用教程

跨境医疗服务CRM解决方案

自定义打印功能使用教程

扫描枪快速扫码录入实现教程


白码科技 · BAIMA

扫描二维码添加客服微信

有任何问题都可以询问客服哦~

点击“阅读原文”了解更多白码资讯!

【声明】内容源于网络
0
0
白码
白码无代码 | 低代码开发平台可以帮助开发者和企业技术开发团队增加软件开发速度,降低开发成本,达到降本增效的目的。用户可以通过白码,按照企业所需自行定制ERP,CRM,OA等软件;成为白码开发者,把想法快速变成软件吧。
内容 125
粉丝 0
白码 白码无代码 | 低代码开发平台可以帮助开发者和企业技术开发团队增加软件开发速度,降低开发成本,达到降本增效的目的。用户可以通过白码,按照企业所需自行定制ERP,CRM,OA等软件;成为白码开发者,把想法快速变成软件吧。
总阅读39
粉丝0
内容125