企业在触达全球用户时,通常需要独立对接WhatsApp、SMS 等多个消息平台的API,导致开发和维护成本高昂,Chat App 消息服务是一款全球化消息引擎产品。它提供了统一的API,支持一次性接入WhatsApp、Viber、SMS 和邮件等多个消息通道。可在全球流行的通信渠道上向全球用户推送验证码、通知、个性化营销消息。开发者无需管理复杂的通道协议和资质,可快速实现身份验证、交易通知和客户互动,将多通道消息功能的集成时间从数周缩短至数小时。
Chat App 消息服务速览
为什么选择Chat App 消息服务
高到达率与稳定性:相比传统SMS,Chat App 消息服务基于互联网传输,绕过运营商屏蔽和过滤,消息送达率和打开率更高,尤其适合跨境或高频消息触达。
双向互动能力:支持双向沟通,用户侧免费,企业可以与客户进行实时互动,提升客户参与度与满意度,同时能够收集客户行为数据,为业务决策提供依据。
多样化消息形式:不仅支持文本,还支持图片、语音、视频、文档、模板消息等多种形式,满足营销、通知、客户服务等多场景需求,增强沟通效果。
官方认证与品牌信任:通过使用官方认证账号发送消息,用户易于辨识,提高企业形象与信任度,减少信息被忽略或标记为垃圾信息的风险。
工作原理
Chat App 消息服务是一个多通道消息发送平台,通过统一的 API 网关接收请求,并由通道适配器将请求转换为符合各目标通道(如 WhatsApp、Viber)协议的格式进行发送。平台内置消息队列以实现高吞吐量下的异步处理和失败重试,并通过 Webhook 机制将消息的发送、送达、已读等状态实时回调给业务系统。
核心能力
接入与发送
官方BSP资质:作为Meta和Viber官方认证的商业解决方案提供商(BSP),确保通道的稳定与合规。
内容设计:支持文本、图片、语音、视频、文件、按钮、列表等多种消息类型。
模板消息管理:提供各消息通道模板的在线创建、提交审核与全生命周期管理功能。
消息状态追踪:通过Webhook实时获取消息的发送、送达、已读等状态。
消息发送:支持单发、群发以及即时与定时推送。
多通道统一API:提供行业通用API,既可快速调用消息发送,也能与CRM、ERP、订单等业务系统集成。
流程自动化:通过可视化的流程编辑器(Chat Flow)编排复杂的消息交互流程。
运营与管理
流程编辑器(Chat Flow):可视化编排消息逻辑,支持自动化交互与高频业务流程。
AI 智能客服助理:使用流程编辑器结合自然语言生成组件创建属于自己的AI智能客服助理。
用户管理:支持联系人导入、分组,沉淀互动数据。
多通道统一管理:集中管理WhatsApp、Viber等不同渠道。
消息状态追踪:支持Webhook获取模板审核、消息发送、送达、阅读等状态,保障透明可控。
流程架构
使用Chat App 消息服务发送一条Chat App消息需经过如下流程:
创建通道并连接商业账号信息。
模板管理器进行创建、设计保存模板(WhatsApp模板需Meta预审核)。
调用多通道统一API发起消息请求。
API网关处理身份认证、请求校验和流量控制。
通道适配器将标准化的消息请求转换为各通道特定的协议格式。
消息队列用于异步处理发送请求,实现流量削峰和高可用性,并内置失败重试机制。
消息状态回执接收并处理来自各通道的状态回调,通过 Webhook 将最终状态分发给用户。
通道能力矩阵
功能特性 | Viber | SMS | Messenger | |||
文本消息 | ||||||
图片消息 | ||||||
视频消息 | ||||||
文件消息 | ||||||
按钮消息 | ||||||
列表消息 | ||||||
模板消息 | (需Meta预审核) | |||||
群发限制 | ||||||
会话窗口 | 24小时 | 24小时 | 不适用 | 不适用 | 24小时 | 24小时 |
送达回执 |
应用于生产环境
数据安全
数据存储:消息内容在传输和存储时均进行加密,默认保留30天用于排障。用户手机号等个人信息将依据 GDPR/CCPA 等法规要求进行保护。
数据跨境:数据将存储在阿里云专属服务器站点。
用户同意(Opt-in)管理
在发送营销或推广类消息前,必须获取用户的明确同意(Opt-in)。尤其对于WhatsApp,用户必须主动发起对话或通过界面操作明确同意接收消息。
Webhook
为确保收到的Webhook回调来自阿里云而非第三方伪造,必须对请求进行签名验证。
import hmac
import hashlib
def verify_webhook_signature(payload: bytes, signature: str, secret: str) -> bool:
"""
验证 Webhook 请求签名
:param payload: Webhook 请求的原始 body (bytes)
:param signature: 请求头中的 X-Signature-256 值
:param secret: 你的 Webhook 密钥
:return: 验证是否通过
"""
if not signature or not signature.startswith('sha256='):
return False
expected_hash = hmac.new(
secret.encode('utf-8'),
payload,
hashlib.sha256
).hexdigest()
expected_signature = f"sha256={expected_hash}"
return hmac.compare_digest(expected_signature, signature)