Integrations

The Integration is where most configuration and settings are stored.

An Integration defines the connection between a Process and the single system it’s connecting with. It is a record that contains all of the properties and configurations for that unique connection.

As previously stated, Integration has a many-to-one relationship with Process. This means multiple Integrations can exist for one Process and each unique integration will define the way in which the Process connects with that particular system.

Example

Incident Process - JIRA = one Integration

Incident Process - ATOS = one integration

Incident Process - SAP = one integration

Incident Process TOTAL = three integrations

Integration Fields

The Integration fields to be configured for the Integration record are as follows:

Company

This is usually the name of the service provider being connected to, as opposed to the name of the manufacturer of the software.

Active

This field is not selectable and is controlled by the Connections. There can only be one active Connection at any time. If there is an active Connection, the Integration will be active. If there is no active Connection, the Integration will be inactive.

Attach logs/payloads

These are used for debugging purposes.

*Attach logs/payloads:

The attached logs were previously controlled by the Attach logs and Attach payloads checkboxes on Integration, but they are now overridden off by the Integration Enable Attachments system property (logging attachments this way is now deprecated and has been replaced by the Unifi Operations Portal and Unifi Activity Logs).

This property acts as the master switch and effectively disables the checkboxes on the Integration.

Note: the checkboxes have been removed from the Integration form but can still be edited from the list view.

Properties Fields

Bringing the properties onto the Integration record allows for faster and more seamless configuration (particularly when dealing with multiple integrations), compared with searching for them on the [sys_properties] table.

The Properties fields to be configured for the Integration record are as follows:

Bond cleanup

Although the associated transaction and attachment records data are deleted, Bond history will still be available. Setting the Bond cleanup value to 0 means the cleanup is never performed.

Sync/Async/Mid server timeout

If there is no response/receipt within the time stipulated, then the request is errored. These errored requests can be rolled up to the record for them to deal with/escalate accordingly. Such insight allows the sender to remain informed of the condition of the request.

Message Configuration Fields

Messages are central to the functionality of Unifi. Upon receipt of an inbound request, Unifi will be able to identify the Message, know how to process it and subsequently what actions to perform based on the Message configurations. For that reason, it is very important that each Message within an integration be unique (more on that in the Messages section).

The Message Configuration fields to be configured for the Integration record are as follows:

Message format

Choices: XML, JSON, Advanced

Sync/Async error message

In the case of a catastrophic failure (e.g. the inability to identify, access, or read an inbound request, or the inability to process the request asynchronously), this will be the message that is sent in response (which can be standard or customised to suit).

Identify message script (examples)

Unifi automatically looks for a header called X-SND-EB-Message-Name to use as the message name. If the header is found then the Identify Message Script is not executed.

Both the payload and headers are passed into the script. The following example will parse the XML payload and identify the message name from the first child element of the body node:

function identify(xmlDoc) {
  var message_name = '';

  message_name = '' + x_snd_eb.utils.identifyFirstChild(
    xmlDoc,
    '/soapenv:Envelope/soapenv:Body'
  );

  return message_name.split(':').pop();
}

The following is an example which returns the message name from a JSON payload:

function identify(payload) {
  return (payload.$message_name || '') + '';
}

Attachment Configuration Fields

The Attachment Configuration fields to be configured for the Integration record are as follows:

Max attachments

Setting any attachment value to -1 means there is no limit.

Allowed content types

OOTB you can send any content type (i.e. this field is empty). You may wish to limit the content type by ‘whitelisting’ (explicitly specifying the file type that is allowed) (e.g. TXT, PNG).

Notes Fields

The Notes fields to be configured for the Integration record are as follows:

Note bond/attachment history

When the ‘Note… history’ checkbox is checked, the history will be promoted to the work notes fields of the record being integrated for the user to view.

Last updated