Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
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, 2023
The portal interfaces have been upgraded to include our latest branding and a fresh experience that makes building and managing integrations faster and easier than ever.
We are excited to introduce Integration Templates.
Marking an integration as a template makes it easier to identify the integrations you want to start from or reuse. They also provide the mechanism for us to ship standard templates with the application.
With the version 4.1 release, some basic templates are included and more templates will be added in future.
We've improved the way that Datasets operate and interact with Import Sets and Transactions.
Dataset Request are now fully linked for the end-to-end process which makes it easier for you to see and understand the import/export states.
A Connections can now be marked with a direction: Inbound, Outbound, or Bidirectional. An inbound user is only necessary for Outbound or Bidirectional connections.
In rare cases where the attachment referenced by a Bonded Attachment record is deleted or cannot be found, the AttachmentSender will now mark the Bonded Attachment as Failed with a status of "Attachment cannot be found".
Documentation links have been updated to reflect the latest folder structure used in the docs website.
There should only ever be one active bond for a specific document and integration. Occasionally (usually during development) duplicate bonds can be created. A new integration diagnostic has been added to checks for this and make it easy to find and fix.
The field(s) used for coalesce are now configurable from the embedded Field list when viewing a Dataset Process Message in Designer, rather than only from the Field form.
In normal operation, the bond for a Dataset is created when it becomes active. However, migrating an integration with an active Dataset does not migrate the Bond which can lead to issues with failed imports and exports. A new integration diagnostic has been added to check if a bond exists for each Dataset with an option to quickly fix the issue if necessary.
In the past, it has been possible for Fields to reference built-in Field Maps which ship with the application. This is not recommended. A new integration diagnostic has been added to check for fields which use field maps in the ShareLogic Unifi scope and provide an easy way to copy them into the integration, removing reliance on ShareLogic field maps.
Updated the integration documentation feature so it includes Datasets.
Prior to this release, adding an attachment to a record would only create a Bonded Attachment if the record it belonged to was specified by the process. This behaviour has now been modified so attachments will work properly with multi-table processes such Request/Request Task.
Updated message script generation in the Build process so outbound message scripts are only generated for outbound/bidirectional messages and inbound message scripts are only generated for inbound/bidirectional messages.
Added new "Configure in Unifi" related links to Scheduled Scripts, Datasets and Message Scripts.
Prior to this update, an inbound request would pick a random connection if there was more than one active connection with the same inbound user for the same process. Since this behaviour is not supported, this update prevents the inbound request from being processed and notifies the sender with an error response.
Added a button to the "Create Test" progress worker to "Open in Test Assistant" once the test has finished being generated.
To help prevent the snapshot table from growing excessively large, snapshot records which do not relate to at least one integration message will no longer be inserted.
Added a form link to the Bond record which navigates the user to the integration test list for that integration.
Changed integration test warnings into notices to make them look less like a failure and more informational.
Up until now, ShareLogic and Unifi have been separate entities, company and product. We are now taking the step to simplify things, making our company synonymous with our product. This update introduces brand new ShareLogic theming, a refreshed interface, and sees our product, Unifi, renamed to ShareLogic Unifi.
Dataset processing summaries are now automatically added to the stage "Summary" property when the inbound dataset request is created, or when the outbound send message is sent.
Designer will now detect if Xplore is installed and provide shortcut methods to forms and lists.
A new Retry button has been added to the Connection Test interface to make it easier to re-run the connection test.
Added a new field to integration which tracks the application version the integration was last built with. This field is not currently visible anywhere.
Developers can now get the attachment content in the Stage to Request script to put attachment data directly into the payload to be sent. This is useful when only the content of an attachment needs to be sent rather than the attachment itself.
Updated the Dataset export buttons to be “Export Delta”, “Export Full”, and “Export Test”. The export type is now set on the Dataset in the Type field (Delta, Full, or Test). Test exports will only export a maximum of 20 rows (regardless of the max rows value on the Dataset) which in turn will allow full debug logs in Activity Log.
Added new links to the Dataset form view in Designer to make it easier to get to related records.
Bond will open the Bond record form view for the Dataset.
Requests will open the Dataset Requests list view for requests generated by the Dataset.
Import History will open the Transform Histories list view for imports managed by the Dataset.
Viewing an inbound Dataset Request which is in the Processing state will now automatically check to see if there has been an error on the import and will set the state to Error.
Also, a new button “Find inbound errors” has been added to the Dataset Request list to make it easy to find all requests with inbound processing errors.
Dataset Requests responsible for importing are now immediately updated with the import error when the import fails.
Added a new button “Format Payloads” to the HTTP Request form view which toggles formatting for XML and JSON request and response payloads, making them easier to read when checking for values.
Improved the inbound REST processing:
Low level processing errors now respect the accept header and content type.
Sending a message with content type text/plain will now work instead of being rejected.
Inbound payloads are now stored even if the request fails, making them easier to identify and debug.
Fixed the error shown when an invalid process is chosen in the Scripted REST API.
A new action called “Show bonds” has been added to the main dropdown menu in Designer which will open a new list view for all the bonds belonging to the integration.
Added a new info message to Datasets which shows when the query start time is reset because the query condition changed: "The dataset query has changed so the next export will include all records."
A new Cancelled state has been added to Dataset Request in addition to a Cancel button which is shown on outbound requests when the state is Ready, Queued, or Processing.
Updated Designer so the integration name is shown first in the browser title, making it easier for developers using multiple tabs to see where they are.
An integration can now be marked as a template making it easier to identify the integrations you want to start from or reuse.
Response actions now have access to the “query” and “headers” objects which gives direct access to inbound request query parameters and header values.
Dataset exports will now be skipped if the integration is not found or is not active or if the Dataset is not active.
Updated the integration test runner so integration tests are executed as the original user that generated the transaction. This ensures that the test follows the same process path during testing as it did originally.
Updated the default list size in Designer to be 50 items.
Key fields such as path and property are now shown in the Field list on a Message.
File names and references are now decoded in the attachment REST resource template providing support for encoded character values. Note: this only affects new processes with existing processes requiring a manual update if necessary.
To help prevent upgrade issues, built-in field maps are no longer selectable when configuring a field.
Updated the integration documentation feature so it includes Event Actions.
We've switched the system properties interface back to use the original system_properties_ui.do interface. This better supports temporary app scope switching so users don't need to manually change to the ShareLogic Unifi app scope.
Fixed an issue where messages with the same name but different directions, or where one is inactive, do not always work as expected.
Fixed an issue that prevented an error message from being displayed when viewing a field that is technically inherited but does not actually inherit from a valid field.
Fixed an issue with test data substitution when running an integration test.
Copying a connection in Designer will now keep you in Designer.
Queued transactions are now only processed during integration resume operation when the previous transaction was complete.
Prior to this update, errors occurring in payload to stage processing would not fail the inbound request. A backwards compatible fix has been added which allows integrations developed before version 4.1 to opt into having these errors be recognised and treated as a 500 error. Existing integrations can enable this behaviour by turning on the "Fix inbound errors" flag on the integration list (this field is not available on forms). New integrations created with 4.1 or above will use this behaviour by default.
Fixed an issue where scheduled scripts belonging to integrations would not be captured by the integration packager.
Fixed the Ignore button on Datasets so it is available in the Error state.
Fixed an issue with the initial loading of the Insights dashboard widget.
Fixed a bug that would prevent the integration delete operation from working when initiated from Designer.
Fixed a reference issue preventing this diagnostic from working properly.
Fixed an incorrect info message which directed the user to enable a system property for import logging instead of the "Import logging" flag on the Dataset.
Fixed a bug causing the template field on Message to be displayed with Javascript formatting instead of XML.
Fixed a bug which would reset the template field when saving a Message in Designer.
Updated integration test logic to ignore new fields on the process table (e.g. Incident) which were not present when the test was created.
Fixed an issue with rendering the Message template in Designer.
Fixed guest transaction replay logic by preventing the system from trying to find a guest user to impersonate.
Fixed the REST resource query logic so only the process related resources are shown when viewing the Connections list in Designer.
With the ServiceNow Tokyo release it has been possible for an inbound create to take so long to process (due to customer process and instance load) that another message trying to lookup the bond will not find it and trigger another create message causing two bonds to be inserted. This has been fixed by committing the bond before attempting to commit the target during inbound create operations.
This issue was caused by a self-closing directive tag and was fixed with UN-1270.
Fixed a browser/content-type compatibility issue which caused directives included with a self-closing XHTML tag to not render (e.g. full page scripts in Designer form views).
Fixed the Poller Execute Now button in Designer so Pollers are executed as the specified user (providing global utility is installed).
Updated the diagnostic that checks hotfix version to compare at the patch level. Also improved the diagnostic error comment.
Added a new business rule "[S] Clear errors on complete" on the transaction table to clear the process error when the state changes to Complete.
Fixed the Dataset advanced query evaluator so it points to the correct field.
Fixed Connection Test for SOAP integrations.
Improved the copy worker logic so message count is updated on the dashboard as the integration is being copied.
Fixed a bug which prevented the error messages specified on the integration from being used.
Fixed an issue which under specific circumstances could result in events that use DataSetProcessor to continually generate events even when all records have been processed.
Fixed Test Assistant portal so clicking the target record from a test result will open the record correctly.
Fixed the update set URL so it is compatible with the latest releases of ServiceNow.
Record counting logic has been revamped to be more robust so the progress workers display accurate information.
Added role checks and warning messages for non-admin users who do not have access to records in Designer.
Fixed the test result widget so it exits processing earlier if an invalid test sys_id is provided.
Updated the inbound processing logic so inbound requests that are unable to be processed will still be marked as Inbound where previously the direction was not stored.
Modified integration tests so receipt processing logic is only tested if the receipt is available on the message.
Fixed an issue with Dataset processing not following the directional choice set by the configuration.
Added support for Dataset field maps that refer to the property value on the field instead of the element. By default, the field element value is used unless the field map is using ${field.property}, in which case the property value is used.
The dashboard has been updated to ignore letter case when using search, e.g. searching “acme” will now match “ACME”.
Updated the Message logic to only set the Action method value to POST when it is empty and the integration type is REST.
Fixed an issue which caused tests generated from closed bonds to fail incorrectly.
Updated the Dataset Request cleanup job so it only removes transactions which are Complete or Ignored. This prevents the Dataset Requests from being removed too soon since the requests are cascade deleted from the Transaction.
Updated Activity Log rendering so it works with the new macro display container used in Next Experience.
Updated the integration test runner to prevent an error being generated when multiple integrations are triggered from a process update during testing.
Fixed an issue preventing custom Response Actions from running request retry logic.
Cleanup date is now ignored during integration testing since it is irrelevant to the test.
Fixed an issue where the copy integration service would not move some of the newly copied configuration to the new scope chosen by the user for the new integration.
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.
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
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.
Release date: 12 September, 2022
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
We are extremely proud to introduce official support for mass data import and export with a brand new feature called Datasets.
Datasets allow you to easily configure imports and exports of large amounts of data on a schedule, with transformation being achieved through the standard use of Unifi Fields and Field Maps, and transportation via automatically generated attachments sent within Unifi Messages. Data is automatically chunked and filtered for delta updates, with full sync being available at any time with one button click. Datasets have been built so you still get the benefit of Unifi operational data but with huge efficiency gains for large amounts of data.
Diagnose and managed your integration with the new Integration Dashboard, containing stats, diagnostics, and access to common integration development actions.
We're continuing to refine the portal interfaces and this update includes a significant performance boost to the Designer experience, along with several developments and updates to make integrations easier to manage and maintain.
The Snapshot table was introduced in a previous release as both a mechanism to support automated testing and a precursor to a more efficient method of processing outbound messages which we intend to move towards in a future release. Unfortunately, no cleanup job was included and this table has been known to become very large.
While this update includes a cleanup job to rectify this issue, we strongly recommend the table be emptied before updating to this version since this will be much faster than relying on the job. Note: Once the table is emptied, Unifi will not be able to create tests for existing bonds.
Pre-upgrade requirement
For existing customers using version Unifi 3.1, we strongly recommend the Snapshot [x_snd_eb_snapshot]
table be emptied before upgrading to version 4.0. This can be achieved by an administrator:
Change to the Unifi application scope
Navigate to the Snapshot table object (/sys_db_object.do?sys_id=cbe6eb84db856010d78869091396198b), and
Click "Delete All Records".
Previously, transactional data relating to bonds was removed by an event specifically for that bond that was created when the bond was closed. For customers with long data retention requirements, this could result in thousands of queued cleanup events.
The cleanup logic has now been updated to improve this. A new field called Cleanup date has been added to Bond records. The Cleanup date is set when the bond is closed and specifies the time the transactional data for the bond should be cleaned. A scheduled job triggers an event and script action once per day. Any records which have a cleanup date before the current date are cleaned. (Note: the job is designed to chunk the processing to prevent excessive system resource consumption for systems with high cleanup volumes.)
A new diagnostic test has been added to ensure the inbound users specified on a Connection has the x_snd_eb.integration role.
The dashboard in Unifi Designer has been improved and updated with a number of new features including:
New “All Integrations” pane with tabs for switching between processes and integrations
Search bar to allow contextual search for all integrations or just those in the selected process
Reversible sorting for Name and Updated date
A field that has its configuration inherited by child fields now shows a list of those inherited fields.
The list of fields in Designer now shows more columns to make it easier to find and identify fields.
The Scenarios tab show within a test in Test Assistant now shows the direction of the scenario to make it easier to see which way the messages are flowing.
Connections have the ability to specify the name of the instance the connection belongs to. This value is now prepopulated with the instance name when the connection is created. The value used is from the system property instance_name
.
Asynchronous integrations use a request-receipt pair of messages where the receipt is a new message sent by the other system to confirm it has processed the original request. Unifi allows a timeout to be specified so that transactions with requests that do not receive a receipt within a given duration can be flagged for investigation with the Timed Out
state. By default, Unifi operates in best practice and discards receipts to messages that have timed out, however this update introduces a new setting on the integration to change this behaviour. Setting Process timed out transactions
to true on the integration will allow receipts to be processed regardless of how long they take.
Previously, when an inbound receipt was rejected because the Transaction state was not “Awaiting Receipt”, the response error would just indicate that it is because it has been “processed already”. This is not always the case so the error message has been updated to explain the actual reason which should be more helpful in testing and operational investigations.
Response errors for inbound requests that are generated by Unifi have been updated with a [Unifi]
prefix so that users can more easily determine if the error is a platform issue such as an invalid user/password or a Unifi issue such as no connection was found.
The Unifi Data Preservers have been updated so the Include in system clone
field is now true, allowing system clones to keep existing data on the target instance.
Pollers generally need to know the last successful request time so future queries can filter the data efficiently. A new Data Store called $last_completed
which contains an ISO date time is now automatically stored on Pollers and is set when a Poll Request state changes to Complete. The Poller object has a new method getLastCompleted()
that can be used which returns a GlideDateTime object of the $last_completed
value or a new GlideDateTime object if any validation on the datetime fails.
A new dashboard has been added to Integrations in Designer to make it easier to manage and diagnose the integration. The dashboard is now the default view of the integration, with the integration settings being moved to a new "Integration" menu option.
Updated copy logic so "Copy of" is only prepended when the name and integration have not been changed by the user or the copy process.
Minor label update to show that ${code}
and {code}
are valid in the Message path field for running inline code.
Executing a Poller in Designer will now open the new Poll Request.
Unifi has always used POST
as the default REST method when no method has been specified on a Message by the user. This value is now set by default for REST integrations so it is explicitly defined and easy to see.
A new cascading job has been introduced to cleanup Snapshot records.
ServiceNow have deprecated async business rule with the introduction of new async processing. All Unifi async rules have been updated to use the new version.
Best practice in Unifi is to turn off unnecessary logging and payload storage in Production since these are generally only necessary in development. A new diagnostic check has been added to find active pollers belonging to active integrations in a production instance which have the Attach response payload
flag set as true. The recommendation is that this flag is disabled for Production instances.
Unifi now stores 30 recent items that have been viewed in Designer for each user so they can be accessed easily. These are accessed through a new icon and menu system which has been added on the top-right of Designer.
Unifi Diagnostic has been fully updated with new diagnostic tests, updated messages, and the ability for many issues to be fixed at the click of a button.
Forms now render much faster in Designer, in many cases almost immediately, with fewer round trips to the server and less work for the server to do.
Introduced the new Dataset feature to allow mass data import and export within Unifi.
A new Message type called Dataset has been added to support Dataset processing. Dataset messages are not processed by Unifi trigger rules.
Datasets are packaged with integrations for export.
Payload to Stage and Stage to Request scripts now have access to a new variable called query
. This is a key-value object that represents the search query parameters in the URL and operates in the same way as the headers
object. It can be used to read query parameter values inbound and write them outbound. When writing outbound in the Stage to Request script, the query object will be compiled and automatically added to the search query of the URL.
It is now much easier to select one script when editing message scripts in Designer. The menu bar has been updated, with a new "Only" option being added to Scripts shown in the "Change view" menu.
Integration is now always shown in Response Action and Event Action lists, making it easier to distinguish between integration specific and Unifi specific records.
A Bond is now set to an Error state when the current Transaction gets set to the Timed Out state, reflecting the fact that no more Transactions can be processed until the current one has been addressed.
Introduced a new rule to prevent more than one Heartbeat message being active at one time.
Fixed a bug that occured when copying a field map in the Designer portal. The request would hang and the system would be blocked. The only way to resume things was to manually call cancel_my_transaction.do. This was caused by a scope issue with Field Maps, Response Actions and Event Actions; they now have their scope set automatically to be the same as the integration scope.
The embedded list of fields on a message in Designer now shows all integration level fields, not just those that specify a table.
Creating a new record in Designer using a modal will now always have default values reset.
Added caching support for new records so the user does not need to wait for a full form load from the server in order to create a new record.
Fixed a bug where fields were not being checked for readonly.
Field name changes are now inherited by all child fields.
If a field has a map to the payload containing a reserved word, e.g. class, then the script will fail silently and no error will show in the ActivityLog. Since ServiceNow basically ignores any issues with scripts wherever possible and just stops working when it cannot, a new diagnostic test has been added to ensure that message scripts pass Javascript validation tests.
Fixed a bug with Activity Log rendering so it shows the user that created the Activity Log instead of the user viewing it.
Fixed notifications and other display issues introduced with form caching by adding manual support for display business rules.
Fixed an issue when creating a new Process where the corresponding REST service details are not automatically populated meaning they would not be packaged.
In newer versions of ServiceNow, several customers have reporting that they very rarely see an issue with an empty bond which ends up stopping the transactions from flowing. This was not an issue until the introduction of the new async business rule processing which executes rules almost immediately. Previous inherent latency with event processing meant the issue was entirely hidden and therefore not a problem. New logic has been added which checks for the bond before the transaction is allowed to move into the processing phase.
Since the current user inserted the new request, ServiceNow executes the request replay as that user. This is fixed with the use of user impersonation for executing the request as it was originally and is supported by the latest version of Unifi Global Utility.
Systems using bidirectional asynchronous integrations between two ServiceNow instances where both instances are using OAuth 2.0 can experience connection problems with receipt processing. This is fixed with the use of user impersonation when sending the receipt and is supported by the latest version of Unifi Global Utility.
Removed the log section . The integration is "TXN0000098040.01".
as the integration and transaction number are already mentioned.
Resuming the integration now sets the status to "Awaiting". Once a transaction completes, the integration is set to "Up".
Since the deprecation of the integration attach logs
debug feature, successful poll requests no longer have responses stored as attachments. A new field called Attach response payload
has been added to the Poller and this is what now controls the payloads.
Fixed an issue where records in a hierarchy (e.g. CMDB) that have been updated on the root table would create bonds for the root table record instead of using the existing bond on the extended table record.
Fixed navigation in Designer so that the browser history is better maintained.
Fixed an issue where strings were being compared to numbers which would prevent the triage condition from working.
In a previous release, Unifi introduced auth header masking on the HTTP Request. While intended only for inbound requests, it was a blanket mask since there should never be any auth headers stored. However, we have since found out that there are some custom auth solutions which manually add the auth header which would then be masked by Unifi and break the integration. This release fixes this issue so custom outbound auth headers are allowed.
When an error is thrown in an inbound Payload to Stage script for a synchronous message, the system still attempts to identify the bond reference and the HTTP Request is marked as OK even though an error has occured. With this update, the original logic is used by default (since fixing this would be a breaking change for all customers using synchronous messaging), but the new logic that exits when an error occurs can be used by setting request.$abort_process_with_request_error = true;
on the payload to stage message script. This will cause the request to exit and prevent further inbound sync logic from running.
Fixed attachment errors so that options.type == "error"
making it more easily recognisable by the Integration feedback script.
Added a check to prevent this issue from occuring.
Some instances of ServiceNow handle UI Script URL's differently, with inline forward slashes working most of the time, but not all the time. This means the UI Script x_snd_eb.keymap/sublime.min.js
may not load and this would prevent scripts from loading. The issue has been fixed by changing the slash to a dot: x_snd_eb.keymap.sublime.min.js
.
Fixed an issue with internal configuration not being updated so the custom stage table was not known.
ServiceNow have introduced a new URL flag to Service Portal which causes the URL to be rewritten after it's been requested, meaning it essentially does a double load. The issue has been fixed by manually adding the flag before ServiceNow does.
Fixed by checking for the second parameter before using it.
Unifi Designer displays the name of the instance in the header bar, but this looks terrible for instances that have HTML in the instance name. HTML is now stripped from the instance name in Designer so it renders nicely.
Fixed the company table reference so that the links work properly in the operations dashboard.
Fixed a bug with field level ACLs so they render correctly in Designer. The field order cannot be written to when it is an inherited field.
Added a semi-colon to the checkpoint definition in automatically generated Message Scripts. The script is updated when it is next built.
Fixed Designer so full screen mode in script editors now renders nicely.
Added support for GlideTime fields in Designer which are not natively supported in Service Portal. This allows Pollers and Datasets to use proper scheduling.
Fixed an issue in Designer where target link generation would still occur even if there was no sys_id on the reference.
Fixed invalid CSS in the Activity Log renderer.
Added manual display rule support so that forms can be rendered quickly using caching but new values are still populated as expected.
Fields now use the Message table if related to a Message, otherwise they will default to the Process table.
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
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.