基于WhatsApp打造高效的CRM系统

news2024/11/15 9:14:54

背景

在 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 进行顺畅、高效且精准的触达,为双方搭建起便捷、有效的沟通桥梁。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2110212.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

美联储降息在即:加密市场风云再起,机遇与挑战并存

随着全球金融市场日益与加密货币市场的波动紧密相连,美联储的货币政策调整正成为加密市场的重要风向标。今年以来,比特币等主流加密货币反复跟随全球市场震荡,宏观经济指标对加密市场的影响愈加显著。尤其是美国联邦基金利率的变动&#xff0…

【QA】软件产品在确定使用期限时应关注哪些问题?

版权说明:本文来源【国家药品监督管理局】,如果您认为我们的文中描述与事实不符或有侵权行为,请及时联系我们。感谢您的关注。

2025届必备:如何打造Java SpringBoot大型超市数据处理系统,提升管理效率,最新攻略!

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

生信软件33 - Wgsim生成双端(PE) fastq模拟数据

1. Wgsim(Whole genome simulation)简介 wgsim是可用于高通量数据模拟的软件,可以模拟出illumina测序数据,并且可以自由调整测序reads的读长,插入片段大小以及错误率等, 是开发BWA等大牛Li heng编写的基因…

Windows bat脚本学习九(srec_cat)

一、简介 srec_cat是一个在嵌入式开发中,使用非常频繁的软件,这里做个常用功能的介绍。 二、常用参数 文件类型 在使用srec_cat指令时,在输入文件和输出文件时,要指明文件的类型,如: input.hex -intel …

木舟0基础学习Java的第二十六天(JavaWeb)

设置响应头 resp.setHeader("key","nihao");//推荐使用英文 中文会乱码 案例:模拟登录 jdbc.properties driverClasscom.mysql.jdbc.Driver urljdbc:mysql://localhost:3306/test?verifyServerCertificatefalse&useSSLfalse nameroot p…

Qt:玩转QPainter后转之太极图(步骤详细、包含源码)

前言 简单了解了QPainter之后还是要做两个小例子练一练,不实际去做,只看看函数是没啥太大提升的,这里就简单画一个太极图。 正文 我们都知道太极分为阴阳鱼两部分,阴鱼(黑色)有个白色鱼眼,阳鱼(白色)有个黑色鱼眼&am…

Notes,无代码应用开发王者归来!

大家好,才是真的好。 连续一个星期都在讲HCL Notes Domino 14.5 EAP1,大家是不是已经感到疲惫了?和大家一样,我并没有。 因此,看了一下9月4号晚上的HCL Notes Domino 14.5 EAP1在线广播回顾,发现了几个大…

模拟RabbitMQ实现消息队列【项目】

文章目录 1. 项目介绍什么是RabbitMQ? 2. 开发环境3. 技术选型3.1ProtoBuf使用介绍:3.2 Muduo库3.3 SQLite3什么是SQLIte?为什么要用SQLite? 3.4 Gtest什么是Gtest 4. 需求分析4.1 核心概念4.2 核心API4.3 交换机类型4.4 持久化4.…

UVa1389/LA3709 Hard Life

UVa1389/LA3709 Hard Life 题目链接题意输入格式输出格式 分析AC 代码 题目链接 本题是2006年icpc欧洲区域赛东北欧赛区的H题 题意 约翰是一家公司的CEO。公司的股东决定让他的儿子斯科特成为公司的经理。约翰十分担心,儿子会因为在经理岗位上表现优异而威胁到他CE…

IPv4地址学习

今天学习了IPv4,做下学习笔记: 什么是IPv4? IPv4地址是网络层地址,用于标识网络中的每个节点。 什么是子网?什么是主类子网划分? 我们将IP地址划分为网络位和主机位 一个地址为192.168.1.2/24&#xff…

【HTML】置换元素(替换元素)

● 它的内容不是由元素的标签内的内容决定的,而是由元素的属性决定的 ● 可以通过CSS设置宽度和高度。 常见的置换元素主要包括以下几种: <img> 元素:用于嵌入图像,通过 src 属性指定图像的路径。例如:<img src="example.jpg" alt="示例图片&quo…

场景感知技术带您重塑未来生活的新篇章

在科技日新月异的今天&#xff0c;场景感知技术正以前所未有的速度渗透到我们生活的方方面面&#xff0c;成为连接物理世界与数字世界的桥梁&#xff0c;重塑着人类的认知方式与生活体验。这项技术通过综合运用传感器、大数据分析、人工智能等前沿科技&#xff0c;实现对周围环…

C++多态 学习笔记(上)

本文涉及的指针都是 4bytes 。 如果要其他平台下&#xff0c;部分代码需要改动。比如&#xff1a;如果是 x64 程序&#xff0c;则需要考虑指针是 8bytes 问题 等等。 什么是多态&#xff1f; 举个例子&#xff1a;比如 买票这个行为 &#xff0c;当 普通人 买票时&#xff0c;…

短剧APP系统搭建,短剧市场的发展机遇

短剧作为近几年内发展快速的行业&#xff0c;一直深受大众的欢迎&#xff0c;各种让观众上头的短剧层出不穷&#xff0c;深深吸引着大众。短剧的巨大发展前景也吸引了大量资本涌入市场&#xff0c;目前&#xff0c;短剧入局者也都获得了不菲的经济收益&#xff01; 随着短剧行…

C++下标+【】、迭代器、范围for、迭代器对于其他容器都是通用的、迭代器可以更好的跟算法配合、rbegin和rend函数、const修饰的迭代器等的介绍

文章目录 前言一、 下标 【】二、 迭代器1.begin2. end3. 使用迭代器遍历string类对象 三、范围for(语法糖)五、迭代器对于其他容器都是通用的六、迭代器可以更好地跟算法配合七、 rbegin 和 rend函数八、 const 修饰的迭代器总结 前言 C下标【】、迭代器、范围for、迭代器对…

JavaEE---Spring MVC(5)

MVC学习小案例3 留言板案例 后端代码 测试 点击刷新的时候页面的这些记录仍在 一个小tips 我们在日常中写的时候会经常写到get和set方法,这会使整个代码看起来非常多不好看,这里我们引入一个新的依赖解决这个问题 引入LomBok依赖 那要是个别情况下我们不想获取他的ge…

高集成度双通道差分式电容型传感芯片-MC11

工采电子代理的MC11S、MC11T是一款高集成度双通道电容型传感芯片&#xff0c;芯片直接与被测物附近的差分电容极板相连&#xff0c;通过谐振激励并解算测量微小电容的变化。激励频率在0.1~20MHz范围内可配置&#xff0c;其频率测量输出为16bit数字信号&#xff0c;对应的电容感…

Ventoy启动盘制作

然后直接将系统的ISO镜像直接拷贝进去&#xff0c;就能直接使用

69页PPT全面预算管理体系的框架与落地

一、明确企业战略目标企业战略目标是预算指标体系确立的根本出发点。它为预算指标的设定提供了方向和指导。 深入分析企业长期发展规划 企业需要对自身的长期发展规划进行全面、深入的分析。这包括对市场趋势、行业竞争态势、技术发展方向等外部环境因素的研究&#xff0c;以…