Computer Telephony Integration

Computer Telephony Integration (CTI) is accomplished by the CTI client on the user machine sending a URL to the instance.

The URL must have the following components:
  1. The base URL. For example: https://<instance name>.service-now.com/cti.do? would get to the instance and ask for CTI processing.
  2. Parameters identify what parts of the incident form to display.
    • sysparm_caller_name=name where 'name' is the name for a user.
    • sysparm_caller_phone=phone where 'phone' is the user's phone number. Either a name or phone should be provided if you want to identify the user on the call. Other parameters may be supplied to identify the user as discussed later.
    • sysparm_task_id=taskID where 'taskID' identifies an existing issue that the caller is calling about.
    • sysparm_view=view where 'view' is the name of the view to be used to display the data.
    • sysparm_xxxx=value where 'xxxx' is the name of a field within the 'incident' record that should be populated with the specified 'value'. For example sysparm_priority=1 would result in the priority field set to value of 1 when the new incident screen is shown.
    • sysparm_cti_rule=name where 'name' is the name of a function to be invoked for CTI processing rather than using the default script. The function must be defined in a sys_script entry marked client callable. If the function needs to insert, update, or delete any GlideRecord(s), it must call a separate non-client callable function to perform the update(s).
      Note: While the CTI Processing script has been changed to be client callable, the code implementing the task view has been commented out. You must implement a new non-client-callable function for the code that performs the task.update().
      Note: To make a script client-callable you must check the client-callable checkbox on the form that displays when the sys_script entry is displayed. The client-callable checkbox might not show by default. To show the client-callable checkbox, you may need to modify the fields that show on the form using the gear icon and slushbucket mechanism.
      Parameters on the URL are available to the business rule as global values. For example:
      var name = sysparm_caller_name;
      The business rule you specify must return the URL for the popup screen.
An example URL to bring up a screen shot for user Don Goodliffe would look like the following. https://<instance name>.service-now.com/cti.do?sysparm_caller_name=Don%20Goodliffe Multiple sysparm parameters can be used, separated by ampersands (&).

CTI Processing script

When the sysparm_cti_rule parameter is not specified, the system uses the CTI Processing script to provide the following functionality.

The CTI Processing script does the following:
  1. Tries to identify the user by the sysparm_caller_name value if it was supplied.
  2. If no user has been found, the script tries to identify the user by the sysparm_caller_phone value if it was supplied.
  3. If a user has been identified then one of the following is done
    1. If the user has open incidents, the popup screen shows information about the current caller and all the user's open incidents.
    2. If the user does not have any open incidents, the popup screen shows a new incident with information provided in the URL shown.
  4. If a user was not identified and a taskID is given and the taskID exists, then nothing happens. The code to handle this case is commented out. If you want the popup screen to show the details for the task, you must modify the CTI Processing script to put the functionality in a separate non-client-callable function.
Here is a screen shot of the result of calling the above mentioned URL:
Figure 1. Computer Telephony Integration