Table of Contents |
---|
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 -
Create any outbound flow
Attach the DIDs to that flow
Drop a mail on help@phonon.io regarding the same with the following details
Client ID/ Account ID
Flow ID
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
...
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
Support file formats are .csv and .zip
You can upload a .csv file of maximum 5MB
Download the template file from the interface.
telX:Put the customer number with country code in tel1 header, alternative numbers can be added as tel2,tel3, etc. up to tel10.
$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.
starttime:You can input the starttime of each record in the starttime header in ISO 8601 format.
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.
Note |
---|
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 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.
...
→ 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.
...
→ 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’).
...
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 i.e the DID number through which the agent is called(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 | 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:
For Post-Paid Account
| 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 -
...
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 Central Account, garnished with right configuration
100 - 120 kbps speed of Internet
1 Android or iOS Smart Phone
OpenVPN Configured on your phone
1 SIP Client, according to your liking
Step 1 - Account Configuration
Request the Support Team to enable Softphone in your account.
Once Softphone is activated in your account, head to your desired Agent Group and select 'Softphone' as login method.
Info |
---|
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
Download OpenVPN for Android or iOS
Download Phonon's VPN files from here and upload the asked files in OpenVPN client
Use your VPN Credentials to connect with the VPN (Don't have one? Request for one using Infrastructure form)
Once you see Connected in your OpenVPN Client, share the shown IP with Rajesh to be whitelisted once.
Once whitelisted, you're set.
Agent Steps
Login to Central Agent Interface
Click on 'Softphone' from login options
You'll get details like Host, Username and Password
Download Zoiper from Play Store or App Store and open it
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.
Click on 'Create an Account'
Your hostname will be pre-populated. Click on Next.
Skip the Authentication screen by clicking on Skip
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.
Once you click Finish, head back over to the Central Agent Login and click on 'Login as Agent'
You're now ready to take calls over the Internet.
...