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:

Field Type Description
Name String The name of the integration.
Company* Reference The company this integration belongs to.
Service type String The type of web service this integration is using (SOAP/REST).
Process Reference The process this integration belongs to.
Application Reference Application containing this record.
Active** Boolean The integration is enabled when a connection is made active.
Attach logs*** Boolean Attach logs to transactions and requests.
Attach payloads*** Boolean Attach full inbound and outbound payloads (including attachment data) to HTTP Request records.
Description String A description of what this Integration is for and what it does.

*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.

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:

Field Type Description
Retry delay Integer The amount of time in seconds to wait before retrying a failed outbound request.
Retry limit Integer The number of times sending an outbound request is attempted.
Bond cleanup* Integer Number of days after bond closure that all its associated Transactions, HTTP Requests and Bond Attachment records are deleted.
Sync timeout** Integer The amount of time in seconds to wait for a request to be accepted by the external system.
Async timeout** Integer The amount of time in seconds to wait for an asynchronous receipt.
MID server timeout** Integer The amount of time in seconds to wait for the MID server to respond (only applies to connections using MID servers).

*Bond cleanup

Although the associated transaction and attachment records data are deleted, Bond history will still be available. Warning: setting this value to 0 means the cleanup is never run.

**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 analyst for them to deal with/escalate accordingly. Such insight allows the sender to remain informed of the condition of the request, giving them peace of mind.

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:

Field Type Description
Message format* String Automatically pre-process incoming messages for simpler message scripting.
Sync error message** Reference The message to use when an inbound message cannot be processed synchronously.
Async error message** Reference The message to use when an inbound message cannot be processed asynchronously.
Identify message script*** Script plain The script used to extract the unique message identifier from the incoming request payload. It identifies which message record is used to process the request.

*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 (example)

The following script will parse the XML 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();
}

Attachment Configuration Fields

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

Field Type Description
Max attachments per message* Integer The maximum number of attachments allowed to be sent in each message.
Max attachments per bond* Integer The maximum number of attachments allowed to be sent per bond.
Max attachments size per message* Decimal The maximum size of all the attachments in a single message in MB.
Max attachments size per bond* Decimal The maximum size of all the attachments in a single bond in MB.
Allowed content types** String Comma separated list of attachment content types that are allowed to be sent to this integration.

*Max attachments…

Warning: setting this 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:

Field Type Description
Note bond history* Boolean Use the ‘Note bond history’ to process bond history updates.
Note attachment history* Boolean Use the ‘Note attachment history’ to process attachment updates.
Enable UI messages Boolean Allow information and error messages to be shown to the user as UI Notifications. Only applies to certain notifications.
Add note script Script plain Script for adding integration updates to the target record. There is no need to call update() on the target.

*Note bond/attachment history

When checked, the history will be promoted to the work notes fields of the record we’re integrating for the analyst to view.