Desktop Connect Open CRM API reference
This document holds the technical & environmental details required to enable bespoke applications to use Geomant’s Desktop Connect for providing CTI integration with other bespoke webbased applications. To integrate with other 3rd party application Desktop Connect Open CRM uses browsers as a client, allowing applications to embedd a softphone with screen pop, call control, click to dial, agent state management, custom object creation. Desktop Connect Open CRM API service publishes the following interfaces to connecting clients:
- Javascript API
Here is how Open CRM API provides you integration options to any bespoke CRM or web applications.
Desktop Connect on-premise deployment
Desktop Connect cloud deployment
Advantages of using Desktop Connect Open CRM API:
- Bring your own CRM or Web application – We provide an extensible framework that allows integration of Desktop Connect to third party systems such as CRMs or web application, enabling them with CTI functionality.
- Two way communication – The API enables communication between Desktop Connect and the web application, enabling to set context according to your business needs.
- Standard API – The exposed API is the standard set of methods available for embedding Desktop Connect and integrating with CTI functionality.
- Operating System agnostic – Open CRM is OS agnostic and lets you integrate Desktop Connect into the web application of your choice
Open CRM API Overview
Provides methods to use JavaScript API to manage two way communication.
Methods
Method | Description |
---|---|
createEntity | Request creation of an entity, provides type and related data |
getConfig | Request configuration settings that control how the softphone behaves |
getPageInfo | Request information from the current open entity |
logCall | Indicates a call activity to be created with relevant CTI data |
searchAndScreenPop | Inidcates that the web application needs to perform a search against the provided caller data and optionally a screen pop |
openEntity | Indicates that an entity to be opened, providing entity URL or ID |
updateLog | Indicates that existing call activity needs to be update |
acrLink | Provides call recroding playback URL |
loginChanged | User logged in or logged off |
stateChanged | User changed state |
Callbacks
Method | Description |
---|---|
contactResults | Items to be displayed on the contact result panel. |
logSaved | Indicates that call activity has been saved successfully |
clickToDialRequest | Request call to be made |
pageInfo | Provide information from open entity/ this triggers an update in the active result list |
answerCall | Alerting call to be answered |
dropCall | Active call to dropped |
frameMinimized | Frame that host Desktop Connect has been minimized |
frameMaximized | Frame that host Desktop Connect has been maximized |
getAcrLink | Request call recording playback URL |
Desktop Connect configuration object
In order for Desktop Connect widget to perform a configuration object needs to be provided, setting will control displayed agent states, screen pop behaviour, phone number normalization and many more.
Section | Description |
---|---|
Dialing options | Controls how the phone number normalization should work |
Agent State | Setion controls agent states available, state dispplay names available for the agent. |
UUI Rules | Section controls if screen pop is to be made based on the UUI information provided, as well as what section of the UUI to be used for screen popping. |
Buzzeasy | Defines credentials to Buzzeasy callback service, as well as Buzzeasy queues for which callback is available |
CallLog | Section indicates which type of calls a call activity creation to be raised by Desktop Connect |
Recording host | Contains the recorder address |
Comment Templates | Define comment templates that is displayed to the user in the call log quick access buttons. |
Auxiliary Codes | Define break codes available for users, configuring the name, the code that will be sent to the switch and the list position of the code |
Wallboard | Define a set of queue for that is visible to the user, and vu-stats are provided. |
Sample configuration
{
"crmConfig": {
"dialing": {
"outsidePrefix": "9",
"internationalPrefix": "00",
"countryCode": "HU",
"lookupFormat": "E164",
"longdistancePrefix": "06",
"matchLastNDigits": "7",
"internalNumberLength": [
"5|4"
]
},
"agentState": {
"autoin": {
"label": "Available",
"visible": true
},
"acw": {
"label": "Wrap up",
"visible": true
},
"aux": {
"label": "Break",
"visible": true
},
"manualin": {
"label": "On demand",
"visible": true
}
},
"uuiRules": {
"separator": "|",
"position": 0,
"enabled": false
},
"buzzeasy": {
"companyId": "2004",
"password": "*",
"autoanswer": true,
"queues": [
{
"name": "Anyone",
"extension": "335666",
"type": false,
"beId": 2168,
"beCustomRouting": null
},
{
"name": "Only Me",
"extension": "335660",
"type": false,
"beId": 2165,
"beCustomRouting": "%station%"
}
],
"vdns": [
"335666",
"335660"
],
"huntGroups": []
},
"callLog": {
"internal": {
"isEnabled": true,
"codes": [
{
"name": "Default",
"id": "Default"
},
{
"name": "Not interested",
"id": "Not interested"
}
]
},
"inbound": {
"isEnabled": true,
"codes": [
{
"name": "Bookings",
"id": "Bookings"
},
{
"name": "Supplies",
"id": "Supplies"
},
{
"name": "Pre-Shipment Enquiry",
"id": "Pre-Shipment Enquiry"
},
{
"name": "Missed Pickup",
"id": "Missed Pickup"
},
{
"name": "Track (Changed from FTR)",
"id": "Track (Changed from FTR)"
},
{
"name": "Trace Registration",
"id": "Trace Registration"
},
{
"name": "Repeated Trace Call",
"id": "Repeated Trace Call"
},
{
"name": "Post-Shipment Enquiry",
"id": "Post-Shipment Enquiry"
},
{
"name": "Complaints",
"id": "Complaints"
},
{
"name": "Billing Enquiries",
"id": "Billing Enquiries"
},
{
"name": "Transferred Call (to other department)",
"id": "Transferred Call (to other department)"
}
]
},
"outbound": {
"isEnabled": true,
"codes": [
{
"name": "Default",
"id": "Default"
},
{
"name": "Fail",
"id": "Fail"
},
{
"name": "Sale",
"id": "Sale"
},
{
"name": "Not interested",
"id": "Not interested"
}
]
}
},
"recordingHost": "10.168.3.127",
"commentTemplates": [
{
"templateText": "Cash booking: Frontline takes the booking from a non-account holder and takes credit card payment"
},
{
"templateText": "Cash booking: Frontline takes the booking from a non-account holder and takes credit card payment"
},
{
"templateText": "Remote booking: Frontline takes the request and log in CSV. Backline/Service Desk then resume responsibility for ensuring that the pickup is made as another country will need to be contacted."
},
{
"templateText": "Amend booking: Customer calls to amend booking"
},
{
"templateText": "Cancel booking: Customer calls to cancel booking"
},
{
"templateText": "Handled by Frontline: Frontline relay the information from GEMA to customer and customer is satisfied with update. If the customer is not satisfied then advisor will try and transfer to Backline trace handler"
},
{
"templateText": "Transfer to Backline: Advisor tries to relay information back to customer but customer requires more information. Frontline then transfers call to Backline. The advisor will try and transfer to the Backline advisor that owns the trace. If owner is not available, then a call-back will be arranged"
},
{
"templateText": "Call Back arranged: Advisor arranges call back for Backline -Assigned advisor for every trace will call the customer back in an hour (This process is managed in GEMA)"
},
{
"templateText": "Enquiry: Customer calls for an update on a shipment. Frontline take the request and feedback information from GEMA. Customer is satisfied so no trace requested."
}
],
"auxCodes": [
{
"name": "Meal",
"state": "AUX",
"substate": "1"
},
{
"name": "Break",
"state": "AUX",
"substate": "2"
},
{
"name": "Coaching",
"state": "AUX",
"substate": "3"
},
{
"name": "Training",
"state": "AUX",
"substate": "4"
},
{
"name": "Meeting",
"state": "AUX",
"substate": "5"
},
{
"name": "Unplanned Activites",
"state": "AUX",
"substate": "6"
},
{
"name": "Other Work",
"state": "AUX",
"substate": "7"
},
{
"name": "Supervisor Coaching",
"state": "AUX",
"substate": "8"
}
],
"wallboard": {
"id": "a0B0B00001LCwSlUAL",
"queues": [
{
"exceededServiceLevel": "100",
"warningServiceLevel": "100",
"extension": "330245",
"type": "Hunt Group",
"name": "General Inquiry"
},
{
"exceededServiceLevel": "5",
"warningServiceLevel": "1",
"extension": "335253",
"type": "Hunt Group",
"name": "Help Desk"
},
{
"exceededServiceLevel": "2",
"warningServiceLevel": "1",
"extension": "30238",
"type": "VDN",
"name": "Buzzeasy Queue"
}
]
}
}
}