Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

Activate Listener for Outbound Flows

In order to trigger and run any outbound flow first you need to activate the listener for that flow. Activating listener means activating the service of outbound calls on the outbound flow. To activate the listener, you need to follow below steps -

  1. Create any outbound flow

  2. Attach the DIDs to that flow

  3. Drop a mail on help@phonon.io regarding the same with the following details

    1. Client ID/ Account ID

    2. Flow ID

    3. All the DID numbers attached

How to trigger Outbound Flows ?

Triggering outbound flow means uploading customer’s details to broadcast or run the outbound campaign (like customer number, startime, flow variables). That is making calls to those customers at mentioned starttime. The outbound flows can be trigged in three ways -

1. Webservice End Point

→ The API Request (with method as post) should be send to mentioned webservice end point in the flow. The webservice endpoint for

  1. Outbound Multicast flow is “https://central.phonon.in/kairos-apis/outbound/create

  2. Outbound Dialer flow is “https://central.phonon.in/kairos-apis/outbounddialer/create

→ API Request Body :

{
	"api-version" : "1.0",
  	"security-id" : "your security ID",
    "flow-id" : "your flow ID",
    "calls" : [{
        "client-identifier" : "Call identifier",
        "start-time" : "start date and time"
		"contact-numbers": ["Contact no to call"],
		"keys" : [
          {"name" : "$flow.key.<Flow Variable>",
          "value" : "value for flow variable"},
          {"name" : "$flow.key.<Flow Variable>",
          "value" : "value for flow variable"}
        ]
    }]
}

→ You can get security ID and flow ID from the flow’s configurator tab. Example shown below

Note - Before sending request, make sure to whitelist your IP through which you are sending API request in the whitelist section.

2. Email Upload

  • You can find unique email ID for each outbound flows. You can send email with attachment to that email ID.

  • Upon file being loaded, the user will receive an auto-response message, that the upload was successful or not.

  • Call List File Instructions

    If you're uploading the call list using a file, please keep in mind the following

    1. Support file formats are .csv and .zip

    2. You can upload a .csv file of maximum 5MB

    3. Download the template file from the interface.

    4. telX:Put the customer number with country code in tel1 header, alternative numbers can be added as tel2,tel3, etc. up to tel10.

    5. $flow.key.variable:You can upload value of any flow variable by putting the flow variable name as the header and value in the respective cell.

    6. starttime:You can input the starttime of each record in the starttime header in ISO 8601 format.

    7. Common starttime:If the starttime is common for all the records, you can input the starttime in the file name as "upload_<starttime in ddMMyyyyHHmmss format>.csv' Example: upload_08022020211200.csv

  • You can find email ID for email upload in outbound flow’s configurator tab. Example shown below.

3. Direct Upload through Interface

You can upload the .csv or .zip file directly from the interface by selecting a file or by drag and drop method. To know more about direct upload, click here.

If you are triggering the flow for the first time or have updated any DIDs attached with the flow then make sure to activate the listener before triggering the outbound flow.

Supported Languages on central

Phonon Central supports a wide range of languages so that you can communicate with your multilingual customers.

The languages supported by Google for different technologies are -

  1. https://cloud.google.com/text-to-speech/docs/voices

  2. https://cloud.google.com/speech-to-text/docs/languages

  3. https://cloud.google.com/dialogflow/docs/reference/language

The languages supported in central for different functionalities are as follows -

1. Text To Speech

Text to speech is the technology which converts you plain or SSML text into a speech. We have integrated with google for this and we support all the languages (almost) supported by google. The list of languages supported for text to speech are as follows :

Sr. No

Language

Country

1

Arabic

2

Czech

Czech Republic

3

Danish

Denmark

4

Dutch

Netherlands

5

English

Australia

6

English

India

7

English

UK

8

English

US

9

Filipino

Philippines

10

Finnish

Finland

11

French

Canada

12

German

Germany

13

Greek

Greece

14

Hindi

India

15

Hungarian

Hungry

16

Indonesian

Indonesia

17

Italian

Italy

18

Japanese

Japan

2. Speech To Text

Speech To Text is the technology that converts any speech (audio file) into plain text. You can use this functionality to take voice inputs from customers and can further use it to process it. We also support India’s regional languages so irrespective of your customer, their speech will be converted to text. The languages supported for speech to text are as follows :

Sr. No

Language

Country

1

English

United States

2

English

India

3

Hindi

India

4

Gujarati

India

5

Marathi

India

6

Bengali

India

7

Telugu

India

8

Tamil

India

9

Urdu

India

10

Kannada

India

11

Malayalam

India

12

Chinese

