Ivanti

Ivanti provides a standalone generic connector. You can see this connector in both the Integration and Data Source options. As with other connectors, you create the Integration first and then create the Data Source.

The Aisera Gen AI platform supports Ivanti integration with an Access Token.

Integration Setup

To add an Ivanti integration:

  1. Navigate to Settings > Integrations in the Aisera Admin UI.

  2. Select Ivanti from the list of integration options.

  3. Click the Ivanti icon.

  1. Choose Next.

  1. Provide a Name for the integration and the endpoint of your Ivanti instance, and click OK.

  1. Paste the Access Token into the field in the Authentication Tab and choose OK to complete the integration.

Data Source Setup

  1. Navigate to Settings > Data Sources in the Aisera Admin UI.

  2. Choose the + New Data Source button in the upper right corner.

  1. Type Ivanti into the Search field.

  2. Choose the Ivanti icon.

  3. Fill in a Name for the Data Source configuration.

  1. Choose the Learning Function(s).

  2. Keep the On Demand option for the Schedule.

  1. There are no required fields on the Configuration, Templates, or Ingestion Configuration tabs, so click OK to continue.

  2. The Ivanti Data Source has some pre-configured defaults. These Configuration and Document Transformation Overrides describe the .json configurations that are loaded within these default settings (you don't need to change these).

    1. Configuration Overrides:

Formatted Configuration for DB Migration:

b. Data Transformation Override:

This configuration works with field mapping that sets a URL for KBs:

Note: this Document Transformation Override is needed for all Ticket content types (Tickets, Incidents, Problems, Requests, Change Requests, CMDB_CI). This Document Transformation also adds an Id field to ingested KBs entries; this remedies a UI issue where the ext. field path of the KB IDs cannot be changed from the default value (“Id”).

Mappings

The default mappings should load automatically when creating a new Ivanti Datasource. However, Ivanti instances can be modified, and new field mappings might be needed depending on the external system’s configuration.

JSON Export of Mappings

The following JSON is an export sample with all the Default Mappings for Ivanti.

The following is a cURL command to the tenant-server that appends the fields mappings for Tickets and Users (to be extended) into a specific datasource with id datasourceID:

Ticket Mappings

As an example, for our trial instance we use the following Ticket Mappings:

Important: another field mapping is needed for the URI field to be configured. See the “AddURI Transformation“ section of this page for details about setting this field. For the case of Tickets the field looks like this:

User Mappings

As an example, for our trial instance we use the following User Mappings:

User Group Mappings

As an example, for our trial instance we use the following User Group Mappings:

Knowledge Base Mappings

As an example, for our trial instance we use the following KB Mappings:

Supported Learning Functions

The Override Configuration for Ivanti currently supports the following Learning Functions (Content Types):

Actions

Ivanti supports:

  1. Get Ticket Details

  2. List Tickets

  3. Create Ticket

  4. Update Ticket

Closing a ticket and adding a new comment to a ticket can be done through the “Update Ticket” Action.

Make sure that the Generic DS with the Ivanti configuration is selected as a SOR in order to activate the available Ticket Actions.

Action Prerequisites

Before invoking Ticket Management Actions, you must first:

  1. Create a User learning Datasource and successfully fetch users. Make sure that the user you want to use in the AI Lens profile has been ingested.

  2. Create a Ticket Learning Datasource, add it in the Application you wish to use, and make it a System of Record (SOR).

  3. Make sure that the Datasources have the appropriate mappings. Mappings may depend on the instance of the external system, but the sample mappings in this document are a good place to start if you are not aware of the client’s instance specifications.

  4. If you imported Ticket Management flows, make sure that you adjust them properly to the current tenant’s configuration. Many blocks inside the flow may refer to items that need configuration (e.g. Datasource Id).

Get Ticket Details (by externalId & displayId)

The Get Ticket details action should work out of the box when provided with the external ticket id (RecId). Make sure to set only that and omit the type field.

Note: if you want to use the displayId instead of the externalId (IncidentNumber instead of RecId in Ivanti’s terminology), please use the Override Config provided in this section.

In case we want to get ticket details using the display id (IncidentNumber) instead, we can use a separate datasource, specifically for this action with the following Override Configuration:

Note: This configuration is suitable only for getting single ticket’s details and not for crawling or other actions.

Also, comments are not fetched in this case.

List Tickets

Using the List Tickets action block in the workflow editor, providing a valid emaiId is enough to fetch the tickets of a specific user:

The Title field is used for keyword searching (on the whole ticket content, not just the title).

Note: The status field expects an Aisera type for status (e.g. Open, Closed, New, Pending, Closed, Resolved). For this filter to work, you need to make sure that the field mapping for status has been properly configured.

Title Field: Ivanti’s API does not support filtering the titles of tickets; the API support a search operation that matches a string against the whole contents of a ticket. We chose to use the title field’s value to use this operation. This is a sample uri that is created if the keyword “wifi” is used in the title field (along with a date range):

Datasource Configuration Override

Ivanti’s performance is limited due to the nested calls that are required in order to fetch the comments for each ticket. The connector needs to make a separate request for the journals (comments) of each ticket, and this affects the response time of the List Ticket Action.

The following Override Configuration can be used instead of the one provided in the “Datasource Setup” section of this document, in order to ignore comments when fetching Tickets.

Note: Document Transformation Override should also be used (the same one from the DS setup section) in this case. When using an Override Configuration, you should also fill the Document Transformation Configuration as well.

Note that fetching one ticket (or any other object that supports comments) is not affected, and all comments are fetched properly.

Update: This is an improved version of the JSON config that also handles filtering by status, and keyword searching (using the title field from the List Tickets action block).

You can use two Ivanti Data Sources - one with the complete configuration for Ticket crawling, and another one with this section’s config for Ticket Management Actions in order to increase the response time for the user.

Create Ticket

A new ticket can be created through the Create Ticket action block of the workflow editor.

The required fields are: Title, Description, ReporterId, Status and Category. Note: You can select the Set User Info option and ignore the ReporterId field.

Update Ticket

The following examples uses the Update Ticket functionality.

Close Ticket through Update:

The API expects a JSON payload with:

  1. Status

  2. Ticket ID

  3. CauseCode

  4. Resolution

This is a simple JS example for creating this type of payload:

The following example is a workflow for closing a ticket:

You can edit the following action to Update Tickets:

Use an Update Action to Add a Ticket Comment

The API expects the following JSON payload:

You can use a similar workflow with the Close Ticket action described above:

The following JS example generates the appropriate JSON payload:

Document Transformations

This section contains the detailed code that is included in the Document Transformation Override configuration (Datasource Setup section - step 7).

Note: These code blocks cannot be used in the Datasource configuration. Only the override configuration (JSON string) can be used for the Document Transforation field of the “Overrides” tab in the DS config.

LastModDateTime Transformation

Inside the Document Transformation Configuration Override (Datasource Setup section), the following JS Script is incorporated; its purpose is to convert the lastModifiedDate of tickets to a common format.

AddURI Transformation

The following POST transformation is applied to the proto object for Ticket type (and its subtypes) objects, in order to add the appropriate URI field.

Note: in order for this transformation to work, a field mapping with a fixed value is required, like the following example which is specific for Tickets:

The first part (“aisera.tryaasit.com”) denotes the instance and should be changed. Also, the ObjectType=Incident parameter in the fixed URL needs to be configured if the content type is a Problem, Request, Change Request or Alert.

Problem:

Request:

Change Request:

Alert:

Add Id field Transformation for KBs

The Document Transformation Override Configuration contains the following PRE (JS) transformation for KBs, which adds a field named “id” in the JSON payload of the ingested entry with the same value as the field named “ReqId”. This is needed in cases where the Id field mapping cannot be changed in the UI and is set to “external_field_path”:”id”.

Remote Executor Support

To use Ivanti along with RE, ask your Aisera Team for the Remote Executor guidelines and .zip file from their internal documentation.

They can also provide you with a .json file of the Remote Executor Support Workflow that takes the variables: token, and tokenHeader. Use them properly when creating the authorization headers for the Rest Call Action (headers parameter).

For general information about the Remote Executor, see Remote Executor.

Last updated

Was this helpful?