Skip to main content
Skip table of contents

Deployment Guide

Deployment Prerequisite

 Before the start of this guide, please make sure that the JS CTI Toolbar Application is deployed, You can deploy the Cisco CTI Toolbar by following the steps:

Install Cisco CTI for ServiceNow CRM

This middle layer can be deployed on any Windows server in any web server of the user's choice (IIS, Tomcat, etc). The following section lists the steps to deploy the application on an IIS server.

  1. Download the JavaScript Cisco CTI Connector and extract it. From the extracted folder, copy the files and place them in the (c:\inetpub\wwwroot\CTI_Connector) or any desired directory.  

  2. Open IIS. It can be opened by pressing window+R, writing inetmgr, and clicking OK. It will run IIS Manager.

    1. Right-click on Sites to Add a new Site.

      IIS site.jpg

      Add new Site, Site name

      create a site.jpg

    2. Physical path (c:\inetpub\wwwroot\CTI_Connector) or any given name

    3. The Port, the default value is 80 but any other value can be assigned e.g. 4430, 443* etc.

    4. Please follow this guide to install and configure the SSL certificates on IIS to run the CTI Connector on HTTPS.

    5. If the FQDN after the deployment e.g https://www.<*server_ip*>:443* or whatever is configured.

CTI Configurations

  1. Open the new_config.js file located on `c:\inetpub\wwwroot\CTI_Connector\new_config.js` path.  Set the properties as per the below table. 

S.No

Property Name

Value

 Description

1

adminUserName

admin

The Finesse Admin Username, This username is used to call the different Finesse APIs

2

adminPassword

*******

The Finesse Admin Password.

3

domain

https://<finesseFQDN>:8445

The domain name for finesse with which we are integrating 

4

subDomain

https://<subscriberfinesseFQDN>:8445

The domain name for subscriber finesse with which we are integrating 

5

boshURL

https://<finesseFQDN>:7443/http-bind /

The bosh URL variable basically append the same Finesse Domain with a predefined URL 

6

subBoshUrl

https://<subscriberfinesseFQDN>:7443/http-bind/

The sub bosh URL variable basically appends the same subscriber Finesse Domain with a predefined URL 

7

finesseFlavor

UCCE/UCCX

This property can have 2 values 

  • UCCE

  • UCCX

Note: In the case of PCCE, we need to provide value UCCE.

8

callVariable

callVariable1

Our Connector required an empty one variable which it needs to use for some internal mechanism.  That variable can be any callVariable like callVariable1,callVariable2, callVariable3....callVariable10, or any ECC variable as well. 

In the case of the ECC variable, we need to provide names like ECC.variableName

9

powered_by

True

System variable should always remain True

10

disableEndCallBtn

false

This should always remain false

11

CRM

0/1

A possible value for this key would be 0 or 1

0= When web CTI is deployed as a standalone project without any CRM Integration 

1= When Web CTI is deployed with some CRM, The CRM can be any. If the value for this property is 1, then the crmFilePath variable must be set

crm:1, // 0 = none, 1 = for crm

12

crmFilepath

The predefined path of the CRM file

To make this property work, the above property CRM must be set 1 . Value for this property depends on the CRM you are using.  Possible values are 
crmFilePath:"CRM/new_ServiceNow.js",

13

organizationDomain

https://ven05491.service-now.com/

This is the organization domain of your CRM 

14

entities

"contact, account"

The customer’s ANI is searched against Phone fields of Contact and Account entitities.

15

noMatchEntity

"Contact"

In case there is no record found in the entities searched, then we need to tell the CRM which entity should be created. For example, as per this configuration, the CTI connector will open the Contact entity form with an anonymous contact created. 

16

sso

true

This configuration is for auto-login in CTI connector. It is a boolean field, it can have 2 values:

  • true

  • false

Note:

For mobile agent this configuration value will always remains false. 

17

licenseKey

"licenseKey"

License key generated by Expertflow

18

getQueuesDelay

6000

This is only applicable for UCCE/PCCE deployment. This is the time by which CTI Toolbar queries the UCCE Database to display the Queue Stats

19

logoutFlag

True

Used in Team Performance gadget, to display the logout agent as well. 

20

ssoBackendURL

https://192.168.:8084*.*

Javascript CTI Toolbar supports Finesse SSO login as well, and for that EF has developed its own Utility which needs to be deployed First. The Deployment Guide for SSO is available here. Once you deploy that Utility, you can then provide the link here. If Finesse is not SSO enabled, please ignore this property 

21

isGadget

False

