当电商客服遇到有疑问和待成交的客户时候,会把客户联系信息发到售前群里面,让售前去跟进和促单达成。为了提高售前的转化率,需要不断监控售前群里客户信息,以此实现和监督售前客户的二次跟进和转化率的进一步提高。在这个环节中,监控群消息是一个重复持续,而且逻辑固定的动作,比较适合使用RPA机器人来处理。


创建一个钉钉企业应用机器人监测用户有没有人艾特它,如果有的话就记录下来,原理
保姆式教学——通过高级任务计划创建听话的钉钉机器人-经验分享-影刀RPA开发者社区

外部群,目前钉钉是没有办法加入企业机器人的,不过可以借助于自动化小助手,原理
111、【钉钉-自动化小助手】配置过程接入影刀AP知识库 · 语雀

对于普通群,只能用群里的自定义机器人,但是自定义机器人目前无法获取艾特他的消息,所以只能通过影刀模拟人进入群并不断监测钉钉的窗口变化来爬取群消息并且判断。
1、提前准备:


2、流程设计
主要分为三个模块:1、搜索入群;2、监控群消息;3、处理并记录群消息
其中第2步和第3步是重复进行的。其中第3步不占用桌面和鼠标资源,只是逻辑上的处理,所以也可以通过使用【并发调用子流程】指令同时进行,但是需要处理好数据同时写入和读取的问题。
因此这里就有两种流程设计-【异步执行】和【并发执行】
【异步执行】
特点是不需要额外的表格,遇到一个数据处理一个,但是处理数据和记录数据需要时间,如果群内每秒钟发送消息快,比如同时发送3-6消息以上比较多会有遗漏数据的风险。如果是在线表格,比如钉钉表格和飞书表格,这里可能会因为网络问题导致写入数据和读取数据时间过长。

【并发执行】
并发执行的特点就是一个子流程只用来记录输入,另外一个流程只需要读取数据。这样就可以尽量让所有的聊天数据写入到表格中,另外一个流程慢慢处理就好,不需要考虑处理数据的时间过程。但是这里需要处理记录信息表里面的数据同时读写的问题,如果是本地的相同表格,两个子流程对于统一个Excel数据表格文件同读和写会出现权限问题。这里也可以通过写到在线表格中避免,但是要不断读取在线表格,需要消耗大量API调用次数,对于在线的钉钉表格来说,API调用次数是有限制的,超出可能需要付费。有更好方法的小伙伴可以告诉我。

3、程序实施
【进入钉钉群聊】
这里有两种方法--通过点击和捕获元素实现 和 快捷键实现。
这里主要是捕获输入框这个元素,输入框这个元素在全屏的时候直接捕获是捕获不到的只有在非全屏的情况下会捕获到。
(具体原因不详,求官方解答)
只要捕获到,这个元素在全屏和非全屏的情况下都能够校验和点击成功。

可以使用【键盘输入】指令对于钉钉窗口输入Ctrl+Shift+F快捷键打开搜索窗口,但是这里需要注意一定要先把输入法切换为英文状态!不然会切换为繁体字,在中文状态下这个快捷键是和微软输入法的切换繁体输入的快捷键冲突了。切换中英文状态用【设置输入法】指令。

【监控群消息并抓取】
因为钉钉消息加载的限制,我们不能使用相似元素列表获取到所有的钉钉消息,因此这一部分逻辑是每次都获取最新的3条消息,并且读取已经记录的数据来判断这3条消息是否全部是旧的数据,如果不是则把新的数据写入到表格中。这里有很多方法都可以实现,条条大路通罗马。
【处理并记录数据】
钉钉聊天的数据有很多,不一定每一条都是有效聊天记录,这里就涉及到对于数据的判断,如何判断那一条是我需要的数据呢?使用关键词!这里就需要和业务组的小伙伴沟通清楚,在需要监控的消息中加入关键词,比如“薇推”等一些不常用的关键词。
有了关键词以后,我们还要从有效聊天记录中提取到关键信息。那么就需要和业务组的小伙伴规定简单的消息格式。比如 薇推 旺旺ID 联系方式 产品型号 地区。
这样我们就能够很好的从格式中提取到关键信息,当然之后也需要进行容错,比如业务小伙伴不一定每次都能知道地区,可能会消息中没有地区信息,那么这里就要设置容错。
对于目前这个程序来说,需要一个实体机24小时运行不断监控数据,实体机比较占用空间,是否有更好的替代方案,理论上当然可以通过云服务器和电脑来实现,目前我去评估合适配置的服务器的价格需要0.8元每小时,是否有更优的方案。除此之外,还可以使用win虚拟机来实现。
目前也试过使用影刀自带的虚拟桌面,可是经过测试,虚拟桌面和本地桌面上都只能开一个钉钉,在这个条件下是否可以双开钉钉来运行。