Phonon | Outbound Multicast API Documentation
Background
The Central Outbound Multicast API allows you to send outbound communications to your customers on single or multiple channels including Calls, SMS and Email.
The API will log a request in one of the workflows created in your admin account. The request will be picked subsequently and executed.
Pre Requisites
IP Whitelisting: IP must be whitelisted in the admin account.
Checksum Check: Two request must have at-least one byte change in it. If two requests are same, you’ll get Checksum Repeated error.
Outbound Create Request API
Use this API to initiate an Outbound Flow request. In your Outbound Multicast Flow, you can configure your flow containing Call, SMS, Email or any combination of the same!
Before sending a request, make sure to whitelist the IP through which you send the API request in the whitelist section.
As of Jan, 2023, Bulk API Request end-point provides a different response. Please go through the notification for the same. It’s currently getting worked upon, and the document will get updated accordingly. Please refer to this notification for further details.
For Bulk Requests - Where you need high through-put or uploading a large data.
API End Point: https://central-api.phonon.io/kairos-apis/outbound/create
Rate Limit: 30k per minute
Note : There is a 256KB limit on the API request body. In case a request is received which has a message body of size greater than 256 KB, the system will not process such a request.
Request Parameters:
URL | |
---|---|
Method | POST |
Body | JSON |
Headers | Content-Type: application/json |
Auth | None |
contact-numbers is a mandatory field, and hence, if you’re sending just an E-mail, configure a dummy number as the value.
Payload Schema:
{
"api-version": "1.0", // Fixed
"security-id": "<64 character alphanumeric>",
"flow-id": "<8 character alphanumeric>",
"calls": [
{
"client-identifier": "<identifier, callback parameter>",
"start-time": "<ISO-8601 Format YYYY-MM-DDTHH:MM:SS+05:30",
"contact-numbers": [
"918000XXXXXX",
"918100XXXXXX",
"<Other Alternate Numbers>"
],
"keys": [
{
"name": "$flow.key.Name",
"value": "Abhinandan"
},
{
"name": "$flow.key.Language",
"value": "English"
},
{
// Other flow variables
}
]
},
{
// 2nd Call to be place
}
]
}
Â
Sample Payload
{
"api-version": "1.0",
"security-id": "a0095e7ac42205cb1388d7ac0d2db4afad1b5b2304907a27a6154bf93253088c",
"flow-id": "wruHzoCK",
"calls": [
{
"client-identifier": "AcmeBankCampaign_001",
"start-time": "2021-06-29T09:42:00+05:30",
"contact-numbers": [
"916262772728"
],
"keys": [
{
"name": "$flow.key.LeadID",
"value": "130586000000165414"
},
{
"name": "$flow.key.token",
"value": "English"
}
]
}
]
}
Â
Request Parameters Explanation:
Parameter | Type | Var Type | Description | Sample Value |
---|---|---|---|---|
| Mandatory | String | Use | 1.0 |
| Mandatory | String | 64 character alphanumeric. Get the security ID from the ‘Edit Flow’ page of any Outbound Flow |
|
| Mandatory | String | Decides which Workflow the request needs to be logged. 8 character alphanumeric Flow ID. Get the Flow ID from the ‘Edit Flow’ page of any Outbound Flow |
|
| Mandatory | Array | Array of call object. Each object will add one request. Maximum 10,000 records in one API call. | [{…},{…}] |
| Mandatory | Any | Callback variable. You’ll get the same value back in response. | Any |
| Optional | Datetime | ISO-8601 Timestamp. The format is If you omit it, the request will be executed immediately when picked up. |
|
| Mandatory | Array | Array of comma separated contact number. Must have at least one. Contact number can be string or number. Mobile numbers of the customer. You can provide alternate numbers of a customer and calls will be initiated to each number until one is connected in one attempt. Prefer to keep mobile number as E.164 format. If 10 digits are provided, it defaults to India. | +916262772728 916262772728 6262772728 |
| Mandatory | Array | Array of Flow Variables. There’s no limit on how many flow variables can be provided. | [] |
| Optional | String | Name of flow variable. |
|
| Optional | String | Value of the above flow variable. |
|
As text:
api-version
: Use1.0
to use the In production. This is fixed value.security-id
: Get the security ID from the ‘Edit Flow’ page of any Outbound Flowflow-id
: Get the 8 characters' alphanumeric Flow ID from the ‘Edit Flow’ page of any Outbound Flowcalls
: Array. Each element in the array represents one request. You can have up to 500 requests in one request.client-identifier
: Callback variable to uniquely represent this request.start-time
: ISO-8601 Timestamp. The format isYYYY-MM-DDTHH:MM:SS+05:30
. The date cannot be from the past. If the time is of past (and the date is today) the flow will be initiated immediately.contact-numbers
: Array. Mobile numbers of the customer. You can provide alternate numbers of a customer and calls will be initiated to each number until one is connected in one attempt.keys
: Array of Flow Variables. There’s no limit on how many flow variables can be provided."name": "$flow.key.<variable>"
: Name of flow variable."value": "Abhinandan"
: Value of the above flow variable.
Response:
Successful Response:
Status Code: 200{ "api-response-code": 200, "api-response-message": "Success", "request-id": "c46e46f4-dc58-4839-9483-f7dd9aac28a0", "call-details": [ { "client-identifier": "2021-04-28T03:48:07.110Z", "phonon-uuid": "501c78ee-8d06-498e-8952-fce3495f326b" } ] }
a. Request ID: Unique Identifier for the whole request.
b. Phonon UUID: Unique Identifier for each request.
2. Important Error Response:
{
"api-response-code": 500/401/201/202/301,
"api-response-message": "Failure/IP Not Whitelisted/Checksum Repeated/Invalid Security ID/Invalid Flow ID",
}
IP Not Whitelisted
401: Please whitelist your IP in the Whitelist section.Checksum Repeated
201: You can trigger the same API payload more than once. Please change at least one parameter. (Date-time, client-identifier, etc.)Invalid Security ID
202: The security ID is invalid. Please check the endpoint and security ID.Invalid Flow ID
301: Flow ID is invalid. Please check the endpoint and Flow ID.Failure
500: Any Failure scenario.
3. All Error Codes:
Status Code | Status Message | Status Codename | |
---|---|---|---|
1 | 400 | Invalid Format | INVALID_FORMAT |
2 | 201 | Checksum Repeated | CHECKSUM_REPEATED |
3 | 302 | Empty Call List | EMPTY_CALL_LIST |
4 | 500 | Failure | FAILURE |
5 | 301 | Invalid Flow ID | INVALID_FLOW_ID |
6 | 401 | IP Not Whitelisted | IP_NOT_WHITELISTED |
7 | 402 | Phone Not Whitelisted | PHONE_NOT_WHITELISTED |
8 | 202 | Message Accepted | SUCCESS |
9 | 200 | Success | SUCCESS |
10 | 203 | API Version not Supported | INVALID_API_VERSION |
11 | 204 | Invalid SMS Gateway | INVALID_GATEWAY_ID |
12 | 205 | Invalid Contact Number | INVALID_CONTACT_NUMBER |
13 | 206 | Failure from Gateway | FAILURE_FROM_GATEWAY |
14 | 207 | DID Not Mapped | DID_NOT_MAPPED |
15 | 208 | No Mask Available | NO_MASK_AVAILABLE |
16 | 209 | Partial Success | PARTIAL_SUCCESS |
17 | 210 | Invalid Mandatory Parameters | INVALID_MANDATORY_PARAMETERS |
18 | 303 | Max Data List Size Exceeded | MAX_DATA_LIST_SIZE_EXCEEDED |
19 | 211 | Validity Expired | VALIDITY_EXPIRED |
20 | 212 | Insufficient Balance | INSUFFICIENT_BALANCE |
21 | 304 | Invalid Flow Version | INVALID_FLOW_VERSION |
22 | 213 | No Data Available | NO_DATA_AVAILABLE |
Â
FAQs:
How to get the status of the request?
You can check the request for the API by:
Using the Pull API - Using Phonon UUID | API Documentation using Phonon UUID or Request ID to pull the status of the request.
Using End Call Webhook Push - which can push various details after every workflow (call / sms / email) execution to an external webhook end point.
Using EOD or On Demand Reports.
Using Summary Dashboards.
Â
This document has been developed by Phonon.io for the sole and exclusive use of the customer / prospective customer with whom this document is being shared. Further, this document has been provided by Phonon.io to the recipient in good faith and based on request from the recipient for the same. This document is a confidential document and contains confidential product technology, workflow and commercial details that are for the sole usage of the intended recipients of this document. Recipients are advised not to share this document with any third party that is not the intended recipient of this document and neither to bring this document in full or parts into the public domain. Any unauthorized access may be brought to Phonon.io’s notice immediately. Phonon.io is free to take any legal action it deems necessary against any person or entity that violates this confidentiality agreement. Phonon.io is bound and governed by the rules of the state of Gujarat in India. In case you are not in agreement with the terms set in this clause or are not an intended recipient of this document, please destroy the document and intimate us of the same at info@phonon.io.