- 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.
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.
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 | Important: Pass the webhook URL if you want to display a message to the user when a channel switch happens. eg. If a message switches from SMS to RCS, a webhook will be triggered. You can ignore if you don’t want it. This is not a message delivery webhook. That you need to pass it only in the respective message body. The report URL is separate and used for reporting purposes like delivered. | No |
callbackData | string | Metadata or identifiers passed for callbacks. | No |
Message Object
Each message object in themessages
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
Thedata
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 webhook URL is accessible and capable of handling incoming responses. Our system makes only one attempt, and if your webhook URL is down, the request response cannot be recovered.
- Timeout values should be set based on the use case to prevent excessive delays.