Unifi 3.1 Release Notes

Unifi 3.1.2

Release date: 17 November, 2021

Upgrade Notice

Please note that, as with every release, there may be some changes that are not entirely compatible with your existing integrations. While we do everything we can to make sure you won’t have to fix your integrations when upgrading, we strongly encourage all our customers to perform full end-to-end tests of their integrations before upgrading Unifi in Production.

We also highly recommend aligning your Unifi upgrade with your ServiceNow upgrade. This means you only need to test your integrations one time rather than once for the ServiceNow upgrade and once for the Unifi upgrade.

Feedback and Reviews

We really appreciate feedback on what we’re doing - whether it’s right or wrong! We take feedback very seriously, so if you feel you’d give us anything less than a 5 star rating, we’d love to hear from you so we can find out what we need to do to improve!

If you would rate us 5 stars, and haven’t left a review on the ServiceNow Store yet, we’d be grateful if you would head over there to leave us your feedback. It only takes a few minutes and really does help us a lot. Go on, you know you want to leave a 5-star review on the Store!


UN-1077 Change "Created ms" and "Updated ms" to be date-time on transactional records

These fields were previously showing millisecond values. They now show system date-times which will make them easier to read and sort.


UN-1003 Target caching fails when processing multiple messages in the same thread

Fixed an issue where multiple bonds could be created. When running multiple updates in the same thread, e.g. a GlideRecord loop, it was possible for the the target record to be changed which could result in new bonds being created unnecessarily. This was due to a new feature of GlideScopedEvaluator which replaces the object in memory thus breaking internal Unifi script references.

UN-1041 Field default scripts appear to be editable when they are locked

Due to native Service Portal modifications, script fields in Designer would no longer appear locked even though they were read-only. This fix addresses the styling.

UN-1055 Designer form loading does not update system fields

The latest performance improvements to Unifi Designer introduced a caching bug for system fields which is now fixed.

UN-1072 Execute Now on pollers runs the poller as the current user, not the user specified on the poller

The Execute Now button on Pollers has been fixed so that Pollers are executed as the specified user and not the user who is logged in.

UN-1098 Multiple bonded attachments from one attachment

We've seen some issues caused by attachment records being updated multiple times in rapid succession (thousandths of a second) by the system user which occasionally will result in multiple Bonded Attachment records being created for the same attachment. We suspect that this is due to ServiceNow Antivirus scanning and updating the attachment record. To account for this, we’ve created two business rules to fire attachments, one for inserts and one for updates.

UN-1106 Global utils version is not correct in the licence report

Fixed an issue with the licence report not identifying if the Unifi global utility was installed.

Unifi 3.1

Release date: 20 September, 2021

Automatic Heartbeat

Heartbeat messages can be setup to automatically monitor and manage the integration. When a heartbeat message fails, the integration status will be marked as "Down" and all outbound messages will be queued. As soon as another heartbeat is successful, the integration status is marked as "Up" and the integration is automatically resumed.

Portal Performance

Unifi Integration Designer benefits from a significant performance upgrade with lists and forms loading up to 10x faster than previous versions.

New Features & Improvements

UN-239 Add connection test/heartbeat

Users can now create Messages with type heartbeat which will be automatically sent periodically to the target endpoint and help to prevent failed outbound transactions.

UN-262 Add scripted condition to Response Actions

Response Actions now benefit from a scripted condition field so complex logic can be used to determine whether or not a Response Action should be used during outbound response processing.

UN-424 Default Response Action for heartbeat message

A new Unifi Response Action has been added to support the logic for heartbeat messages pausing and resuming the integration.

UN-435 Automatically create and maintain heartbeat message scheduled jobs

A scheduled job is automatically created and managed based on the presence and state of a heartbeat message within an integration and the integration itself.

UN-623 Add OAuth Get Token button to Connection

Connection records now benefit from an UI Action/button that can be used to generate OAuth tokens. The button only appears when the connection authentication is set to be OAuth 2.0.

UN-650 Allow Response Actions to cater for group codes

Response Actions are now able to handle group codes rather than just one code per action. For example, setting 5xx will match all 500 based response codes.

UN-1012 Add version and integrations to about modal

We've made it easier to find what version of Unifi you are using and included the number of active integrations in the About modal, available from the support menu.

UN-1016 Message Fields list should filter on Message table

Fields available to add to a Message are now filtered by the Message table in Designer, meaning you won't see fields that aren't relevant anymore.

UN-1017 Allow Async heartbeat messages

We've added support for heartbeat messages to be run both synchronously and asynchronously, meaning they work the same way as any other message in Unifi.

UN-1020 Add cleanup for old heartbeat transactions

Heartbeat transactions are automatically cleaned up every hour by the "[Unifi] Cleanup old heartbeat transactions" Scheduled Script. Two properties have been added to control the retention for complete vs failed heartbeat transactions.

