Overview

Every integration has a configuration and business logic that defines its use case. You may integrate a particular pair of systems and entities for these systems. Each integration has one or more actions. An action consists of two configuration views called Source and Field Map, representing a set of trigger conditions (or filters), expressions, and field mapping configuration. The Integration View contains the integrated systems, the integrated entities, and the correlation settings (if any). The Action Source Tab (available after selecting an action) contains the action's general settings, like the trigger, the trigger conditions, and the expressions. The Action Field Map Tab (available after selecting an action) contains the action's field mapping configuration.

Integration View

This view contains the template's general configuration. Clicking the upper part of an Integration displays the Integration View on the right side of the screen.

Integrated Systems

An integrated system is a connected system that the ZigiOps accesses to collect or insert data into. The Integrated Systems component holds the configuration based on which the ZigiOps determines your integrating products. The System 1 and System 2 boxes hold the systems that this integration will integrate.

Clicking on the System box displays the existing connected systems that are available for selection for this integration.

Integrated Entities

An integration will always collect a particular type of record from one system and create a particular type of data on the other system; we call these types of records - entities. Such entities could be ITSM records, like incidents and problems; ITOM records, like events, alerts, etc.; CMDB records, like configuration items, hosts, nodes, applications, etc. The Integrated Entities component holds the configuration based on which the ZigiOps determines the entities it will integrate for the selected integrated systems.

Clicking on the Integrated Entities box displays a list of available entities from the selected integrated system. This is how the ZigiOps knows which are the entities that an integration template integrates. If an integrated entity is missing from the list, you may need to review the permissions of the integration user that you're using to connect to the corresponding system.

Operations

This component displays a list of all available operations (or actions) in an integration template.

Clicking any of the actions in this list drills down to its Action Source Tab. In addition, hovering over the status icon of action displays its current status.

Correlation

The correlation is a set of rules based on which it describes how the ZigiOps relates a pair of entities. All integrations support a one-to-one correlation type, meaning that the ZigiOps can correlate one record to another record. The correlation process starts with populating the "ID" of one of the records to a field in the other record and occurs during the record creation. The field could be from the source or the target entity. Later, when the integration updates an entity, it uses the correlation configuration to look up the corresponding entity and synchronize the changes.

This component holds the configuration based on which the ZigiOps determines how to correlate the integrated entities.

Action Source View

This tab contains the action's general configuration. Clicking an action displays the Action Source View (highlighted in yellow) on the right side of the screen by default.

Action Details

This component provides helpful information for the selected action. It's located below the name of the action. The action details consist of two parts; the upper part displays details for the target entity, while the second part displays details for the source entity. Using this object allows a quick peek at the action details; the alternative is going back to the Integration View where these details originally reside.

Hovering your mouse cursor on the action details object displays the selected integrated system, integrated entity, and the type of the action.

Clicking on the action details object displays a pop-up that allows you to manage the action details.

Trigger

This component holds the configuration based on which the ZigiOps executes an action. There are two types of triggers available, each providing a different way of triggering an action.

Polling Trigger

This type of trigger makes the ZigiOps the "active" side of integration since it initiates the data collection. It's based on a scheduled interval that ZigiOps follows to collect data from the source system by querying its API. It supports customizing the scheduled interval of the action.

Listener Trigger

This trigger type registers a web server endpoint (or a web server listener) that continuously "listens" for incoming HTTP requests. This type of trigger makes the ZigiOps the "passive" side of integration since it waits for incoming data. The available integration templates have a predefined configuration for the method path, port, and protocol.

For example, suppose a listener has the below configuration:

Enabling the action starts the webserver listener, and it listens for incoming data at the https://zigiops.example.com:9090/listener/omi/event endpoint and accepts POST HTTP requests.

Trigger Condition

This component serves as a filter for the data collection by setting conditions that must be met. The conditions are based on source entity attributes.

Clicking the Add new OR condition box adds a new trigger condition and displays a list of the available attributes of the source entity.

Clicking the Operator box displays a list of available operators to choose from for the condition. The available operators are: is, is not, is one of, is not one of, is empty, is not empty, contains, does not contain, less than, less than or equals, greater than, greater than or equals.

Adding a value for the selected source entity attribute in the Value box finalizes the condition's configuration.

The component also supports building more complex conditions or a combination of conditions by using logical operators.

Clicking the AND button adds a new "AND" condition to an existing trigger condition. In such a case, all the conditions unified under the AND operator must be met.

Clicking the OR button adds a new "OR" condition to an existing trigger condition. In such a case, the data must meet either of the conditions unified under the OR operator.

Clicking the Add new OR condition under the "OR" separator adds a new alternative condition.

In such a case, the data must meet either of the alternative conditions.

Related Records

Some fields are nested under a parent field; hence, they're not available for direct selection, and we call them "Related Records." This component allows creating trigger conditions based on related (or child) fields.

