Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel7

...

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

  1. IP Whitelisting: IP must be whitelisted in the admin account.

  2. 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 your the IP through which you are sending 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.

  1. For Bulk Requests - Where you need high through-put or uploading a large data.

    1. API End Point: https://central-api.phonon.io/kairos-apis/outbound/create

    2. Rate Limit: 30k per minute

  2. For Real Time Requests - Low through-put but instant connect and faster response.

    1. API End Point: https://central.phonon.io/kairos-apis/outbound/create

    2. 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

https://central.phonon.io/kairos-apis/outbound/create

Method

Status
colourGreen
titlePOST

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
languagejson
{
	"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
languagejson
{
	"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

api-version

...

Mandatory

String

Use 1.0 to use the

Status
colourBlue
titleIn production
. This is fixed value.

1.0

security-id

Mandatory

String

64 character alphanumeric. Get the security ID from the ‘Edit Flow’ page of any Outbound Flow

a0095e7ac42205cb1388d7ac0d2db4afad1b5b2304907a27a6154bf93253088c

flow-id

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

wruHzoCK

calls

Mandatory

Array

Array of call object. Each object will add one request. Maximum 10,000 records in one API call.

[{…},{…}]

calls[0].client-identifier

Mandatory

Any

Callback variable. You’ll get the same value back in response.

Any

calls[0].start-time

Optional

Datetime

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.

If you omit it, the request will be executed immediately when picked up.

2021-06-29T09:42:00+05:30

...

calls[0].contact-numbers

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

calls[0].keys

Mandatory

Array

Array of Flow Variables. There’s no limit on how many flow variables can be provided.

[]

keys[0].name

Optional

String

Name of flow variable.

"$flow.key.variable"

keys[0].value

Optional

String

Value of the above flow variable.

"Abhinandan"

As text:

  1. api-version: Use 1.0 to use the

    Status
    colour

...

  1. Blue
    titleIn

...

  1. production
    . This is fixed value.

  2. security-id: Get the security ID from the ‘Edit Flow’ page of any Outbound Flow

  3. flow-id: Get the 8

...

  1. characters' alphanumeric Flow ID from the ‘Edit Flow’ page of any Outbound Flow

  2. calls: Array. Each element in the array represents one

...

  1. request. You can have up

...

  1. to 500

...

  1. requests in one request.

    1. client-identifier: Callback variable to uniquely represent this request.

    2. start-time: ISO-8601 Timestamp.

...

    1. 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.

    2. contact-numbers: Array. Mobile numbers of the customer. You can provide alternate numbers of a customer and

...

    1. calls will be initiated to each number until one is connected in one attempt.

    2. keys: Array of Flow Variables. There’s no limit on how many flow variables can be provided.

      1. "name": "$flow.key.<variable>": Name of flow variable.

      2. "value": "Abhinandan": Value of the above flow variable.

...

Response:

  1. Successful Response:
    Status Code:

    Status
    colourGreen
    title200

    Code Block
    languagejson
    {
      "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",
}
  1. IP Not Whitelisted

    Status
    colourBlue
    title401
    : Please whitelist your IP in the Whitelist section.

  2. Checksum Repeated

    Status
    colourYellow
    title201
    : You can trigger the same API payload more than once. Please change at

...

  1. least one parameter. (Date-time, client-identifier, etc.)

  2. Invalid Security ID

    Status
    colourYellow
    title202
    :

...

  1. The security ID is invalid. Please check the

...

  1. endpoint and security ID.

  2. Invalid Flow ID

    Status
    colourYellow
    title301
    : Flow ID is invalid. Please check the

...

  1. endpoint and Flow ID.

  2. Failure

    Status
    colourRed
    title500
    : Any Failure scenario.

3. All Error Codes:

Status Code

Status Message

Status

NameINVALID_SECURITY_ID

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

Other Docs:

...

Todo: https://docs.google.com/document/d/1A5UciLQYB6hS7VwKjazU204IxMwlfD_KwSnexlkaa8Y/edit#

...

Tech API Docs: /wiki/spaces/CB/pages/201752979

...

FAQs:

How to get the status of the request?

You can check the request for the API by:

  1. Using the Pull API - Using Phonon UUID | API Documentation using Phonon UUID or Request ID to pull the status of the request.

  2. Using End Call Webhook Push - which can push various details after every workflow (call / sms / email) execution to an external webhook end point.

  3. Using EOD or On Demand Reports.

  4. Using Summary Dashboards.