Table of Contents | ||||
---|---|---|---|---|
|
...
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, WhatsApp.
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.
Note |
---|
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
Info |
---|
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 | https://central-api.phonon.io/kairos-apis/outbound/create OR | ||||||
---|---|---|---|---|---|---|---|
Method |
| ||||||
Body | JSON | ||||||
Headers | Content-Type: application/json | ||||||
Auth | None |
Info |
---|
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:
Code Block | ||
---|---|---|
| ||
{ "api-version": "1.0", // Fixed "security-id": "<64 character alphanumeric>", "flow-id": "<8 character alphanumeric>", "calls": [ { "client-identifier": "<identifier, callback parameter>", "start-time": "2021-04-28T03:48:07.111Z<ISO-8601 Format YYYY-MM-DDTHH:MM:SS+05:30", // ISO-8601 Timeformat "contact-numbers": [ "918000XXXXXX", "918100XXXXXX", "<Other Alternate Numbers>" ], "keys": [ { "name": "$flow.key.Name", "value": "Abhinandan" }, { "name": "$flow.key.Language", "value": "English" }, { // Customer Numbers "918100XXXXXX", // Alternate customer number(s) Other flow variables } ] }, { // 2nd Call to be place } ] } |
Sample Payload
Code Block | ||
---|---|---|
| ||
{ "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.NameLeadID", "value": "Abhinandan130586000000165414" }, { "name": "$flow.key.Languagetoken", "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 theStatus colour
...
Blue title In
...
. This is fixed value.production 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 Flow
calls
: 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 is
YYYY-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:Status colour Green title 200 Code Block language json { "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 callrequest.
2. Important Error Response:
Code Block |
---|
{ "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
: Please whitelist your IP in the Whitelist section.Status colour Blue title 401 Checksum Repeated
: You can trigger the same API payload more than once. Please change atStatus colour Yellow title 201
...
least one parameter. (Date-time, client-identifier, etc.)
Invalid Security ID
:Status colour Yellow title 202
...
The security ID is invalid. Please check the
...
endpoint and security ID.
Invalid Flow ID
: Flow ID is invalid. Please check theStatus colour Yellow title 301
...
endpoint and Flow ID.
Failure
: Any Failure scenario.Status colour Red title 500
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
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.