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 14 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

Types of Variables

Flow Variables

Flow variables are the variables that you can define in the webhook, Flow variable section or in the flow designer(operation widget) to store some date into a variable.

→ The format of flow variable is “$flow.key.<variable_name>”. You can give any variable name using any alphanumeric character or special characters.

→ Some of the examples of flow variables are $flow.key.customer_name, $flow.key.policy_number, $flow.key.string, $flow.key.result etc.

→ Flow variables are bound to specific flows and once the flow variable is defined, you can use flow variables any where in the flow.

User Variables

→ User variables are the variables that you define for your account and can be used anywhere in the account. That is one user variable defined in one flow can be used in some other flows if needed.

→ If one of the flow is executed and the value of user variable is updated and then some other flow in which the same user variable is used then the latest value of that variable (stored in the system) will be taken into consideration.

→ The standard format of the user variable is “$user.key.<variable_name>”. You can give any variable name using any alphanumeric character or special characters.

→ Some of the examples of user variables are $user.key.customer_name, $user.key.policy_number, $user.key.string, $user.key.result etc.

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

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

$sys.time

This variable will give current system time.

SYSTEM

Time

4

$call.cdr

This variable will give a uniqueID for a call.

CALL

string

5

$call.start

This variable will give the start date and time of the call.

CALL

datetime

6

$call.end

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

CALL

datetime

7

$call.dtmf

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

CALL

string

8

$call.state

This variable will give the current state of call. The state can be ‘dialing’, ‘connected’, ‘Processing’, ‘Failed’, ‘Hangup’ etc.

CALL

string

9

$call.connect

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

CALL

datetime

10

$call.isIncoming

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

CALL

boolean

11

$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

12

$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

13

$call.cli.number

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

CALL

string

14

$call.cli.countrycode

This variable will give the country code of cli number

CALL

string

15

$call.cli.type

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

CALL

string

16

$call.dnis.number

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

CALL

string

17

$call.dnis.countrycode

This variable will give the country code of the dnis number

CALL

string

18

$call.dnis.numberWithoutArea

This variable will give the CLI number without area code.

CALL

string

19

$call.dnis.type

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

CALL

string

20

$call.dnis.areacode

This variable will give the areacode of the DNIS number

21

$call.remoteHangup

This variable will give idea of call that weather it was remote hangup or not. “true” if remote hangup, “false” otherwise.

CALL

boolean

22

$call.isdn

This variable will give ISDN cause codes of the call.

CALL

integer

23

$call.cost

This variable will give the total cost of the call (according to the rate plan attached )

CALL

double

24

$call.cost.currency

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

CALL

string

25

$call.recorded

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

CALL

boolean

26

$call.recordingUri

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

CALL

string

27

$call.lastdtmfreceived

This variable will give the last DTMF received in the call

CALL

string

28

$call.attemptnumber

This variable will give the attempt number of the call

CALL

integer

29

$call.lastlabelreceived

CALL

string

30

$call.agent.connect

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

CALL

boolean

31

$call.agent.dnis

This variable will give the agent number with country code.

CALL

String

32

$call.agent.dnis.number

This variable will give the agent number (without country code)

CALL

String

33

$call.agent.dnis.countrycode

This variable will give the agent number country code

CALL

String

34

$call.agent.cli

This variable will give agent’s CLI number (with country code).

CALL

String

35

$call.agent.cli.countrycode

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

CALL

String

36

$call.agent.cli.number

This variable will give the CLI number of agent (without country code)

CALL

String

37

$call.agent.cli.numberWithoutArea

This variable will give the CLI number of agent (without area code)

CALL

String

38

$call.agent.cli.areaCode

This variable will give the area code of CLI number of agent

CALL

String

39

$call.lastWebhookStatus

CALL

boolean

40

$call.duration

This variable will give total call duration of a particular call

CALL

integer

41

$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

42

$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

43

$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

44

$call.agent.recordingUri

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

CALL

String

45

$call.flow.recordingUri

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

CALL

String

46

$call.play_and_record.recordingUri

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

CALL

String

47

$call.agent_dialer.recordingUri

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

CALL

String

48

$call.ivr_recording.recordingUri

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

CALL

String

49

$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

50

$flow.syskey.agentID

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

SYSTEM

String

51

$flow.syskey.agent.attempt_number

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

SYSTEM

Integer

52

$flow.syskey.agent.type

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

SYSTEM

String

53

$flow.syskey.loginType

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

SYSTEM

String

54

$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/Partnership 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 Proprietorship

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. 

SIP Based Calling On Mobile

Phonon Central also provides a mobile Login Interface for Agents, so that they can login from their Mobile Phones only. To avail the same, you need to follow below steps -

Prerequisites

  1. 1 Central Account, garnished with right configuration

  2. 100 - 120 kbps speed of Internet

  3. 1 Android or iOS Smart Phone

  4. OpenVPN Configured on your phone

  5. 1 SIP Client, according to your liking

Step 1 - Account Configuration

  1. Request the Support Team to enable Softphone in your account.

  2. Once Softphone is activated in your account, head to your desired Agent Group and select 'Softphone' as login method.

Enable Softphone for account

To enable softphone facility to your account, you need to send an Email to ‘help@phonon.io’ with your account details like account name, account email, account ID/client ID.

Step 2 - Configure VPN on Smart Phone

  1. Download OpenVPN for Android or iOS

  2. Download Phonon's VPN files from here and upload the asked files in OpenVPN client

  3. Use your VPN Credentials to connect with the VPN (Don't have one? Request for one using Infrastructure form)

  4. Once you see Connected in your OpenVPN Client, share the shown IP with Rajesh to be whitelisted once.

  5. Once whitelisted, you're set.

Agent Steps

  1. Login to Central Agent Interface

  2. Click on 'Softphone' from login options

  3. You'll get details like Host, Username and Password

  4. Download Zoiper from Play Store or App Store and open it

  5. In the 'Username @PBX/VoIP Provider' field, enter your host and username in the format of HOST@USERNAME. Example, if your host is 192.168.50.15 and your username is 121163, you'll enter: 121163@192.168.50.15 in Zoiper. Enter the password in Password field.

  6. Click on 'Create an Account'

  7. Your hostname will be pre-populated. Click on Next.

  8. Skip the Authentication screen by clicking on Skip

  9. In the next screen, the app will attempt to make a connection across many protocols. It should automatically detect SIP UDP option so click on Finish. If not, follow the above steps again carefully.

  10. Once you click Finish, head back over to the Central Agent Login and click on 'Login as Agent'

  11. You're now ready to take calls over the Internet.

Notes :

  1. Please ensure to have a stable internet connection with at-least 100kbps to 120kbps of internet speed.

  2. If you lose internet connection, your call may get dropped.

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