Here you will find details of what's changed in this release, including new features & improvements, deprecated features and general fixes.
The ShareLogic Unifi 3.0 release includes a range of new features, improvements and fixes. Read on to find out about exciting new capabilities that will further enhance your experience.
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.
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!
Unifi 3.0 introduces the Unifi Test Assistant as a way to view, run and analyse automated tests in your instance. Test Assistant helps to remedy the issues of regression testing large numbers of integrations when you come to upgrade your ServiceNow instance or Unifi itself. Tests are created with one click from existing bonds, and can be tested at any time. Exporting tests to your other instances is a breeze as the tests are packaged with your integrations.
The integration documentation automatically generated for every integration has had a major overhaul with a new layout, better navigation, and major performance improvements.
UN-114 Added a Connection Test button to perform a simple high-level test of the connection to the specified endpoint.
UN-187 Automate creation of the Business Rule on any table that has a Unifi message assigned to it.
UN-783 The table field is now cleared when copying Receipt or Response messages.
UN-794 Added Run Conditions Section to Event Actions in Unifi Designer.
UN-796 Added checks for Unifi properties in Diagnostic.
UN-797 Attachment trigger Business Rule is now wrapped by console so it generates Activity Logs.
UN-807 Improve ActivityLog performance within loops.
UN-809 Added system property to control of the maximum age of Activity Logs.
UN-810 Modified attachment processing so that it will only be processed when the related record is already bonded.
UN-811 Improvements to Activity Log performance.
UN-812 Inbound REST methods are automatically created when Processes are defined/updated.
UN-813 Warning during outbound message processing (e.g. "Ignoring messages for integration ...") have been changed to debugs.
UN-818 Editing a field map now causes the Integration Build button to be shown.
UN-828 Transaction Replay from list view now informs the user if replays have been unsuccessful.
UN-890 Connections can be assigned an instance to prevent production integrations running in sub-production instances when cloned.
UN-908 Add fields and field maps to documentation.
UN-912 Added links to various configuration records in platform so they can be easily opened in Unifi Designer.
UN-915 Show number of active integrations to make it easy for people to know how many licences they have used.
UN-916 Add Response Actions to Unifi documentation generator.
UN-917 Add Poll Processors to Unifi documentation generator.
UN-918 Add Scheduled Jobs to Unifi documentation generator.
UN-924 Update to Transaction and HTTP Request numbers to show decimal suffix on first attempt.
UN-930 Allow message scripts to be toggled on dynamic documentation.
UN-952 Bond ownership can now be controlled from Message fields.
UN-953 Bond state can now be controlled from Message fields.
UN-967 Added information box to Connections page in Unifi Designer to show the inbound endpoints of the integration.
UN-968 Process page now shows all fields in Unifi Designer.
UN-969 Attempt number is now shown on inbound HTTP requests.
UN-972 Related Event Actions are now shown on Messages.
UN-973 Messages are no longer prefixed with 'Copy of' if copying to another Integration.
UN-976 Messages are now ordered by name in Unifi Designer.
UN-977 Inbound transactions now set the source connection on the bond.
UN-978 Field inheritance is now active by default.
UN-988 Authorization header is masked in the headers on HTTP Request.
UN-992 Add support for headers and request in Payload to Stage message scripts.
UN-1000 Enhance Activity Log with success messages.
Other minor portal improvements.
UN-830 Bond history has been removed from the Bond form for performance.
UN-882 Updated the top navigation menu links in portals.
UN-889 Updated the 'Get help' portal page to show new branding and information.
UN-978 Field inheritance is now active by default and the form is locked down if inherit box is checked.
UN-771 Fixed auto-documentation printing layout.
UN-795 Fixed an issue where sending an attachment on new would incorrectly commit a new empty bond when the attachment failed to send.
UN-798 Fixed the Event Actions table field so it shows Unifi tables.
UN-799 Fixed an issue with the Event Action advanced condition also running the standard condition.
UN-800 Fixed an issue where no table being set on an Event Action would cause it to break.
UN-803 Fixed an issue where inactive Event Actions were being processed.
UN-808 Fixed domain value during HTTP Request retry.
UN-816 The Response Action field is now cleared when replaying a Transaction.
UN-820 Modified the attachment business rule condition to prevent an error when 'previous' object does not exist.
UN-822 Fixed the Diagnostic and Self-Test roles so they accessible by the Unifi admin role.
UN-829 Fixed an issue preventing a Unifi admin user from replaying Transactions.
UN-831 Fixed the inbound processing so that the transaction and bond domain are set correctly from the domain on the request.
UN-833 Added measures to prevent the increased async rule performance from causing blank tickets.
UN-865 Fixed an issue with the domain not being set when replaying a transaction or request.
UN-867 Fixed an issue with a successful Transaction not changing the Integration Status from "Awaiting" to "Up".
UN-868 Prevented a situation where an outbound sync response that updated the process record could cause an update loop.
UN-870 Fixed JellyRunnerLite from leaking a global 'result' object.
UN-880 Fixed an issue where copying an integration and clearing the target scope would result in the new integration being in the Unifi scope.
UN-909 Fixed an issue where the HTTP Request retry count failed when it gets to number 10.
UN-910 Fixed an issue where the HTTP Request attempt number was not updated when Replay is used.
UN-914 Introduced auto-refresh to the Operations portal to prevent the connection from being dropped.
UN-946 Fixed an issue with the Resume integration worker popup showing the wrong number of transactions
UN-962 Field bug where copying a Message between Integrations showed 'Build Integration' in the originating Integration, and not the target integration.
UN-971 Fixed an issue where copying a Message to another integration resulted in fields in a different integration.
UN-987 Fixed issue with form choice fields becoming unresponsive in portal forms.
UN-993 Fixed Resume and Repair worker counters being wrong when processing more than 100 records.
Here you will find details of what's changed in this release, including new features & improvements, deprecated features and general fixes.
Welcome to the release notes for Unifi - Version 2.2. Please have a read through to see new features and fixes that have been added.
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.
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!
We’ve tested and verified that Unifi continues to work as expected on the latest Paris release of ServiceNow.
We’ve introduced a brand new feature that makes exporting and migrating integrations seriously easy, 1-click easy in fact. You can now click the “Package” button on an integration in the Portal and the system will gather all the related files that make that integration work and put them in a brand new update set and download it to your desktop. This feature does require the latest version of the Unifi Global Utility.
An API name is automatically generated when creating a new Process. [UN-192]
Integration Diagnostic now checks for global utility installation and version. [UN-369]
Millisecond time fields have been added to transactional records. [UN-541]
Integration Diagnostic now checks for hotfix version. [UN-682]
Activity Log will show “No logs.” if no logs are generated. [UN-768]
Errors are no longer duplicated in Activity Log to make it easier to debug. [UN-769]
Improved documentation interface in UID. [UN-772]
The display value for Connections now includes the Integration. [UN-347]
Bond reference method is no longer available for Response and Receipt type Messages. [UN-603]
Integration no longer controls number of attachments per message as this is done by the message itself. [UN-651]
Added the connection variable page to Portal. [UN-656]
Copying a Connection Variable now works. [UN-657]
Fixed icon alignment on Messages list in UID. [UN-755]
Fixed typo with Event Action. [UN-659]
Message Scripts now only throw their own errors (e.g. with Fields). [UN-749]
Improved spacing with UID Dashboard grid items. [UN-770]
Release date: 17 November, 2021
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.
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!
These fields were previously showing millisecond values. They now show system date-times which will make them easier to read and sort.
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.
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.
The latest performance improvements to Unifi Designer introduced a caching bug for system fields which is now fixed.
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.
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.
Fixed an issue with the licence report not identifying if the Unifi global utility was installed.
Release date: 20 September, 2021
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.
Unifi Integration Designer benefits from a significant performance upgrade with lists and forms loading up to 10x faster than previous versions.
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.
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.
A new Unifi Response Action has been added to support the logic for heartbeat messages pausing and resuming the integration.
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.
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.
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.
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.
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.
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.
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.
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
.
As above. Heartbeat messages are sent only when the integration is active - this includes sending when the integration is paused.
Heartbeat transactions are not queued in the same way other transactions are queued in Unifi.
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.
Response Actions can now make use of the headers which were provided with the response to an outbound request.
Failed heartbeat messages are ignored when repairing an integration.
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.
Customer global portal announcements will no longer be shown in the Unifi portal.
This is a performance improvement to the portal to prevent "scope changed" UI messages from being shown in the native platform view.
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().
Addresses a bug with ServiceNow that allows all UI Scripts that are not "Desktop" to be downloaded with every widget request.
Fixed a bug with the portal when activating fields on a message which would have the button enabled then rapidly disabled and enabled again.
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.
Updated the Connection Test interface so that large response bodies are contained properly.
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)
Fixed a bug with test assistant not properly updating the URL when porting tests between instances.
Fixed a JavaScript TypeError that only showed for Unifi Admins on the Process page in Designer.
Fixed an issue with the about modal logo colour in Designer.
Fixed a JavaScript TypeError that only showed for Unifi Admins on the Test Assistant Dashboard.
Fixed the record counter for Event Actions related list on Message in Designer.
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.
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
.
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.
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.
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.
Removed "use strict" from two portal widgets because of incompatibilities with the Rhino engine and false errors being thrown from prototype based objects.
Here you will find details of what's changed in this release, including new features & improvements, deprecated features and general fixes.
Welcome to the release notes for Unifi - Version 2.1. Please have a read through to see new features and fixes that have been added.
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.
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!
The biggest change in this release is the update to the Portal interface, now known as Unifi Integration Designer.
The old operations dashboard has now been moved to the new Unifi Operations Portal, ready for lots of exciting updates around operations in the near future. It's been replaced with a brand new configuration dashboard, allowing you to view, create, copy and manage your processes and integrations with ease.
There are lots of improvements across the board when configuring an integration, too, not least of all including support for all the components you need to build any Ticket Exchange integration together in an intuitive way.
We've introduced a brand new capability to pause an integration. This allows you to temporarily prevent outbound messages from being sent, instead allowing them queue ready for sending in future. This is different to deactivating the integration, which would prevent message processing altogether. You might want to do this if you are having a lot of errors with the external system, or perhaps if it's gone down for maintenance. Once you know the system is back up and online, you can resume the integration with the click of a button and it will automatically start processing the queued messages.
The introduction of Event Actions is part of our ongoing strategy to improve operations management of integrations. By creating an Event Action, you can easily triage events such as transaction errors and perform actions to handle or report on those actions. For example, you might want to create an Incident record if you receive more than 5 transaction errors in 15 minutes.
With the introduction of Activity Logs you no longer need to attach logs to requests/transactions. Activity Logs are present in related lists on all relevant Transaction stack records.
The attached logs were previously controlled by the Attach logs
and Attach payloads
checkboxes on Integration, but they are now overridden off by a new Integration Enable Attachments
system property. 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.
Admins can now force close a bond. [UN-106]
Description field added to Data Stores. [UN-123]
New option on Integration to send attachments with Create messages. [UN-184]
Activity Log now references the Target (e.g. Incident). [UN-288]
Added a cleaner job, controlled by system properties, to remove orphaned Transactions. [UN-544]
New Poll Request states (Retrieving, Processing) are set while a Poller is processing . [UN-293]
Field style added to Active field on Poller. [UN-298]
Activity Log is now able to show the table that called it. [UN-305]
Field style added to Poll Request state. [UN-313]
Queued Transactions are now ignored when the bond is closed. [UN-370]
Fields can now be copied. [UN-389]
The Integration field is now auto-populated when creating a Field from a Message. [UN-395]
The Table field is now auto-populated when creating a Field. [UN-396]
Added Domain field to Transaction stack forms (Bond, Transaction, Stage, and HTTP Request). [UN-401]
Copy Message now copies all its Fields. [UN-420]
Copying an Integration now copies all the Fields. [UN-421]
Copy Integration is now available in the Portal. [UN-422]
Connection is now shown on Transaction. [UN-426]
Integration Status (Up, Down, Awaiting) is now tracked on the Integration. [UN-427]
Integration State (Active, Paused, Off) is now tracked on the Integration. [UN-428]
Added option to Run Event Actions on an Integration. [UN-431]
Bond now references the Connection it was created for. [UN-438]
Dynamic Stage ($stage) now has a getValue()
method. [UN-441]
Fields and Field Maps can now be configured in the Portal. [UN-443]
Message level Fields can inherit from Integration level Fields. [UN-449]
Pollers are now listed on Integration. [UN-456]
Bonded Attachment records now track direction (Inbound or Outbound). [UN-461]
Added console
object to all scripts for ease of logging. [UN-477]
Updated Activity Logs on the bond so it shows all Activity Logs for the Document record. [UN-513]
Improved Activity Log titles. [UN-514]
Admins can now force re-open a closed Bond. [UN-517]
Improved Execute Now button for Pollers. [UN-521]
Added Activity Logs to Poll Requests. [UN-522]
Added Integration field to Poll Request. [UN-523]
Improved naming for Portal based Activity Logs. [UN-529]
HTTP Request and Transaction now shows the Response Action that was used. [UN-533]
Cascade delete now applies to Field Maps belonging to an Integration. [UN-545]
Cascade delete now applies to Fields belonging to an Integration. [UN-546]
Cascade delete now applies to Pollers belonging to an Integration. [UN-547]
Cascade delete now applies to Pollers belonging to an Poll Processor. [UN-547]
Added Description field to Connection. [UN-565]
Added Description field to Scheduled Scripts. [UN-570]
Added Hints to Field Map fields. [UN-571]
Added execution URL to Activity Log. [UN-574]
Modified security on Activity Logs so they are visible to Unifi Managers. [UN-586]
New Unifi REST service and integration role added to simplify REST API configuration. [UN-633]
Changed Integration Format and Message Service defaults to be REST/JSON. [UN-634]
Bond closed
field has been removed from Message. [UN-332]
The XML Template on Message no longer has a default value. [UN-398]
Changing the Integration on a Field now clears the Message. [UN-399]
Poll Processors are now copied when the Integration is copied. [UN-468]
Improved the Field "Depends on" logic. [UN-476]
Data Stores now inherit the domain from the parent document. [UN-481]
Message.processOutbound()
will not send anything if the action on the current record has been aborted using setAbortAction(true)
. [UN-490]
Replay Request is now available to the Unifi manager role. [UN-494]
Most system properties are now Private and not transferrable by Update Set. [UN-652]
HTTP Request URL length limit increased to 2048 characters. [UN-118]
Transaction count on bond has been deprecated. [UN-141]
Number field has been removed from Messages and Message Scripts. [UN-208]
Modified Bond Reference Method field visibility on Message. [UN-292]
Ignore Transaction button now redirects to the Transaction being ignored. [UN-338]
Deprecated ECC Queue attachment support for attaching logs. [UN-405]
Deactivated the fix script x_snd_eb eBonding Upgrade. [UN-406]
Response is no longer mandatory on Message. [UN-439]
Integration properties which are numbers are now mandatory. [UN-440]
Endpoint URL is now visible on inbound requests. [UN-511]
Deprecated log attachments. [UN-540]
Bonded Attachment fields are now locked down. [UN-577]
Only Unifi Admins or Managers can replay HTTP Requests. [UN-581]
Inbound Create messages are now rejected when a Bond with the same reference exists. [UN-136]
Inbound Bonded Attachments now reference the Transaction they came in on. [UN-151]
Fixed issue with connection name generation. [UN-159]
Replaying a Transaction with attachments will now replay the attachments as well. [UN-226]
The Bond state will now always reflect the overall status of its transactions. [UN-230]
Bond status is now updated correctly when processing numerous queued messages. [UN-273]
A new field Deferred count
has been added to Bonded Attachment which tracks how many times the attachment was not sent and allows us to properly calculate attachment metrics on the Bond. [UN-287]
Bond numbers are no longer used unnecessarily. [UN-315]
Fixed issues with assigning headers in Stage to Request Message Scripts. [UN-333]
Fixed an issue where calling a Unifi endpoint with GET would throw an error. [UN-380]
UTF-8 encoded XML is now checked before processing to prevent parsing issues. [UN-382]
The Name value on Field is now set even when a not mapping to a real field. [UN-397]
Fixed an issue where the Field form would always show the alert for losing changes. [UN-451]
Fixed duplicate attachment messages when using ServiceNow Antivirus scanning. [UN-465]
Inbound transactions that are replayed are now executed as the integration instead of the current user. [UN-473]
Fixed an issue with Field Choice generation not having the table set. [UN-475]
Replaying an HTTP Request now increments the number correctly. [UN-478]
Errors thrown in Field Map scripts will now show up in the Transaction. [UN-479]
Fixed an issue with replaying Transactions created by system
. [UN-482]
Fixed Bond History state logging. [UN-485]
Fixed an issue with false-positive updates from Transactions. [UN-505]
The "Generate field choices" action on Field now checks for existing Field Choice entries. [UN-516]
Reference fields in Messages are now correctly updated when copying an Integration. [UN-530]
Fixed an issue where full Activity Logs would be sent to system log. [UN-534]
Logging verbosity is now allowed at error
level. [UN-535]
Fixed an issue where queued Transactions would not be processed. [UN-543]
Connection is now updated when the Integration name is changed. [UN-552]
API names are now allowed to use a zero (0). [UN-553]
Clicking the "Generate field choices" action on Field will save the record first to ensure choices are generated correctly. [UN-556]
Response Action user notifications now work. [UN-562]
Fixed undefined error with Ignore Transaction button [UN-592]
Fixed issue in generating messages without a Connection URL [UN-638]
Transactions are now ordered by date created in the live feed. [UN-452]
Side menu options are now highlighted when selected. [UN-453]
Reference links now navigate to the Portal pages instead of native ServiceNow. [UN-454]
Changed the style on inactive Boolean fields to differentiate them from read-only Boolean fields. [UN-564]
Embedded fonts/icons to improve page loading times. [UN-572]
Added Enable/Disable button to form headers for easy access. [UN-641]
Fixed read error when attempting to view a record in Portal as a non-admin. [UN-403]
Fixed Portal font size for instances running Madrid onwards. [UN-404]
Fixed an issue with the operations dashboard truncating the live transaction feed when there are less than 20 transactions. [UN-407]
Attachment sending can now be controlled from the portal. [UN-415]
Condition widgets now work in Portal. [UN-434]
Fixed an issue with variables payload
and headers
not being assignable in Message Scripts. (Closures have been replaced with instructive comments.) [UN-463]
Outbound Attachment properties are no longer visible for inbound only messages. [UN-472]
Bond scripted condition type only shows once instead of twice. [UN-558]
Long text fields in Portal lists are now truncated to improve usability. [UN-569]
Fixed render issue with reference fields that have no value in portal [UN-578]
References in lists now show "(empty)" if there is no display value [UN-640]
Fixed issue with form appearing read-only in Portal view when directly navigation to the URL [UN-642]
Fixed issue with Portal form loads from an external link [UN-643]
Added support for day-of-week type fields. [UN-566]
Added support for time fields. [UN-567]
Added support for interval fields. [UN-568]
Lists and pages now update the title in Portal. [UN-637]
Here you will find details of what's changed in this release, including new features & improvements, deprecated features and general fixes.
Welcome to the release notes for Unifi - Version 2.0. Please have a read through to see new features and fixes that have been added.
Upgrade Notice
Please note that this is a major release which may not be entirely compatible with your existing integrations. While we do everything 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.
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 really appreciate you heading 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
The following items are the major talking points for this release.
Now that Unifi has a solid and proven foundation for building and running integrations, we have built a new Service Portal interface to make it simpler and easier than ever to build an integration. This new interface has been developed from the ground up to be scalable, intuitive and capable of supporting advanced features.
Unifi version 2.0 marks the first release of the portal, with the ability to build Processes, Integrations and Messages, but we will be adding to it in future releases.
Also of importance is the new Dashboard which gives a clear overview of what is happening in your instance right now. A live view of the last 20 transactions to be processed and the bonds that have been worked on today really helps you to see what's going on.
Unifi is tested to be compatible with all current ServiceNow releases: Kingston, London and Madrid.
A lot of effort has been put into upgrading the queue management options that are available. Things like replaying Transactions and Requests now use brand new technology which allows them to be much more robust and as close to a clone of the original as possible. It's also now possible to repair all the outstanding Transactions directly from the Integration with the click of a button.
This release introduces the concept of Field Maps. These allow you to configure your messages with Fields and reusable Field Maps which then automatically generate all your scripts, so you don't need to write any code.
Field Maps have no negative performance impact - in fact, they might be slightly faster - because all the logic to be executed is copied into the Message Scripts when the integration is built. Any existing code in your Message Scripts is retained so you always have the option of doing things manually.
Anyone that's used Unifi knows that a major benefit of building integrations in Unifi is the logging and profiling capability. We've now expanded this capability to make it more easily and widely accessible, so even background processes have complex logs available to see.
With the introduction of the Activity Log table, this becomes your first port of call when trying to looking for issues.
[UN-124] - Add description to connection variables to allow explanation of their use
It is now possible to add a description to the Connection Variable (up to 4000 characters) so notes or explanations can be stored.
[UN-127] - Replay All errored transactions
The Integration record now features a 'Repair' button which will automatically batch process all errored transactions. A background process is executed and with status being displayed through a progress bar.
[UN-152] - Sending attachments
This is a breaking change
Some improvements have been made to the attachment sending.
Two new fields are now available on Message:
Send attachments [true/false]
Send attachments max [Integer - default 1]
In addition to these new fields, the method AttachmentHandler#getAttachmentsToSend(message, transaction)
now takes two arguments where previously it took one. It is this method modification that may break some existing installations that manually call this method (e.g. in a UI Macro or Script Include). Please check usage of this before upgrading.
[UN-170] - Add reprocess/resend to HTTP requests
Replaying an HTTP Request now works properly for both inbound and outbound requests. Previously, complexities with the process prevented this from being fully implemented.
[UN-178] - Activity Log
Unifi has a very smart profiling and logging tool called console which allows detailed logs to be attached to contextually relevant records. While this has been incredibly useful it fell short in two areas. The first is that it would add lots of attachments to the database over time, and the second is that it wasn't easily possible to log non-record generating processes, such as background clean-up jobs.
This update addresses both of these issues through the addition of a new table called Activity Log. The table means that attachments are no longer needed because all transactions are automatically logged. It also means that background processes can be tracked because they do not need a record to belong to. The logs are stored in the table and rendered without needing to download or open an attachment.
Activity Logs will also track (where possible) the integration they belong to and the contextual record it is about. Related lists have been added in places like Bond, Transaction and Request so that Activity Logs can be easily referenced.
By default, Activity Logs are stored for 7 days.
[UN-210] - Dynamic Stage object so we don’t need to extend
Traditionally, local staging tables have been required for each process to capture data at a point in time. This data would then be available to process accurately, but it was also providing a log for future reference. The problem was a new Stage table would need to be created before the Process could be created. Then, any time a data point was needed, a new field would have to be added to the custom stage table.
Dynamic Stage does away with the need for custom stages per process and removes the need to create fields by storing data dynamically as you use it. New Processes only need to reference the Unifi Stage table, and Dynamic Stage will take care of everything else.
This change is fully backwards compatible with the traditional one stage table per process.
Start using Dynamic Stage in your Message Scripts by assigning to and from the $stage
object instead of stage
. It is possible to add not only strings to $stage
, but also complex objects and arrays. Just make sure that things like field objects are coerced to strings (or use getValue()
) otherwise you'll see something like [object Object]
instead of the string value you expect.
Custom stage tables will work with Dynamic Stage, but you will need to add the Stage Data Render
formatter to the form layout.
[UN-266] - Clone cleanup should disable all non-instance specific connections
By default, the Integrations Enabled system property (x_snd_eb.active
) is disabled when an instance is cloned. This update also disables all Connections to prevent accidental connection to the wrong endpoint.
[UN-268] - Add automatic domain setting for Bond and Transaction stack
The domain field is now automatically set for transactional records using the following logic:
Bond domain comes from Target domain (e.g. Incident).
Transaction domain comes from Bond domain.
Stage domain comes from Transaction domain.
HTTP Request domain comes from Transaction domain.
Bonded Attachment domain comes from Bond domain.
[UN-269] - Modify response action override message
The response action error message has been modified to be more descriptive.
e.g. Socket timeout handled by response action "Default 0 Script Errors"
[UN-272] - Add indexes
All tables have been indexed according to the data and queries being used. This should improve performance, especially when loading/searching lists.
[UN-276] - Allow multiple ignore and ignore from right click (Transaction)
Transactions can now be ignored from the list context menu and by a list button.
[UN-299] - Add description fields to configuration records
Add description field to all configuration type records.
Process
Integration
Message
Response Action
Poller
Poll Processor
[UN-304] - Break out GlideRecord#operation() to Model method
It is now possible to check the record operation from the Unifi Model class.
[UN-307] - Add link to app log
The System Log module has been updated to point to the scoped log rather than the system log.
[UN-309] - Update sync overdue transaction job BR on integration
The business rule that generates the overdue transaction jobs for each integration is now wrapped so it appears in the Activity Log.
[UN-317] - Refine Message.processOutbound
The Message.processOutbound()
method has been improved to be more efficient and provide better visibility of processing.
[UN-318] - Add method to console for executing a function
A new method ws_console.execute()
wraps an inline function in console logic and prevents errors from leaking (as errors are captured by the Activity Log and automatically put in gs.error()
).
It should be used in all business rules and scheduled jobs, and anywhere else a script runs in Unifi.
[UN-320] - Add cleanup job for pollers
A scheduled job has been added run every hour and uses a new cleanup
field on the Poller record to determine how many days to keep Poll Requests for.
[UN-326] - Poll Requests module should filter by created on today
Viewing Poll Requests from the application navigator will now filter to show only those created today.
[UN-340] - Sync responses do not have automatic access to internal reference
When an inbound sync request was made, the internal stage did not get auto populated with the internal_reference
field for use by the response message (e.g. to give the Incident number that was created). Unifi now checks if it has a value and if not, auto-populates it.
[UN-352] - Copy message
A Copy action is now available on the Message form which copies the Message and its Scripts.
[UN-353] - Copy connection
A Copy action is now available on the Connection form which copies the Connection and its Variables.
[UN-354] - Add support for streaming an attachment over REST
Unifi now supports sending a whole attachment as the request instead of having it sent as part of the body. This method streams the attachment rather than embedding it which means attachments larger than the string limit (5MB) can now be sent.
To use this feature, simply set the payload of the request to be sys_attachment:<sys_id>
and Unifi will automatically sent the specified attachment.
[UN-355] - Improve environment objects for identify_message script
The Identify message script on the Integration is now provided with integration
and connection
GlideRecord objects. The objects now available are payload
, headers
, integration
, connection
and variables
.
[UN-361] - Add link parsing to console
Console logs now replace text in the format table.sys_id
with a link to the record in HTML format. If the record is found then the table label and record display value are also shown. This allows users to easily open records used during the process.
[UN-363] - Add link to broken transactions on integration
A View broken transactions
related link is now available on the integration to easily view all transactions that are errored or timed out.
[UN-366] - Process stage table should be default to x_snd_eb_stage.
With the introduction of Dynamic Stage, new Process records default to use the Unifi Stage table.
UN-367] - Allow request error to show in Transaction instead of 'Final retry failed.'
The "Final retry failed" error shown in transactions was not helpful and has now been replaced with the error generated by the latest request that failed.
[UN-368] - If transaction is ignored, prevent in flight request from sending
Ignoring a transaction midway through a request being processed would not prevent the request from being sent. Requests now check if the transaction is cancelled just before sending and will automatically cancel themselves if the transaction is cancelled.
[UN-374] - Remove irrelevant debug statements
Irrelevant debug statements have been tidied up so they either do not show or only show when trace logging is enabled.
[UN-376] - Replace snd_console with ws_console
When Unifi was first created, snd_console
was also created to be used for profiling and debugging. With the company transitioning from the old name SN Developer to Whitespace Studios, we have replaced snd_console
with ws_console
. You might even see ws_console
become available for your own apps in future!
This change is backwards compatible. snd_console
still exists in Unifi so any code in your instance that uses this method will still work.
[UN-377] - Message path should allow ${} variable format
The Path on Message would only allow inline scripts using the {}
format, but this is inconsistent with the rest of ServiceNow so it now accepts ${}
or {}
to define inline scripts. e.g.
/upload?id={variables.uid}
or
/upload?id=${variables.uid}
[UN-150] - Replay request/transaction needs to run as the original creator.
When replaying requests or transactions, the replay would run as the logged in user instead of the original user. It now runs as the original user to allow functionality that relies on the identity of the user to run correctly.
[UN-228] - Overhaul pending transactions counter
It is possible for Pending transactions counter on the Bond record to get out of sync. Pending transactions are now calculated differently to try to prevent this from happening.
[UN-257] - Message processOutbound is processing messages for inactive integrations
Integrations that were inactive were still being processed for messages to send when an insert/update was made to a record. This fix prevents inactive integrations from having their messages processed.
[UN-260] - Payload object is not automatically converted to JSON for Stage to Request
Integrations using JSON payloads had to manually stringify the payload object in the Stage to Request script. You can now just set the global variable payload
to your payload object and it will automatically convert it to JSON.
[UN-274] - Poller doesn't check for integration off property
Pollers would still run even if the integration was disabled. This fix means Pollers will not run if the integration is disabled.
[UN-275] - RestHelper wraps with 'result'
This is a breaking change
When using a scripted REST API with the Unifi RestHelper, ServiceNow automatically wrap any non-streamed response in a result
object which makes it difficult to integrate with other systems that have specific response requirements. This fix uses the streaming method to send the response payload which means the message controls the whole response and no result wrapper is added.
[UN-283] - ITIL users cannot see the message names when viewing bond/transactions.
Security rules have been created to allow ITIL users to see the names of the messages that have been used when viewing from transactional data such as bonds and transactions.
[UN-285] - Attachment added can only be true on one message
Previously, only one message per integration could be configured with the 'Attachment added' trigger condition. This update allows one message per table per integration instead.
[UN-289] - Attachment business rule does not run on update
Some processes will update attachment records and these updates were not captured by Unifi. This fix addresses that so updates to attachments will check integrations.
[UN-290] - REST XML does not work
This fix allows XML to work properly with scripted REST API's using the Unifi RestHelper.
[UN-303] - When getting the bond need to order by created at ascending
This fix addresses issues finding the correct bond for integrations that can create more than one bond per ticket and see transactions spread between different (incorrect) bonds.
[UN-306] - ITIL users cannot see the integration names when viewing bond/transactions.
Security rules have been created to allow ITIL users to see the names of the integrations that have been used when viewing from transactional data such as bonds and transactions.
[UN-308] - Data Store checkOrphans method causing errors for empty table name
The scheduled orphan record checker for Data Stores would cause errors when the record that owner the data store was deleted. This would cause the getRefRecord()
method to fail.
[UN-314] - Receiving errors in processing poll requests due to string being too big
Pollers that return strings that are outside the string size limit (usually > 5MB for scoped applications) will generate an exception. A try/catch has been added to help avoid the exception and allow the script to keep running and gracefully exit.
[UN-319] - Repeating an inbound create request causes multiple bonds
When replaying an inbound create request, it would run as the user who replayed the request. Unifi saw this as a new create as it wasn't created by the Integration User. This has been fixed by replaying using a scheduled job that runs as the user that created the original request.
[UN-328] - Outbound attachment sending loop
Sending an outbound attachment that is rejected could result in the attachment being picked up with the next transaction which could also fail, thus causing an infinite loop. Bonded attachments are now only picked up in the Ready state where previously it was Ready or Rejected.
[UN-334] - Sync integration doesn't update bond external reference from stage, but async does.
The External reference on the Bond had to be written to manually for a synchronous message, where it happened automatically for an asynchronous message. It now works automatically for both types of message.
[UN-343] - Multi-table attachment processing
If an integration belonged to a process which pointed to a different table to the attachment sending message, the attachment listener on sys_attachment would not find the message. This is fixed with an option being passable to Message.processOutbound
so the table hierarchy will be searched.
[UN-348] - Affected CI logic updating incident is causing double updates
A caching issue meant it was possible for a work note to be added to the Incident whenever a CI was added/removed from the form. This has been fixed with a more intelligent mechanism of referencing the target record.
[UN-350] - Unifi message name header needs to be case insensitive
Message identification can be done by the request passing a specific header that Unifi recognises rather than adding the message name to the payload. However, headers in ServiceNow Scripted REST are always converted to lowercase which meant the Unifi header name, which used uppercase characters, did not work. This has been fixed by using case-insensitive matching on the Unifi message name header.
[UN-351] - Inbound user should not be mandatory
The Inbound user field on Connection is no longer mandatory. This is important for outbound-only integrations which do not require or permit any inbound requests.
[UN-356] - Add condition to the sys_attachment Unifi trigger
There were scenarios where Unifi log attachments could be sent by Unifi via the integration. Additional conditions on the sys_attachment business rule now prevent this from happening.
[UN-375] - Request URL's have duplicate host
If an integration required two endpoints (such as a ServiceNow Table API integration which also uses the Attachment API), the secondary host defined in a connection variable would not replace the host defined on the connection. The resulting URL had the connection endpoint followed by the variable endpoint.
e.g. Connection URL: https://test.service-now.com/api/now/table
Connection Variable value (attachment_api): https://test.service-now.com/api/now/attachment
Message path: {variables.attachment_api}
Resulting URL: https://test.service-now.com/api/now/tablehttps://test.service-now.com/api/now/attachment
The workaround was to put both hosts in variables, but it has now been fixed so that the message path is pre-processed first and then the connection path is prepended if the resulting URL does not contain a schema (i.e. ://
).
[UN-379] - Inbound attachment does not trigger outbound attachments for other bonds
In the multi-bond scenario where one ticket is bonded to many integrations, an inbound attachment will automatically create Bonded Attachment records for all the other Bonds. The problem was it didn't trigger the outbound message processing so those attachments didn't get sent automatically. This is now fixed so the outbound messages are processed when the bonded attachments are created.