基于WhatsApp打造高效的CRM系统

2024-09-05 13:04

本文主要是介绍基于WhatsApp打造高效的CRM系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景

在 2023 年的统计数据中,WhatsApp 成为了印尼最常用的社交媒体,拥有高达 2.2 亿的用户量,占据印尼互联网人群的 90%之多。

WhatsApp 开发的 WhatsApp Business API 为企业开辟了一条与客户进行大规模、高效且合规沟通的崭新途径。它使得企业能够借助自动化和集成的模式,发送通知、营销信息以及客户支持回复等各类内容。通过使用 WhatsApp Business API,企业能够在引流、服务、促活以及客户管理等诸多方面充分发挥积极作用。

目前,在印尼业务中虽然存在短信、电话、邮箱、推送等多种触达方式,但在成本和触达率方面均存在差异。鉴于 WhatsApp 作为印尼最为常用的社交媒体,业务方面有着强烈的诉求,期望借助 WhatsApp 来触达客户。正因如此,WABA SCRM 系统应运而生,从而解决业务上的痛点。

能力模块

Agent模块

Agent 代表着此系统的用户,即能够使用 INBOX 与客户进行聊天的用户。在该模块当中,能够创建用户、分配角色权限,还能够对用户状态予以修改等。

Team模块

在该模块中,能够创建团队,并且可以对团队人员进行修改等操作。

Contact模块

联系人,多指客户信息,通过外部API对接或者文件导入的方式,给经办分配上不同客户,以实现聊天

Sender模块

企业发送号码,由业务采购手机号码,绑定在企业号上。在INBOX上,经办使用SENDER与客户聊天。该模块可以进行号码分配,包括主号、副号设定。

角色权限模块

该模块支持创建系统角色,并支持对角色进行权限配置

inbox模块

聊天信箱,系统核心能力,用户可以使用INBOX与客户在线聊天

系统架构

scrm系统由backend,ws,backduser,waba四个服务组成。

系统

职责

scrm-back

后台服务,负责聚合业务逻辑,提供后台操作界面及聊天界面等

scrm-ws

长连接服务,使用websocket保持聊天会话连接

scrm-backuser

负责用户登录注册,角色权限配置

scrm-waba

实现系统核心功能,包括聊天、sender分配、联系人管理、案件出入池等

长连接通信

当用户打开聊天界面时,用户端会与后台服务建立一个长连接。多个用户端将会与后台服务的多个 pod 形成 n-n 的连接关系,如下图所示。鉴于此情况,需要对长连接实施有效的管理,以确保客户的消息能够精准无误地推送至用户端。

目前,系统采用了 rabbitmq 的广播模式来解决相关问题。首先,每个 pod 自行维护其与用户端(手机号)的关系。接着,每个 pod 都会在 rabbitmq 中创建队列。当某个 pod 收到回调通知(即有消息到达)后,该 pod 会将指令发送至 rabbitmq 交换机上,随后交换机会向各个队列进行广播通知。各个 pod 收到消息后,会依据收件人的手机号自行检查此连接是否归属于自身。若是,则通过 websocket 将消息推送至用户端;若否,则不进行任何处理。

由于发版或者系统的扩容缩容,会引发 pod 的销毁与创建。因此,需要在 pod 创建时自动新建队列并绑定交换机,同时在 pod 销毁时自动销毁队列并解绑交换机。当前,通过使用注解声明的方式来解决这一问题,具体实现情况如下。基于此种方式,能够实现优雅的扩容缩容

public static final String EXCHANGE_YML_KEY = "${rabbitmq.exchange.forward}";public static final String QUEUE_KEY = "auto-declare-" + APP_NAME + "-#{T(java.util.UUID).randomUUID().toString()}";​@RabbitListener(bindings = @QueueBinding(  value = @Queue(    name = QUEUE_KEY,    durable = "true",    exclusive = "false",    autoDelete = "true",    declare = "true"  ),  exchange = @Exchange(    value = EXCHANGE_YML_KEY,    type = ExchangeTypes.FANOUT,    declare = "false"  )))public void onMessage(Message mqMessage) {  try {    String messageStr = new String(mqMessage.getBody(), StandardCharsets.UTF_8);    log.info("Send message: {} ", messageStr);  } catch (Throwable t) {    log.error("Send message error: ", t);  }}​

未来挑战

虽然 WhatsApp 为企业开放了 WhatsApp Business API ,企业在完成认证后能够获得官方背书。但是,为了有效防止对用户造成过度打扰,WABA 做出了严格限制,规定首次触达用户时必须且只能是模板消息。并且,这些模板内容需要经过 META 的审核管控。只有当用户收到模板消息后主动进行回复,双方之间才能展开自由对话。

正因如此,在 WABA 模板的设计、养号、触达的策略以及使用场景等课题方面,还需要结合具体的实际情况进行全面、深入且细致的考虑。比如,不同行业的特点和用户需求差异明显,模板设计要符合行业规范和用户习惯,巧妙设置引导话术刺激用户主动回复;养号阶段要注重号码质量提升;触达策略要精准把握时机和频率;使用场景也要根据产品或服务的特性来精心规划。

总结

WABA SCRM 系统与 WhatsApp Business API 深度融合,由业务系统精准管控联系用户名单,对用户名单及信息进行过滤及加工,能确保员工与客户之间通过 WhatsApp 进行顺畅、高效且精准的触达,为双方搭建起便捷、有效的沟通桥梁。

这篇关于基于WhatsApp打造高效的CRM系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1139038

相关文章

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

Java docx4j高效处理Word文档的实战指南

《Javadocx4j高效处理Word文档的实战指南》对于需要在Java应用程序中生成、修改或处理Word文档的开发者来说,docx4j是一个强大而专业的选择,下面我们就来看看docx4j的具体使用... 目录引言一、环境准备与基础配置1.1 Maven依赖配置1.2 初始化测试类二、增强版文档操作示例2.

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

在Golang中实现定时任务的几种高效方法

《在Golang中实现定时任务的几种高效方法》本文将详细介绍在Golang中实现定时任务的几种高效方法,包括time包中的Ticker和Timer、第三方库cron的使用,以及基于channel和go... 目录背景介绍目的和范围预期读者文档结构概述术语表核心概念与联系故事引入核心概念解释核心概念之间的关系

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文