Smart Multi-Channel API
AI-powered Smart API designed to maximize message delivery success by automatically routing messages through multiple channels on autopilot.
We’ve worked with hundreds of clients, and one common question is: How can we achieve 100% message delivery?
Over the years, we’ve optimized every channel using AI-powered real-time dynamic routing and automated retries at Zixflow. While we outperform competitors in delivery rates, achieving 100% delivery isn’t always possible due to limitations in operator infrastructure, which is beyond our control. However, ensuring critical use cases like OTPs or mandatory messages reach users on time is essential, as missed messages can lead to lost business opportunities.
To solve this, we’re introducing the world’s first smart multi-channel API. With this, we can achieve 99.99% delivery for valid numbers.
Here’s how it works:
- The system uses AI to optimize delivery across all channels with priority routing, not just at Zixflow but also at the operator level.
- If a message fails or isn’t delivered in time, it automatically switches to another channel.
- You can pass potential messages to all activated channels in your account, and the system will handle delivery optimization on autopilot.
This approach ensures faster and more reliable message delivery, reducing drop-offs and maximizing business impact.
How does it work?
-
Sequential Delivery: Messages are sent in the defined order (e.g., SMS → WhatsApp → RCS). You can customize it on request.
-
Timeout Handling:
- If a message is delivered within the timeout window, the next steps are skipped.
- If a message fails, it will switch to the next channel (e.g., if the message fails within 2 seconds, it will move to the next channel immediately without waiting for the timeout).
- If we don’t receive a delivery report (success or failure) within the timeout window, it will switch to the next channel.
- Multi-Channel Reliability: Combining SMS, WhatsApp, and RCS ensures high delivery success.
Example Flow
-
Scenario: Send via SMS (timeout 10s), then WhatsApp (timeout 10s), then RCS (timeout 10s).
-
Process:
- SMS message sent first.
- If delivered, stops. If failed or no response, moves to WhatsApp.
- Same logic applies to RCS.
Benefits:
- Higher Delivery Rates: Ensures at least one channel succeeds.
- Efficient Use of Resources: No redundant attempts and reduces wait-time for users.
- Customizable: Control timeouts and delivery order.
- Save Costs: Instead of retrying on the same channel multiple times or sending messages to all channels simultaneously, this approach triggers the second channel only if the first one fails, reducing unnecessary usage and cost.
- Real-time updates: When a switch occurs to the next channel, we can trigger a webhook to your system. This allows you to optimize the user experience. For example, if SMS couldn’t be delivered, we’ll notify you that the message has been sent via the next channel ex. WhatsApp.
Limitation:
- Timeout Limitation: The maximum timeout window for all channels combined is 5 minutes (300 seconds). After this, the entire request is skipped.
- Total Messages: In one request, you can send a minimum of 1 message and a maximum of 5 messages. You can use the same channel multiple times or use different channels as per your need (e.g., SMS → SMS → WhatsApp → RCS → Email).
- Fallback Channels: In some cases, delivery reports may arrive late, even if the message was delivered on time. Despite optimizations, this may result in messages being sent on multiple channels if the report isn’t received within the timeout window.
How to Test: To check if all information or messages are being sent correctly, set the timeout to 0. This will trigger all messages at once, allowing you to verify if they’re received on the test number from all channels. Once confirmed, increase the timeout for the production environment. We recommend adding a 10-second delay between each message for optimal performance.
No Additional Cost: There are no extra charges for this service. You’ll only be charged for the messages sent, based on the pricing of each channel.
Number Verification: For OTP or number verification, use only SMS, WhatsApp, and RCS. Avoid using email, as users may receive the OTP via email, but it won’t verify the phone number.
Request Body Parameters
Root Fields
Field | Type | Description | Required |
---|---|---|---|
messages | array | A list of message objects to be sent. It explained below. | Yes |
webhookurl | string | The URL where message success or failed webhook will be sent with index. | No |
callbackData | string | Metadata or identifiers passed for callbacks. | No |
Message Object
Each message object in the messages
array contains the following fields:
Field | Type | Description | Required |
---|---|---|---|
channel | string | The channel through which the message is sent (e.g., sms /whatsapp /rcs /email ). | Yes |
timeout | number | Timeout value for the message in seconds. it range from 0-300. | Yes |
messageType | string | Type of the message. Empty for email and sms channel. For rcs values can be text , message , video , audio , document , template . For whatsapp value can be template , custom . | Yes |
data | object | The message data containing detailed information with respective channel. | Yes |
Message Data Object
The data
object contains the following api request body payload:
Channel | Message Type | Payload | |
---|---|---|---|
Send SMS | sms | Data Payload | |
Send Whatsapp Template | whatsapp | template | Data Payload |
Send Direct Whatsapp Message | whatsapp | custom | Data Payload |
Send RCS Text Message | rcs | text | Data Payload |
Send RCS Image Message | rcs | image | Data Payload |
Send RCS Video Message | rcs | video | Data Payload |
Send RCS Audio Message | rcs | audio | Data Payload |
Send RCS Document Message | rcs | document | Data Payload |
Send RCS Template Message | rcs | template | Data Payload |
Send Email | email | Data Payload |
If you’re using WhatsApp for authentication or OTP, we recommend using the WhatsApp Authentication template.
Request Body Schema
A list of message
objects to be sent. It explained below.
The URL where message success or failed webhook will be sent with index.
Metadata or identifiers passed for callbacks.
Example Request
Response
Success Response
Status Code: 200 OK
Error Response
Status Code: 400 Bad Request
Notes
- Ensure the
webhookurl
is reachable and can handle incoming responses. - Timeout values should be set based on the use case to prevent excessive delays.