China

13

Arabic

Oman

14

Portuguese

Portugal

15

Russian

Russia

16

Japanese

Japan

17

French

France

18

German

Germany

19

Italian

Italy

20

Dutch

Netherlands

3. DialogFlow

DialogFlow can be used to process the voice input, to fetch intents, their responses, entities etc. The languages supported in DialogFlow are as follows -

Sr No.

Language

Code

1

English

en

2

Hindi

hi

3

Danish

da

4

German

de

5

Spanish

es

6

French

fr

7

Indonesian

id

8

Italian

it

9

Japanese

ja

10

Korean (South Korea)

ko

11

Dutch

nl

12

Norwegian

no

13

Polish

pl

14

Portuguese (European)

pt

15

Portuguese (Brazilian)

pt-br

16

Russian

ru

17

Swedish

sv

18

Thai

th

19

Turkish

tr

20

Ukrainian

uk

21

Chinese (Simplified)

zh-cn

22

Chinese (Hong Kong)

zh-hk

23

Chinese (Traditional)

zh-tw

System Variables

System Variables are the variables defined by default by the system in which the real time data of the call or flow will get saved. These system variables can be used in the flows as and when required. The value of these variables will be different for each call (if the variable category is ‘call’).

The system variables defined in Central platform are as follows -

Sr.

Variable

Variable Description

Variable Category

Variable Type

1

$sys.datetime

This variable will give current system date and time.

SYSTEM

datetime

2

$sys.date

This variable will give current system date.

SYSTEM

date

3

$call.cdr

This variable will give cdrID of call.

CALL

string

4

$call.start

This variable will give the date and time of call when it was started.

CALL

datetime

5

$call.end

This variable will give the date and time of call when it was ended.

CALL

datetime

6

$call.dtmf

This variable will give the series of DTMF pressed by customer in call.

CALL

string

7

$call.state

This variable will give the current state of call. The state can be ‘in process’, ‘completed’ etc.

CALL

string

8

$call.connect

This variable will give the date and time of call when it got connected

CALL

datetime

9

$call.isIncoming

This variable will show weather the call is incoming or not (True if incoming )

CALL

boolean

10

$call.cli

For Outbound Flows: This variable will provide Number from which call is initiated (DID).

For Inbound Flows: This variable will provide the phone number of customer from which the call is coming .

CALL

string

11

$call.dnis

For Outbound Flows: This variable will provide the number of customer to which the call is made.

For Inbound Flows: This Variable will provide the Number (DID) on which incoming call was Landed.

CALL

string

12

$call.remoteHangup

This variable will give idea of call that weather it was remote hangup or not. “yes” if remote hangup

CALL

boolean

13

$call.isdn

This variable will give ISDN cause codes of the call.

CALL

integer

14

$call.cost

This variable will give the total cost of the call

CALL

double

15

$call.cost.currency

This variable will give the currency in which the cost is calculated for call

CALL

string

16

$call.recorded

This variable will show weather the call was recorded or not. “Yes” if the the recording is enable.

CALL

boolean

17

$call.recordingUri

This variable will give the URL of call recording where it is stored.

CALL

string

18

$call.lastdtmfreceived

This variable will give the last DTMF received in the call

CALL

string

19

$call.attemptnumber

This variable will give the attempt number of the call

CALL

integer

20

$call.lastlabelreceived

CALL

string

21

$call.agent.connect

This variable will give show weather agent was connected or not. “Yes” if agent got connected.

CALL

boolean

22

$sys.time

This variable will give the system time

SYSTEM

time

23

$call.cli.number

This variable will give the CLI phone number without country code.

CALL

string

24

$call.cli.countrycode

This variable will give the country code of cli number

CALL

string

25

$call.cli.type

This variable will give the CLI Type of number. The type can be …

CALL

string

26

$call.dnis.number

This variable will give the DNIS phone number without country code.

CALL

string

27

$call.dnis.countrycode

This variable will give the country code of the dnis number

CALL

string

28

$call.dnis.type

This variable will give DNIS type of number. The type can be …

CALL

string

29

$call.lastWebhookStatus

CALL

boolean

30

$call.duration

This variable will give total call duration of a particular call

CALL

integer

31

$flow.syskey.rescheduledCall

This variable is use to forcefully set reschedule in case of outbound flow. Assign value as ‘yes’ if you want to forcefully reschedule a call.

SYSTEM

string

32

$flow.syskey.reschedule_agent_call

This variable is use to forcefully set agent reschedule in case of dialer flow. Assign value as ‘yes’ if you want to forcefully reschedule a call.

SYSTEM

String

33

