To reach users worldwide, enterprises often need to integrate separate APIs for messaging platforms such as WhatsApp and SMS. This leads to high development and maintenance costs. Chat App Message Service is a global messaging engine that solves this problem. It provides a unified API to connect with multiple message channels, including WhatsApp, Viber, SMS, and email. You can send verification codes, notifications, and personalized marketing messages to users worldwide on their preferred communication apps. Developers can bypass the complexity of managing different protocols and compliance requirements. This reduces multi-channel messaging integration time from weeks to just a few hours.
What we offer
Scan the QR code with WhatsApp to try the demo
|
Why choose Chat App Message Service
High deliverability and stability: Unlike traditional SMS, messages are sent over the Internet, bypassing carrier filtering and blocking. This improves delivery and open rates, especially for cross-border or high-frequency messaging.
Two-way interaction: The service supports two-way communication, at no cost to end-users. This allows you to engage with customers in real time, improving customer engagement and satisfaction while collecting valuable behavioral data to inform your business decisions.
Diverse message formats: In addition to text, the service supports rich media formats including images, audio, video, documents, and message templates, applicable to various use cases, including marketing, notifications, and customer service.
Official accounts and brand trust: Sending messages from an officially verified business account makes your brand instantly recognizable. This enhances your brand image and builds trust, reducing the risk of messages being ignored or marked as spam.
How it works
Chat App Message Service is a multi-channel messaging platform. It receives requests through a unified API gateway. A channel adapter then converts each request into the specific protocol format for the target channel, such as WhatsApp or Viber. The platform uses a built-in Message Queue for asynchronous processing and retry-on-failure, ensuring high throughput. A webhook mechanism delivers real-time status callbacks to your business system on message status, including sent, delivered, and read.
Core capabilities
Connect and send
Official BSP status: As an officially recognized Business Solution Provider (BSP) for Meta and Viber, we ensure stable and compliant channel access.
Rich content: Support diverse message types, including text, image, voice, video, files, buttons, and lists.
Message template management: Create, submit for approval, and manage the full lifecycle of message templates across all channels.
Message status tracking: Get real-time updates on message status, including sent, delivered, and read, through webhooks.
Message sending modes: Send messages to individuals or groups with options for instant or scheduled delivery.
Unified API: Provide an industry-standard API to quickly send messages or integrate with your business systems, such as CRM, ERP, and order management systems.
Automated workflow: Orchestrate complex message interaction flows with a visual workflow editor Chat Flow.
Operate and manage
Chat Flow: Orchestrate messaging logic to support automated interactions and high-frequency business processes.
AI assistant building: Use natural language generation components in Chat Flow to build your AI assistant.
User management: Import and group contacts to build a repository of interaction data.
Unified multi-channel management: Centrally manage different channels such as WhatsApp and Viber.
Message status tracking: Use webhooks to get status updates for template approvals and message statuses (sent, delivered, and read), ensuring full transparency and control.
Message sending process
Sending a message with Chat App Message Service follows this process:
Create a channel and connect to your business account.
Use the template manager to design and create a message template. (WhatsApp templates require pre-approval from Meta.)
Call the unified multi-channel API to send a message request.
The API gateway handles identity authentication, request validation, and traffic control.
The channel adapter converts the standardized message request into the specific protocol format for each channel.
The Message Queue processes sending requests asynchronously. This enables traffic shaping, ensures high availability, and includes a built-in retry mechanism.
The service receives and processes status callbacks from each channel, then pushes the final status to your business system as a message receipt through a webhook.
Feature support
Feature | Viber | SMS | Messenger | |||
Text messages | ||||||
Image messages | ||||||
Video messages | ||||||
File messages | ||||||
Button | ||||||
List | ||||||
Message templates | (Requires pre-approval from Meta) | |||||
Bulk messaging | ||||||
Session window | 24 hours | 24 hours | N/A | N/A | 24 hours | 24 hours |
Message receipts |
Going live
Data security
Data storage: Message content is encrypted both in transit and at rest. By default, it is retained for 30 days for troubleshooting. Personal information, such as user phone numbers, is protected in compliance with GDPR, CCPA, and other applicable regulations.
Data residency: Data is stored on dedicated Alibaba Cloud servers.
Opt-in management
Before sending marketing messages, you must obtain explicit opt-in from users. This is especially important for WhatsApp, where users must initiate the conversation or explicitly agree to receive messages through a UI element.
Webhook
To ensure that incoming webhook callbacks are from Alibaba Cloud instead of a malicious third party, you must verify the signature of each request.
import hmac
import hashlib
def verify_webhook_signature(payload: bytes, signature: str, secret: str) -> bool:
"""
Verifies a webhook request signature.
:param payload: The raw body of the webhook request (in bytes).
:param signature: The value of the X-Signature-256 header in the request.
:param secret: Your webhook secret key.
:return: A boolean indicating whether the verification passed.
"""
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)
