Show / Hide Table of Contents

    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 deployed on-premise Desktop Connect on-premise deployment

    Desktop Connect cloud 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"
            }
          ]
        }
      }
    }
    
    Sorry, your browser does not support inline SVG. article updatedarticle updated6/23/2020 9:06:55 AM (UTC)6/23/2020 9:06:55 AM (UTC)
    Feedback     Back to top Copyright © Geomant