$flow.syskey.reschedule_customer_call

This variable is use to forcefully set customer reschedule in case of dialer flow. Assign value as ‘yes’ if you want to forcefully reschedule a call.

SYSTEM

String

34

$call.agent.recordingUri

This variable will give URL of agent recording (if enabled for agent) stored.

CALL

String

35

$call.flow.recordingUri

This variable will give URL of recording for whole flow (if enabled in the flow) stored.

CALL

String

36

$call.play_and_record.recordingUri

This variable will give the URL of recording for play and record widget stored.

CALL

String

37

$call.agent_dialer.recordingUri

This variable will give the URL of agent recording in case of dialer flow where it is stored.

CALL

String

38

$call.ivr_recording.recordingUri

This variable will give the URL of the recording of IVR (Recording Widget) where it is stored.

CALL

String

39

$call.queue.recordingUri

This variable will give the URL of the recording of queue (if it is enabled in queue) where it is stored.

CALL

String

40

$flow.syskey.agentID

This variable will give the agent ID of agent who got connected.

SYSTEM

41

$flow.syskey.agent.attempt_number

This variable will give the attempt number of agent in case of Dialer Flow.

SYSTEM

42

$flow.syskey.agent.cli

This variable will give the DID number from which the call to agent was made.

SYSTEM

43

$flow.syskey.agent.cli.number

This variable will give only the number of CLI of agent

SYSTEM

44

$flow.syskey.agent.cli.country_code

This variable will give the country code of the CLI of agent

SYSTEM

45

$flow.syskey.agent.type

This variable will give the type of agent that got connected. The type can be dynamic or direct dial.

SYSTEM

46

$flow.syskey.loginType

This variable will give the login type of agent who got connected. The login type can be mobile phone, deskphone, landline, softphone.

SYSTEM

47

$call.agent.cdr

CALL

Response Codes in widgets

Response codes are the variables which gets updated after the execution of the widget. Response codes helps in knowing particular status of the field and in troubleshooting if the widget gets failed.

Webhook

Success Response - Below are the variables which will get updated if the execution of the widget was successful and the flow moved to ‘line 0’.

$flow.key.response_status

API call Success or Failure status

SUCCESS

$flow.key.response_status_code

Status Code for response(2XX)

200

$flow.key.response_duration

Duration in seconds for the API to return data

0.11

$flow.key.response_raw

Raw response received from server, null if empty

$flow.key.response_error

If API resulted in error, Boolean true or false

false

Error Response - Below are the variables which will get updated if the execution of the widget was Failed and the flow moved to ‘line 1’.

$flow.key.response_status

API call Success or Failure status

FAILED

$flow.key.response_status_code

Status Code for response

401, 200

$flow.key.response_status_type

Type of error, based on status code

Redirection

$flow.key.response_duration

Duration in seconds for the API to return data

0.11

$flow.key.response_raw

Raw response received from server, null if empty

{...}

$flow.key.response_error

If API resulted in error, Boolean true or false

true

$flow.key.error_reason

Reason for failure

SERVER_ERROR

KYC Documents

Here is the list of documents required for KYC process in ‘Central Platform’ according to different categories.

Sr

Entity Type

KYC Type

Document Type

Is Mandatory?

1

Company

Proof of Identity

Certificate of Incorporation, GST Registration Certificate, TAN Allotment Certificate. DIN number in case of individual Directors

Any one

Proof of Address

Certificate of Incorporation, GST Registration Certificate, TAN Allotment Certificate. DIN Number in case of individual Directors

Any one

Proof of Signatory

Board Resolution or PoA for Authorised Signatory

Any one

Proof of Signatory Identity

Aadhaar Card, Passport, Driving License

Any one

Contract Document

For Pre-paid Account:

  1. PO or Duly executed Order form

For Post-Paid Account

  1. Soft Copy of MSA

  2. Soft Copy of SOW

  3. Soft Copy of Addendum

Any One

2

Individual

Proof of Identity

Aadhaar Card, Passport, Driving License

Any one

Proof of Address

Latest Electricity Bill, Passport, Aadhar Card, Bank Statement Passbook, Driving License

Any one

3

HUF

Proof of Identity

PAN card of HUF

Yes

Proof of Karta Identity

Aadhar Card, Passport, Driving License of Karta (any one)

Any one

Proof of Karta Address

Latest Electricity Bill, Passport, Aadhar Card, Bank Statement Passbook, Driving License

Any one

4

LLP/Partnrship Firm

Proof of Identity

Certificate of Partnership/Partnership Registration Certificate, PAN Card of the LLP/Firm, Certificate of Incorporation (for LLP), GST Registration Certificate