UN-1027 Heartbeat messages should automatically send identifying request headers

Two identifying headers are automatically added to every heartbeat message that is sent: the identifying message header X-SND-EB-Message-Name and the heartbeat indicator X-SND-EB-Heartbeat.

UN-1029 Heartbeat messages should only send when the integration is active

As above. Heartbeat messages are sent only when the integration is active - this includes sending when the integration is paused.

UN-1030 Heartbeat messages should not be queued

Heartbeat transactions are not queued in the same way other transactions are queued in Unifi.

UN-1031 Prevent creation of integrations in the Unifi scope

We've added some measures to help prevent integrations and other content from being created in the Unifi scope. This is disabled by by default in 3.1.2.

UN-1036 Add headers variable to response action

Response Actions can now make use of the headers which were provided with the response to an outbound request.

UN-1037 Transaction Repair should not process heartbeat messages

Failed heartbeat messages are ignored when repairing an integration.

UN-1038 Message sending should be queued when the integration is down, not just paused

To support heartbeat functionality, we allow transactions to be created and queued for sending when the integration is flagged as down, not just when it is manually paused by an administrator.

UN-1043 Hide portal announcements for Unifi portals

Customer global portal announcements will no longer be shown in the Unifi portal.

UN-1046 Reduce number of calls to clear scope messages

This is a performance improvement to the portal to prevent "scope changed" UI messages from being shown in the native platform view.

UN-1047 Performance improvements

Numerous performance improvements made to the portal, including optimising widget dependencies, preventing global UI scripts from loading with every widget request, and reducing the use of $sp.getForm().

UN-1051 Make all UI Scripts of type "Desktop" to prevent global loading with every widget request

Addresses a bug with ServiceNow that allows all UI Scripts that are not "Desktop" to be downloaded with every widget request.


UN-929 Field.active button flickers off before settling on

Fixed a bug with the portal when activating fields on a message which would have the button enabled then rapidly disabled and enabled again.

UN-974 Copying Field Records (between Integrations) retains reference to original Field Map

Updated the copy logic to remove field map references from fields that are copied between integrations. The user needs to specify which field map to use from the target integration.

UN-1006 Connection Test Response Body Result Overrunning Connection Test Modal

Updated the Connection Test interface so that large response bodies are contained properly.

UN-1007 Full page script fields aren't editable - Unifi Integration Designer

Fixed a bug with script fields not being editable in Designer when they were be the only thing on the page (.e.g. Message XML Template)

UN-1008 Integration Test Scenario not replacing Connection or Endpoint URL

Fixed a bug with test assistant not properly updating the URL when porting tests between instances.

UN-1009 TypeError on Process Portal Page for Unifi Admin role

Fixed a JavaScript TypeError that only showed for Unifi Admins on the Process page in Designer.

UN-1010 About Modal Logo Colour Wrong

Fixed an issue with the about modal logo colour in Designer.

UN-1011 TypeError for Unifi Admin on Test Assistant Dashboard (Firefox & Edge)

Fixed a JavaScript TypeError that only showed for Unifi Admins on the Test Assistant Dashboard.

UN-1018 Event action count is incorrect on Message

Fixed the record counter for Event Actions related list on Message in Designer.

UN-1019 When creating a new Message in Designer, async is true by default

Fixed an issue where creating a new Message from the list view in Designer would always result in a Message that was set to async=true instead of it being controlled by the type of Message being created, e.g. response messages should not be async.

UN-1022 Inbound endpoints filter on Connection is not specific enough

Improved the logic for displaying inbound endpoints on the Connections list in Designer so that similarly named API's are no longer shown (i.e. an API of incident would also show inbound endpoints for an API of unifi_incident.

UN-1026 Number generation does not work correctly when instance is preventing numbering gaps

When the property glide.itil.assign.number.on.insert is set to true, numbers are not generated for Transaction and HTTP Request records on insert, but because we are adding ".01" to the end, the value was being populated as "null.01" and the number was never generated. We now account for this during record initialisation so numbers are generated correctly.

UN-1028 Errors in Reference lookup scripts are ignored

Fixed an issue where errors would be hidden if the payload was null or there was an error in the Reference lookup script on a Message. Errors are now shown correctly in Activity Logs.

UN-1032 Embedded Field list on Message is not showing non-table fields

When viewing a list of fields in the embedded list on a message in Designer, the Fields counter would show a different number of records than the number of fields actually shown. This was because of a query to show only table-related Fields. Now, all fields related to the table or no table at all are shown.

UN-1035 Server scripts with "use strict" cause errors

Removed "use strict" from two portal widgets because of incompatibilities with the Rhino engine and false errors being thrown from prototype based objects.