A System property should remain false always. 

22

registeredNumberVariable 

"callVariable5"

This is a property used for the popup, the possible values for this property can be any call variable name or "Ani". By default we pop up on Ani, if you want the popup to happen on a number other than Ani then you can set any call variable.

23

makeNotReadyOutboundCall

false

This property is used for making outbound calls in a Ready state, for CCE 12.5+ we can make calls in Ready state without any issues, but for below versions we need to set this property to true in order to make calls in ready state.

The agent will be in Not Ready state after the call ends if the property is set to true. 

24

defaultNotReadyReasonCode

27

This property is used for changing the agent state to Not ready for the outbound calls if made in Ready state and the makeNotReadyOutboundCall property is set to true. 

25

callVariablesList

{"callVariable1": "Language"}

The call variables list is the config where you can decide which variables you want to display on the UI and with what name they should appear on the UI. In the list, you mention the call variable name followed by the value that will appear on the UI. So for example, if you want only call variable 1 to be displayed with the key 'language' then your config should be {"callVariable1": "Language"}.

26

newWindowAutoLogin

true/false

This is for auto login to new tab of same browser. If value is true then it will allow to auto login to new tab else will not allow. This will work everywhere except in Ms Dynamics crm on premise version when SSO is true.

27

tabIconChange

false

This Config must be FALSE for ServiceNow CRM CTI Connector

28

statesDropDown

true/false

This will block the agent states drop down list on CTI by default it value must be false. 

CTI Installation and configuration

Before the phone communication channel between customer service agents and external customers can be used, Customer Service Management and Openframe plugins must be activated and configured.

Before you begin

Role required: admin

Procedure

  1. Activate the Customer Service plugin (com.sn_customerservice).

  2. Activate the Openframe plugin (com.sn_openframe).

  3. Create an OpenFrame Configuration or use the default CTI configuration by enabling the Default field.

*plugins are installed by default when deploying the application from the marketplace.

Update PhoneLog fields

  1. Search Tables and click on Tables option under system definition.

image-20241029-100508.png
  1. Search Phone Log table and click on Phone Log from the list.

  2. Change the application scope and update to Openframe as shown in image.

image-20241029-100551.png
  1. Click on New button to add the extra field for Account.

Name of Fields

Value

Type

Reference

Reference Specification

Reference = Account (customer_account)

Column name

u_account (will fetch automatically)

Column label

Account

Applications

Openframe

  1. Click on Submit button on the top right.

image-20241029-100834.png

Design the Phone Log Table

  1. Search Phone Log table and click on Phone Log from the list.

  2. Click on Form Builder from the related links on bottom of the page.

image-20241029-113918.png
  1. Now click on Edit in original scope.

  2. Now drag and drop the following fields:

Field Names
  1. Call ID

  2. Start Time

  3. Call Direction

  4. Contact

  5. Account

  6. End Time

  7. Phone Number

  8. Task

  9. Duration

  10. Additional Information

  11. Agent

  1. Now click on Save.

Create an OpenFrame configuration

This configuration specifies the OpenFrame window settings as well as the URL to be launched within OpenFrame.

Before you begin

Role required: admin

As part of the OpenFrame configuration, users with the admin role can select one or more user groups. Access to the configuration is limited to the users who have the open-frame user role and that belong to the selected groups.

OpenFrame user roles

The OpenFrame window is available to agents who belong to one of the user groups specified in the OpenFrame configuration and with any of the following roles:

  1. sn_openframe_user ( This is a minimum role that is required)

  2. sn_customerservice_agent

  3. sn_customerservice.consumer_agent admin (This is only required for the installation and configuration not required for the agents)

  4. x_expe4_expertflow_cti.do.CTI_Role (Mandatory Role required)

Adding the OPEN Frame Configurations

  1. Click on All >>Openframe >> select configurations & then ‘New

  2. openframe.jpg

  3. image-20240830-124535.png

    OPEN Frame Configurations

    *Show presence indicator when checked Only the agent can see the phone icon.

*When the above roles are provided no user group should be selected or the above-mentioned roles must be part of some user group when selected.

*x_expe4_expertflow_cti.do?ctiApplication=<Your instance URL>.

  1. Fill the configuration according to the mentioned configuration.URL represents the CTI installation path. The activate checkbox must be selected. Update and save the form.

  2. When clicked on the phone icon in the top window the integration will look like

image-20240830-130220.png

ServiceNow Dashboard

  1. If we open the CTI application from All >> Agent workspace then it will look like this

image-20240830-130348.png

Agent Workspace

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.