Any one

Individual Director/Passport: Aadhaar Card, Passport, DIN Number, Driving License, Individual Bank Account Passbook

Any one

Proof of Address

Latest Electriricty Bill, Lease Deed/Rent Agreement, TAN Number, Bank Account Statement Passbook. GST Registration documents, Registration documents with a Professional Body

Any one

5

Sole Propreitorship

Proof of Identity

We can ask for the personal identity proof of the Sole Propreitor. Driving License, Aadhar, Bank Passbook of Individual, Passport

Any one

Proof of Address

TAN Number, Latest Electricity BIll, Bank Account Statement Passbook. GST Registration documents

Any one

6

PSU

Prood of Identity

Can be the same as a Company as given above

 

Proof of Address

Can be the same as a Company as given above

 

7

Government Entities

 

(Need clarity on this. What kind of Government entities are we dealing with)

 

Setup DialogFlow and using in Central

If you want to design an IVR or an chat bot, that works on voice reorganization then you can use speech processing widget to achieve the same. Before that you need to perform basic setup in DialgFlow according to your use case. The setup requires following things -

→ Let's say you need to achieve following Use Case: 

There is an agent bot ‘Eva’ which when called, gives you 3 options and asks you to choose one 

Option 1 - To get Payment details

Option 2 - To get Account details

Option 3 - To get Loan details

If the user selects option 1 then he will be able to get the payment details, if the user says option 2 then he will be able to get account details and if the user selects option 3 then he will get details regarding loan. To do so you can configure dialogFlow as follows: 

Step 1 : Open DialogFlow

Step 2 : Go to Entities Page 

Entity: Each intent parameter has a type, called the entity type, which dictates exactly how data from an end-user expression is extracted.

Dialogflow provides predefined system entities that can match many common types of data. There are system entities for matching dates, times, colors, email addresses, and so on. You can also create your own custom entities for matching custom data. For example, you could define a vegetable entity that can match the types of vegetables available for purchase with a grocery store agent. 

Step 3 : Create New Entity

In order to create new entity you need to be aware of following terms-

Entity type: Defines the type of information you want to extract from user input. For example, OPTIONS could be the name of an entity type in our case as we want the user to select an ‘option’. Click on ‘Create Entity’ to create an entity type. 

Entity entry: For each entity type, there are many entity entries. Each entity entry provides a set of words or phrases that are considered equivalent.

If ‘options’ is an entity type, you could define these entity entries like: Option one, Option two, Option three.

Entity reference value and synonyms: Some entity entries have multiple words or phrases that are considered equivalent, like ‘option one’ and ‘first option’. For these entity entries, you provide one reference value and one or more synonyms.

Example : 

Reference value- Option 1

Synonymes- Option one, Option 1, First option, 1 option etc

Step 4 - After adding the details, SAVE the Entity 

If you want to use this entities in your flow then you can directly fetch entity (in speech processing widget) of particular intent and store the Entity in any variable to further use in the flow as shown below.

Step 5 - Now go to Intents page

An intent categorizes an end-user's intention for one conversation turn. For each agent, you define many intents, where your combined intents can handle a complete conversation. When an end-user writes or says something, referred to as an end-user expression, Dialogflow matches the end-user expression to the best intent in your agent. Matching an intent is also known as intent classification.


Step 6 - Create a new intent

Step 7 - Add training phrases in it

Training phrases: These are example phrases for what end-users might say. When an end-user expression resembles one of these phrases, Dialogflow matches the intent. You don't have to define every possible example, because Dialogflow's built-in machine learning expands on your list with other, similar phrases.

For Example- If we want user to select ‘option1’, we can create an intent name ‘option1’ and can add some training phrases which the end user might say like - I choose option one, I want first option, I prefer option 1 etc

Step 8 - Now add the responses of the intent


Responses: Responses can be text or  speech to return to the end-user. These may provide the end-user with answers, ask the end-user for more information, or terminate the conversation.

For example- Suppose if the end user selects option 1 and we need to provide the payment status then we add response as shown below.

So whenever the user gives input from the training phrases of this intent, one of the response will be given back to the user.


Step 9 - Now Save the intent 

Step 10 - To use this responses in your flow you can configure flow as follows

  1. first configure NLP Engine

  2. Create any inbound or outbound flow as per need, For the above example the flow can be like  - 

3. Enable ‘Fetch intent’ and then ‘fetch response’ in speech processing widget


4. Use this response variable further in any widgets like in play widget to give the user voice response. 

Integrations

1. Google

2. Amazon AWS

3. IBM Watson

  • No labels

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.