Internal Webhook Functions
- 1 Internal Webhooks
- 1.1 Before you start
- 1.2 1. Validate Date and Time
- 1.3 2. Initiate Outbound Flow
- 1.4 3. updateUserPreferences
- 1.5 4. updatePauseStatusForCLI - Change Break Status of a Direct Dial Agent
- 1.6 5. fetchUserPreferences
- 1.7 6. linkcreation
- 1.8 7. translateText
- 1.9 8. Pullreport
- 1.10 9. FindLanguage
- 1.11 How to test internal webhooks ?
- 2 Additional APIs
- 2.1 1. shortURL
- 3 Webhook URLs and end-points :
Internal Webhooks
Before you start
All internal webhooks have following structure. The method name and parameters are provided for each item.
Type: POST
{
"method": "<method name. Eg: fetchUserPreferences>",
"keys": [
{
"name": "$flow.key.<parameters>",
"value": "<value to be saved>"
},
{
"name": "$flow.key.cli",
"value": "919979293198"
}
]
}
1. Validate Date and Time
Usage : This webhook is used when you want to check weather any date and time is correct or not or is a holiday/weekend according to the configured weekdays or the date and time is valid or not etc.
URL : https://internal-webhooks.phonon.io/reliance-nippon-v1/test/
Method : ValidateDateAndTime
Request Parameters :
Flow Variable | Example | Description |
$flow.key.inputDate | 2019-12-08T05:00:00+05:30, 4 November 2019 etc | Input date that needs to be validated |
$flow.key.validMAxDays | 5 | Given date must be in future business day and not after that days. Example : If value is 5 than max 5 future day is valid other than not (excluding holiday). |
$flow.key.flowId | 58 | Flow ID of the flow from which request was sent |
$flow.key.workingDaysOff | Monday,Friday,Sunday | Working days to be consider in validating date This variable is mandatory parameter, when the type is ‘Appointment’. |
$flow.key.accountID | 2 | Account ID of the request |
$flow.key.incrementDays | 0 | Days to be incremented in input date |
$flow.key.appointmentStartTime | 2019-11-05T18:00+05:30 | Start Time of the appointment This variable is mandatory parameter, when the type is ‘Appointment’. |
$flow.key.appointmentEndTime | 2019-11-05T18:00+05:30 | End time of the appointment This variable is mandatory parameter, when the type is ‘Appointment’. |
$flow.key.type | Appointment | Type of request received. It can be ‘appointment’ or ‘callback’. Output Date/time will depend on the this type. |
Response Parameters :
Flow Variable | Example | Description |
$flow.key.outputDate | 2019-12-08T05:00:00+05:30 | Send Output date after validating and correcting. |
$flow.key.smsDate | 8-12-2019 | The output date to be send in SMS |
$flow.key.SmsOutputTime | 09:00 AM to 06:00 PM | The output time to be send in SMS. If the type is ‘Callback’, then the time will be of form '08:00 AM to 08:00 PM' |
$flow.key.outputTime | 09:00 AM to 06:00 PM | The output time after validating |
$flow.key.outputDay | Sunday | The output day after validating |
$flow.key.timeIsValid | false | ‘True' if time is valid, otherwise 'False’ |
$flow.key.dateIsValid | false | ‘True' if time is valid, otherwise 'False’ |
Â
2. Initiate Outbound Flow
Usage : Using this webhook, you can request to initiate any Outbound Flow of your account using it's API.
URL : https://internal-webhooks.phonon.io/centraloutboundwebhook-v1/prod/
Method : createOutbound
R‌equest Parameter :
Flow Variable | Example | Description |
$flow.syskey.apiVersion | 1.0 | Outbound Flow Version (mostly 1.0) |
$flow.syskey.securityID | <64 Character UUID> | Security ID mentioned in the outbound flow |
$flow.syskey.flowID | <8 Chacter UUID> | Flow ID of outbound flow that needs to be triggered |
$flow.syskey.clientID | phononio123456 | Client Identifier |
$flow.syskey.delayMinutes | 0 | When to start the Outbound Flow from current system time. |
$flow.syskey.contactNumbers | 9181607XXXXX | Customer Numbers to which calling is to be performed |
Response Parameter :
Flow Variable | Example | Description |
$flow.key.obdResponseCode | 200, 401 etc | Response code |
$flow.key.obdReqID | 3417f255-e5e7-4911-a533-67bb2aaaf677 | Request Id |
$flow.key.obdPhononUUID | 1b56ab0e-7760-4883-a1ef-ae8a872c8636 | Phonon UUID |
3. updateUserPreferences
Usage : Using this webhook, you can update $user.key Flow Variables without requiring a Make Call widget. Great for usage in Email and SMS flows. Once you have invoked this webhook, then the values of the user key variables mentioned in the API request will be updated with the new values in the system.
URL: https://internal-webhooks.phonon.io/centraloutboundwebhook-v1/prod/
Method : POST
Request Parameter :
Flow Variable | Example | Details |
$user.syskey.contactNumber | 8000374XXX | Enter the unique ID of the Customer such as it's phone number. |
$user.syskey.accountID | 163 | Account ID of the Central for which the user key variables are present. |
$user.key.XXXX... | Value | The user key variables which you want to update |
Response Parameter :
Flow Variable | Example | Details |
$flow.key.userPrefsUpdationSuccess | SUCCESS/FAILURE | Status of the request sent |
4. updatePauseStatusForCLI - Change Break Status of a Direct Dial Agent
‌Usage : Using this webhook, you can change the break status of a Direct Dial Agent. While the Direct Dial Agent is on break, s/he will not be considered for any calls allotment. For example, if your Dialer DID is 9180680XXXXX, you can create an Inbound Flow with the same DID with this webhook. DID Agents can call on the Inbound number to change their pause status anytime (or you can toggle it automatically).
‌Notes:‌
In the Dialer Flow, you can get the Agent CLI using
$call.agent.dnis.number
or for Inbound Flow =>$call.cli.number
‌URL: https://internal-webhooks.phonon.io/centraloutboundwebhook-v1/prod/
‌Method: POST
Request Parameter :
Flow Variable | Example | Description |
$flow.key.pause |
| Set the Direct Dial Agent Pause Status to be true. |
$flow.key.cli | 98799XXXXX | CLI of the Direct Dial Agent. With or Without Country Code |
Â
Response Parameter :
Flow Variable | Example | Description |
$flow.key.cli_pause_update |
| The Direct Dial was successfully paused / unpaused |
Â
5. fetchUserPreferences
Usage : This webhook is used to fetch all the user key variables linked with the contact number in an account.
URL : https://internal-webhooks.phonon.io/centraloutboundwebhook-v1/prod/
Method : fetchUserPreferences
Request Parameter :
Flow Variable | Example | Description |
$user.syskey.contactNumber | 9181607XXXXX | Contact Number whose details are to be fetched |
$user.syskey.accountID | 123 | Account ID of request |
Response Parameter : All user key variables linked with contact number.
6. linkcreation
URL : https://internal-webhooks.phonon.io/chatbotwebhook-v1/prod
Method : linkcreation
Usage : This webhook is used to generate a personalised short URL(by appending customer’s details) for the customer for a ChatBot.
Request Parameter :
Flow Variable | Example | Description |
$flow.key.cli | 9181607XXXXX | CLI number |
$flow.key.botid | 123 | ID of Bot |
$flow.key.token | Â | Cust token of the chat bot |
Note : In this request, all other flow variable will also be send if provided.
Response Parameter :
Flow Variable | Example | Description |
$flow.key.shortenUrl |
| Short URL |
$flow.key.botUniqueID | Â | Unique ID of Bot |
Â
7. translateText
Usage : This webhook will be used to convert the text from one language to another using Google Cloud account.
URL : https://internal-webhooks.phonon.io/googleapiwebhook-v1/prod
Method : translateText
Request Parameter :
Flow Variable | Example | Description |
$flow.key.inputText | My name is John | Input text to be converted |
$flow.key.sourceLang | English | Language of input text |
$flow.key.targetLang | Hindi | Language in which you want to translate |
$flow.key.apiKey | AIzaSyD562N7eElnnwMH6euehqJGdv5W43fOxxx | API Key of Google Account (provided on google console) |
Â
Response Parameter :
Flow Variable | Example | Description |
$flow.key.status | SUCCESS/FAILED | Status of webhook request |
$flow.key.translatedText | Â | Translated text |
$flow.key.detectedSourceLanguage | Hindi | Source language that was detected (If any) |
8. Pullreport
Usage : This webhook is used to write the details of any call record in the report at the given location.
URL : https://internal-webhooks.phonon.io/pullreportapiwebhook-v1/prod/
Method : pullreport
Request Parameter :
Flow Variable | Example | Description |
$flow.key.reportType | call | Type of the report in which the call data is to be added |
$flow.key.dtmf | 1 | Last DTMF pressed by the used |
$flow.key.flowid | 8657 | Unique ID of flow for which request is to be send |
$flow.key.accountID | 293 | Unique ID of Account for which request is to be send |
$flow.key.dnis | 99999XXXXX | DNIS number for which data is to be added in report |
$flow.key.starttime | 2021-01-11T09:00:00.000+5:30 | Start time of the call |
Response Parameter : No response configured
9. FindLanguage
Usage : This webhook is used to find the language of the customer from where it belongs, based on their phone number.
URL : https://internal-webhooks.phonon.io/hdfcruralwebhook-v1/prod/
Method : findLanguage
Request Parameters :
Flow Variable | Example | Description |
$flow.key.languageSupported | TELGU,ASSAMESE,HINDI,PUNJABI,CHHATTISGARHI,GUJARATI,HINDI,HINDI,URDU,HINDI,KANNADA,MALAYALAM,HINDI,MARATHI,ENGLISH,ORIYA,PUNJABI,RAJASTHANI,TAMIL,TELGU,BENGALI,HINDI,HINDI,BENGALI | List of languages that are supported. |
$flow.key.cli | 9175748XXXXX | CLI Number of the customer |
$flow.key.cliSource | MOBILE | The source from where the call was received |
Response Parameter :
Flow Variable | Example | Description |
$flow.key.cliOperator | VODAFONE | The operator of the CLI Number of customer |
$flow.key.cliCircle | MAHARASHTRA | The operator circle in which the CLI number is located |
$flow.key.cliBasedLanguage | MARATHI | The name of the language generally used in the CLI Circle |
How to test internal webhooks ?
In order to test internal webhooks, you need to follow below steps -
Connect to VPN
Open any API Client tool, example - Postman
Enter the URL of internal webhook
Select the method as ‘POST’
Select ‘Body type’ as ‘JSON’
Enter the API request in predefined format in the ‘Body’
Predefined Format :
{
"method": "<name of method>",
"keys": [
{
"name": "<request variable 1>",
"value": "<value of request variable 1>"
},
{
"name": "<request variable 2>",
"value": "<value of request variable 2>"
}
//Repeate for other request variables
]
}
Additional APIs
1. shortURL
‌Usage : Using this webhook, you can shorten any long URL into a short URL.
URL: https://s.phonon.in/UrlShortner/phonon/shortUrl
Method: POST
Headers:
Key | Value |
Content-Type | application/json |
Accept | application/json |
Request:
{
"custToken": "abcd1234",
"longUrl": "https://google.co.in",
"domain": "phn.io"
}
Note : custToken is unique for each customer. Domain is optional, and must be created if custom domain is required.
Response:
{
"shortUrl": "https://s.phonon.in/BEK4YYnx"
}
Webhook URLs and end-points :
URL : https://internal-webhooks.phonon.io
This document has been developed by Phonon.io for the sole and exclusive use of the customer / prospective customer with whom this document is being shared. Further, this document has been provided by Phonon.io to the recipient in good faith and based on request from the recipient for the same. This document is a confidential document and contains confidential product technology, workflow and commercial details that are for the sole usage of the intended recipients of this document. Recipients are advised not to share this document with any third party that is not the intended recipient of this document and neither to bring this document in full or parts into the public domain. Any unauthorized access may be brought to Phonon.io’s notice immediately. Phonon.io is free to take any legal action it deems necessary against any person or entity that violates this confidentiality agreement. Phonon.io is bound and governed by the rules of the state of Gujarat in India. In case you are not in agreement with the terms set in this clause or are not an intended recipient of this document, please destroy the document and intimate us of the same at info@phonon.io.