Computer Telephony Integration

  • Release version: Australia
  • Updated March 12, 2026
  • 2 minutes to read
  • Summarize
    Summarized using AI
    This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.

    Summary of Computer Telephony Integration

    Computer Telephony Integration (CTI) enables interactions between telephony systems and the ServiceNow platform through a CTI client. This integration is initiated by sending a specific URL from the user machine to the ServiceNow instance, requiring authentication.

    Show full answer Show less

    Key Features

    • URL Structure: The URL must include components such as the base URL, caller's name or phone, task ID, view, and any additional field values to pre-populate the incident form.
    • Parameters: Essential parameters include:
      • sysparmcallername: User's name.
      • sysparmcallerphone: User's phone number.
      • sysparmtaskid: ID of the issue the caller is inquiring about.
      • sysparmview: Designated view for data display.
      • sysparmctirule: Specifies a custom function for CTI processing.
    • Business Rules: Parameters are accessible as global values, allowing business rules to utilize them to determine the appropriate response and URL for pop-up screens.

    Key Outcomes

    Using CTI, users can expect the following outcomes:

    • If the caller is identified, the system displays information about their open incidents or initiates a new incident form.
    • If no user is identified and a valid task ID is provided, the system does not take action unless modified to show task details.
    • Customization of the CTI Processing script is required for specific functionality, particularly for handling task views and ensuring that script functions are client-callable.

    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. The URL is accessible to authenticated users only.
    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().

        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 pop-up screen, and set the 'answer' global variable.
    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.