Expressions

The expressions are custom-defined variables that allow modifying (or manipulating) the source data and further using the result in a condition, field mapping, or another expression. The expressions are based on the source data, and there are multiple types of expressions available for selection. Each type of expression allows different approaches to manipulate the source entity's data.

Build Array

This type of expression allows you to build an array of objects by specifying a separator. For example, you could use any field as a source that will put all source values in a comma-separated array.

Date and Time Format

This type of expression allows you to transform an epoch-formatted time into a human-readable string. For example, you could use any time/date field as a source that will convert this field's value as per the selected Time Zone into a human-readable string, e.g., "25/03/2021 14:00:00."

Extract from Array

This type of expression allows you to extract objects from an array by specifying the object's index. For example, you could use any field of type "array" as a source that will extract the source field's value with index "0."

First n Characters

This type of expression allows you to extract the first "n" number of characters from a field's value. For example, you could use any field as a source to extract the first 40 characters of its value.

Last n Characters

This type of expression allows you to extract the last "n" number of characters from a field's value. For example, you could use any field as a source to extract the last 40 characters of its value.

Last Time

This type of expression allows you to store the value of any date/time field and auto-increment on each action run. For example, if two records have been collected in a single action run and they were created at 14:00 and 14:02, respectively, the expression will store "14:02" as a value.

Pattern

This expression type allows you to extract a value based on a regular expression pattern. For example, you could use this pattern "\[ERROR\]\s(.*)" to extract "This is a sample log message!" from this value "2021-02-25 10:01 [ERROR] This is a sample log message."

Replace Text

This type of expression allows you to replace a value with a predefined value. For example, you could replace the value "ASAP" with "as soon as possible."

To Lower Case

This expression allows you to transform all characters from a value to lower case characters. For example, you could transform "AS SOON AS POSSIBLE" to "as soon as possible."

To Upper Case

This expression allows you to transform all characters from a value to upper case characters. For example, you could transform "as soon as possible" to "AS SOON AS POSSIBLE."

Action Field Map View

This tab contains the action's field mapping configuration.

Clicking an action displays the Action Source Tab on the right side of the screen by default. Clicking the Field Map button located at the upper-right part of the screen displays the Action Field Map Tab. You may switch between the Action Source Tab and the Action Field Map Tab from the upper-right part of the screen by clicking on the corresponding button.

Mapping

The field mapping itself defines how the ZigiOps maps the data between the integrated entities. The Mapping component allows modifying the mapping configuration to match specific requirements.

Clicking the target field placeholder (left) shows a list of suggestions for all available target system fields.

Analogically the source field placeholder (right) and inputting an opening curly bracket ( { ) will show a list with all available fields that you could take the value from. After selecting the desired field, the ZigiOps will automatically close the curly brackets. The object that we see in curly brackets ( {examplefield} ) is a dynamic variable that holds the value of a field from the integrated source entity.

The mapping configuration is not limited to sending only the value of a single attribute, but it also supports mapping multiple attributes and possibly combining attribute(s) with static text. For example, you could add additional source attribute(s) and some static text, as shown below. Note that the ZigiOps will send the value as a whole in such a case, and the result will be "This is an incident with high priority that affects John Doe". Clicking the Recycle Bin button deletes an entry from the mapping.

Conditions

The field map configuration supports the usage of conditions (or conditional mappings). The conditions are based on source system fields. Adding a condition to a mapped field requires that the source record meet it for the ZigiOps to process the configured mapping. If none of the conditions are met, the ZigiOps will discard the field.

Clicking the Gear button displays the condition's configuration.

The configuration is separated into two sections; the condition's requirement is on the left (highlighted in red); the ZigiOps's value will send if the condition is met on the right (highlighted in blue).

The ZigiOps supports building complex conditions with logical operators, as shown in the below examples.

  • Condition
    In this example, if the impact attribute of the source system is "1", then the integration will send "Highest" for the priority attribute of the target system.

  • Combination of Conditions
    In this example, if the impact attribute of the source system is "1AND the urgency attribute of the source system is "1", then the integration will send "Highest" for the priority attribute of the target system.

Alternative Conditions

The field map configuration also supports adding alternative conditions. The conditions are evaluated from top to bottom. Hence the first condition met will report the configured value and not evaluate the rest of the conditions. If a condition is not met, then the ZigiOps will continue checking the next available condition. If none of the conditions are met, the ZigiOps will discard the field.

In the example below, if the impact attribute of the source system is "1AND the urgency attribute of the source system is "1." The integration will send "Highest" for the priority attribute of the target system. If the impact or the urgency isn't equal to "1", the ZigiOps will continue checking the next alternative condition. If the impact attribute of the source system is "2AND the urgency attribute of the source system is "2", The integration will send "High" for the priority attribute of the target system.