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
For Real Time Requests - Low through-put but instant connect and faster response.
API End Point: https://central.phonon.io/kairos-apis/outbound/create
Rate Limit: 500 per minute
Request Parameters:
URL | https://central-api.phonon.io/kairos-apis/outbound/create OR |
---|---|
Method | POST |
Body | JSON |
Headers | Content-Type: application/json |
Auth | None |
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 call. You can have up to 500 calls 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 call.
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 | Invalid Security ID | INVALID_SECURITY_ID |
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.
Add Comment