Configuring a ServiceNow Instance

  1. Go to Menu > WORKFLOW > Integration.
  2. On the Integrations page, from the Select Category dropdown, select only ITSM and click Apply.
  3. Click the Add new vendor icon.
    The Select Vendor pop-up is displayed.
  4. Select ServiceNow.
    The Vendor Configuration pop-up is displayed.
  5. In the Information section, enter the following values:
    Table 1. Field descriptions for Information section
    Field Description
    *Category polling Default value as ITSM
    *Vendor Default value as ServiceNow
    *Name Enter a suitable name.
    Version Enter a appropriate version.
    Description Enter a description for the vendor.
    Upload image Provision to upload vendor image/logo.
    Tags Select/Enter the tag.
    Data center Select data center value.
  6. In the Credentials section, based on the Type as REST and SSH, enter the following values:
    If the Type = REST, the Auth Type has the following values in the dropdown - Basic Auth, Credentials, Bearer Token, OAuth 2.0. The table below has the corresponding field descriptions for each of the Auth Types.
    Table 2. If Type = REST, and Auth Type = Basic Auth or Credentials
    Fields Description
    *Credential Type Select credential type as Manual or Credential List - XXX.
    Note: The credentials must be added in the respective Device Inventory.
    *Username This field is displayed if Credential Type = Manual

    Enter the username to authenticate and authorize communication with the vendor's system.

    *Password This field is displayed if Credential Type = Manual

    Enter the password to authenticate and authorize communication with the vendor's system.

    *Credential List This field is displayed if Credential Type = Credential List - XXX

    Select the configured device credentials.

    *URL Enter the valid URL/endpoint of the vendor’s API.

    To validate the URL Click Validate URL.

    *: Mandatory fields
    Table 3. If Type = REST, and Auth Type = Bearer Token
    Fields Description
    *Token Enter the authentication token required for API requests.
    *URL Enter the valid URL/endpoint of the vendor’s API.

    To validate the URL Click Validate URL.

    *: Mandatory fields
    Table 4. If Type = REST, and Auth Type = OAuth 2.0
    Fields Description
    *Username Used in Grant Type = Password , enter the username for authentication.

    This field is mandatory only if the Grant Type = Password.

    *Password Used in Grant Type = Password , enter the password for the username.

    This field is mandatory only if the Grant Type = Password.

    *Access Token URL Enter the provider's authentication server, to exchange an authorization code for an access token.
    *Client ID Enter the ID for the client application registered with the API provider.

    This field is mandatory only if the Grant Type = Client Credentials.

    Client Secret Enter the client secret given by the API provider.

    This field is mandatory only if the Grant Type = Client Credentials.

    Grant Type Select the OAuth 2.0 flow to be used:
    • Password (for user authentication with username and password).
    • Client Credentials (for machine-to-machine authentication).
    Scope Defines the level of access requested (e.g., read, write, admin).
    *URL Enter the valid URL/endpoint of the vendor’s API.

    To validate the URL Click Validate URL.

    *: Mandatory fields
    If the Type = SSH, the Auth Type has the following values in the dropdown - Credentials, SSH Key, No Auth. The table below has the corresponding field descriptions for each of the Auth Types.
    Table 5. If Type = SSH, and Auth Type = Credentials
    Fields Description
    Communication type Select the communication type as IP or FQDN/Host name
    *IP or FQDN/Host name Enter the IP address or the FQDN/Host name of the vendor’s server that AppViewX will connect to over SSH.
    *Port Enter the SSH port on the vendor’s server.
    *Username Enter the login username used to authenticate the SSH session.
    *Password Enter the password for the corresponding username.
    *: Mandatory fields
    Table 6. If Type = SSH, and Auth Type = SSH Key
    Fields Description
    Communication type Select the communication type as IP or FQDN/Host name
    *IP Enter the IP address or the FQDN/Host name of the vendor’s server that AppViewX will connect to over SSH.
    *SSH Key Enter the private SSH key used for authentication instead of a password.
    *: Mandatory fields
    Table 7. If Type = SSH, and Auth Type = No Auth
    Fields Description
    Communication type Select the communication type as IP or FQDN/Host name
    *IP Enter the IP address or the FQDN/Host name of the vendor’s server that AppViewX will connect to over SSH.
    *Port Enter the SSH port on the vendor’s server.
    *Username The username used for the SSH session, though no authentication (password or key) is required.
    *: Mandatory fields
    From the Auth type field, if you select Basic Auth and Credentials you can select the Credential Type from the dropdown and enter the relevant details to support credential authentication.
    • In the Credential Type field, if Manual is selected, the enter the Username and Password.
    • In the Credential Type field, if Credentail List - XYZ is selected, then in the Credential List field, a list of credentials from credential store will be displayed.
      • If the Credential Type = Credentail List - CyberArk, Credentail List - BeyondTrust an additional field Credential Address is displayed. It uniquely identifies the credential list.
        Note: The credentials must be added in the respective Device Inventory.
  7. Under General Settings, define the relevant field information.
    Table 8. Field descriptions for General Settings
    Field Description
    Enable polling Allows you to enable periodic polling when integrated with an ITSM system.
    Polling Interval (mins) Allows you to define the frequency of polling interval when integrated with an ITSM system.
    Device / CI validation Allows you to validate for any mismatch between device/CI (configuration item) details between the AppViewX work order and the change ticket at the time of the work order approval and implementation.
    Timezone Allows you to select the timezone from the list.
    Approve mode Allows you to enable either a ‘hard stop’ or ‘override’ (the work order) in the event of any mismatch between the AppViewX work order and the change ticket details at the time of work order approval, peer review.
    Implementation mode Allows you to enable either a ‘hard stop’ or ‘override’ (the work order) in the event of any mismatch between the AppViewX work order and the change ticket details at the time of work order implementation post all peer reviews.
  8. In the Proxy settings section, the Use Proxy checkbox can be checked or unchecked.
    Note: Before enabling, add proxy details under Menu > Settings > General > Proxy.
  9. Define the Log/Configuration settings.
    Table 9. Field descriptions for Log/Configuration
    Field Description
    Select configuration type Allows you to enable pushing of configuration commands and/or logs to the ITSM system.

    For example, pushing config and configurations to the ‘journal field’ on ServiceNow.

    Consolidated logs Option to controls whether logs from multiple components or services are aggregated into a single, unified log file or view.
    Select log type This dropdown field is enabled only when Consolidated logs is unchecked.

    Select the log type: Pre validation, Post validation, Implementation, and Rollback.

    Auto close Allows you to enable automatic ticket closure or otherwise on the ITSM system once the AppViewX work order is executed.
  10. Under Configurations, turn on the Enable config toggle and define relevant API parameters in the JSON configurator that is displayed.
    Sample Schema:
    {
    	"ServiceNowConfig": {
    		"serviceName": "ServiceNow",
    		"serviceApiList": {
    			"getTicket": {
    				"url": "/api/now/table/change_request?sysparm_query=number=<ticketNumber>",
    				"responseDataMapping": {
    					"state": "result~approval",
    					"startTime": "result~start_date",
    					"endTime": "result~end_date",
    					"sysId": "result~sys_id",
    					"ticketNumber": "result~number"
    				},
    				"apiListToCallAfter": [
    					"getDeviceList"
    				],
    				"name": "getTicket",
    				"method": "GET"
    			},
    			"getDeviceList": {
    				"url": "/api/now/table/task_ci?sysparm_display_value=true&sysparm_query=task=<sysId>",
    				"responseDataMapping": {
    					"deviceList": "result~ci_item~display_value"
    				},
    				"name": "getDeviceList",
    				"method": "GET"
    			},
    			"closeTicket": {
    				"url": "/api/now/table/change_request/<sysId>",
    				"responseDataMapping": {
    					"state": "result~state"
    				},
    				"payloadDataMapping": {
    					"state": "closureCode",
    					"close_notes": "comment"
    				},
    				"name": "closeTicket",
    				"method": "PUT"
    			},
    			"updateTicket": {
    				"url": "/api/now/table/change_request/<sysId>",
    				"responseDataMapping": {},
    				"payloadDataMapping": {
    					"work_notes": "updateData"
    				},
    				"name": "updateTicket",
    				"method": "PUT"
    			}
    		},
    		"validation": {
    			"state": "approved"
    		},
    		"tooltipData": {
    			"Affected CI's": "deviceList",
    			"Start Date": "startDate",
    			"End Date": "endDate",
    			"Status": "state"
    		},
    		"authorizationConfig": {
    			"type": "Basic"
    		},
    		"mandatoryHeaders": {
    			"Content-Type": "application/json"
    		},
    		"constants": {
    			"ticketCloseStates": {
    				"Success": 3,
    				"Not implemented": 4,
    				"Withdrawn": 7
    			},
    			"dateFormat": "yyyy-MM-dd HH:mm:ss"
    		}
    	}
    }
    
  11. Click Add.