Below is a list of changes that you can explore right now by activating the BRIX trial version. After May 16, 2024, all changes will be available to our clients in their active companies. Please note that the list may be expanded after the release.
Event handler
TEAM-26036 A new flag has been added to the event subscription options in scripts:
await System.events.subscribe().onAppItemUpdate(Context.fields.app.app, handler, {
deduplication: true, // New flag
}).all();
The logic of the flag is as follows:
- If the flag is enabled, only unique events will be sent to the handler. If
buffered > 1
, the handler will not trigger until the specified number of unique events accumulates in the buffer. For example, if the same entity is updated multiple times, the event will not fire. - Exception to point 1: When values are specified for debounce along with
debounceAsTimer = true
, the handler will be called at the period specified indebounce
milliseconds, but only unique values will be passed to the handler. - When the flag
deduplication = false
(the default value), subscriptions will function as they did before.
Caching in IndexedDB
TEAM-26369 A new, faster caching provider for IndexedDB has been connected. This has improved system performance, especially when loading in a new tab.
As a result, after the system update and when working with multiple tabs, you may need to reopen or close the tabs with BRIX to transition them all to the new version. A message about this will appear at the top of the screen in a red banner.
FCM protocol (push notifications)
TEAM-23746 The Firebase Cloud Messaging service for sending push notifications to mobile devices has changed its interaction protocol.
The old protocol will cease to function in June 2024: https://firebase.google.com/docs/cloud-messaging/http-server-ref.
Support for the new protocol has been implemented in the system.
Document management
- TEAM-20457 Access to restoring an approval sheet from the archive is now restricted. Only users with editing rights can perform this action.
- TEAM-21658 The file version management mechanism in the file storage has been improved. New versions are no longer created when the same file is moved between different items while retaining its ID.
- TEAM-24080 Added the ability for each user to determine whether tasks for system processes of sending files and items for information and for approval should be scheduled in the calendar. This feature helps avoid overloading the executor’s calendar with numerous tasks related to frequent approval and review tasks.
- TEAM-25055 A link to the file’s folder has been added to the review task. It is displayed in the file information section, providing convenient access to the folder directly from the task, simplifying navigation and document management.
- TEAM-25409 Date parameters have been added to the
manualRegister
andregister
methods, allowing users to specify the document’s registration date. This change provides users with greater flexibility, which is important for documents requiring backdated registration. This way, users can manage document registration and archiving processes according to specific business requirements. - TEAM-25573 When changing the list of excluded fields, a warning is now shown to the user if the function to start the process on the Actions tab during archiving is activated. This prevents cases where changes in settings could unintentionally block the initiation of necessary business processes.
- TEAM-26057 In the file editing mode, a new button has been added that allows users to close the file editing window without returning to the file preview.
Web documents
- TEAM-23719 A new file type called Web Document has been added. Files of this type have the extension .web365. The content of the file is represented by HTML markup.
- The same operations can be performed on web documents in the system as with regular text files.
- An integrated editor is used for creating and editing web documents. Web documents can also be uploaded from user devices. Versioning is supported.
- To create a web document, go to the Files workspace, click the Create button, and select Web Document from the menu that appears.
- To edit a file, open its preview in the workspace.
- TEAM-23720 Added functionality to pin a web document to a folder. The content of the pinned document can be displayed either above or below the folder’s content list.
- A new item, Link to Web Document, has been added to the folder’s context menu settings. Clicking on it opens a window for pinning the document.
Widgets
TEAM-23715 A new widget has been added for app forms, displaying a list of folders accessible to the user that contain links to the current app item. The widget is called List of directories with an link to the app. The widget allows users to:
- Navigate to the folder with a link to the app by clicking the folder name in the list.
- Move and delete links if the user has editing rights for the folder.
- Add new links.
For more compact display (e. g., in a sidebar), you can enable compact link display in the widget settings.
CRM
TEAM-24897 All CRM settings have been replicated in the Administration workspace for ease of search and initial parameter setup.
API
TEAM-22773 Implemented API for the Document categorization workspace. Now it is possible to work with Document categorization through the system’s API. The following functions are available:
- Edit a Document categorization folder.
- Change a folder’s category or office.
- Retrieve a list of categories and offices.
- Create a category or office.
- Create a Document categorization folder.
Projects
- TEAM-24220 Viewing rights for the project folder are now granted to all project participants when the project plan is published.
- TEAM-26216 When a task in the Project board widget is moved to the Completed status, the completion progress is automatically set to 100%, just as it is in the Project Tasks app.
- TEAM-26956 When a user enters the project plan editing mode, the Gantt chart widget automatically expands to full screen. This provides more space without the need for additional actions and reduces the likelihood of accidentally closing the form by clicking outside the window.
Service
TEAM-26016 Improved the system’s behavior when assigning a session to the least loaded operator in a group. Now:
- When multiple operators have the same number of sessions but different statuses (online/offline), the first operator with an online status is automatically selected. If all users in the selected group are offline, this rule is not applied.
- If the user with the least number of sessions is offline, the system moves to the next least loaded user who is be online. If there are no such users, the rule is also skipped.
User substitutions
It is now possible to create user absences without specifying a substitute user in Administration > Substitutions by selecting the type Inform. The absence is displayed in chat lists, information windows, and on the pages of the Company workspace, and the system automatically fills the Substitute field with the value Absent to maintain functionality.
Object-based activity stream
A new feature, Object-based activity stream, has been added. It provides a convenient format for viewing messages related to various system objects, such as app items, tasks, and files. To activate it, you need to enable the enableFeedByTargets
flag. The activity stream settings are available at both the company level and individually for each user. If the feature is enabled, the content in the Messages workspace will be distributed across three tabs:
- Chats. This tab contains chats and channels.
- Activity Stream. Displays aggregated messages and associated activity streams.
- Featured. A list of the user’s starred messages.
For each object that a user is subscribed to or mentioned in, there is a list with a separate counter for unread messages. Users can view the full activity stream of the object, comment, send new messages, and manage the visibility of objects in the list using the context menu.
Mapping of data from AD to the Employees app
A new setting for the Employees app allows the mapping of data from Active Directory (AD). Users can configure the correspondence of AD attributes with fields in the Employees app, including data types such as String, Number, Yes/No switch, and Date/time. For each server, the mapping configuration is performed individually through the AD module in the server settings, where you can add and configure attribute parameters.
When importing users, if the functions for automatic creation and updating of employees are activated, the mapped attributes are automatically transferred to the app. Disabling the update function stops this process. Changes in the mapping settings or deletion of parameters in AD may affect the relevance of data in the Employees app.
Mapping features include mismatches between data types in AD and the app, which can limit mapping capabilities for certain attributes. For example, it you attempt to write a numeric AD attribute to a String field in the app, data will not be transferred.
Apps
- TEAM-25644 Implemented a 5-second lockout on an app menu item to prevent repeated clicks.
- TEAM-25850 Implemented data export and import for the Image type, functioning similarly to the File type.
Bugs fixed
- TEAM-26819 A bug was found that prevented the selection of dynamic segments when creating an email campaign. The issue manifested when trying to select a created dynamic segment on the email campaign creation form and when the email campaign Create button was missing on the dynamic segment viewing page. This error has been fixed.
- TEAM-24698 The error that caused some users to not see the Files workspace in Administration has been successfully fixed.
- TEAM-25804 An error was found and fixed where clicking on the name of the file version author redirected users to the homepage. Now, clicking on the author correctly triggers a pop-up window with their information, as intended.
- TEAM-26001 The problem with incorrect generation of multiple nested tables has been successfully resolved. The bug appeared in the template engine when generating PDFs, where table values were sometimes incorrectly selected due to a parsing error in the conditions.
- TEAM-26058 A bug that prevented access to some key menu fields immediately after uploading a file has been successfully fixed. The issue affected context menu items, including Manage Access and Rename, as well as some user interface elements when viewing the file, such as displaying the file name and the Edit button.
- TEAM-26064 The error in the execution of the
createFromLink()
method for HTML files has been found and fixed. The problem occurred when using this method in a script and manifested when attempting to create an HTML file via a link. Corresponding changes have been made to resolve the issue, and thecreateFromLink()
method now correctly handles HTML files without triggering an error.
- TEAM-26317 Corrected the naming of link copying options in the Files workspace. Previously, users could encounter confusion due to identical names and icons for two different functions: creating a shortcut link for a file and copying a link to download the file. Now, the options are distinguishable: for creating a shortcut link in the context menu, the name has been changed to Create Shortcut and the icon updated, and a +Paste shortcut button has been added for inserting the shortcut into the file list.
- TEAM-26318 Changes have been made to the name of an option in the Files workspace. The existing option App in the Create menu could mislead users since it actually created an app item rather than the app itself. The name of this option has been changed to + App Item, which more accurately reflects its functionality and eliminates confusion among users, making the interface easier to understand and use.
- TEAM-26332 A bug in watermark settings in documents has been fixed. Previously, when the Display a watermark in preview mode option was enabled, the watermark was incorrectly displayed on the preview of unsigned documents. This update fixes this issue: the watermark is now only visible on documents with signature attributes.
- TEAM-26488 A bug related to the non-application of custom style files when the
advancedSecurity
flag is activated has been discovered and fixed. When this flag was activated and a style file was added in Administration > Theme settings, refreshing the page did not apply the styles, and the API requestapi/settings/global/theme/custom-style
returned a status of 302 instead of the expected 200. - TEAM-26489 The issue with exporting workspaces and solutions containing document templates when the
advancedSecurity
flag is enabled has been successfully resolved. Previously, when attempting to export a workspace with document templates, the process failed with an error related to the inability to retrieve the file body by its ID, resulting in an internal server error. - TEAM-26179 EQL queries of the form
COUNT(FROM [someNs.someApp] WHERE PARENT.[__id] in [someField]) > 0
did not work if the type of thesomeFields
field was App (One). The error has been fixed. - TEAM-26703 If whether a fields should be visible or required was defined using a Yes/No switch variable did not apply the specified settings if the value of the Yes/No switch field was dynamically set by a script. The error has been fixed.
- TEAM-5569 Scheduled process execution has been restricted for deleted and inactive licensed apps/workspaces/solutions.
- TEAM-19769 Fixed an issue where users with Process Management permissions could not reassign tasks.
- TEAM-22587 Resolved an issue related to incorrect permissions distribution when launching subprocesses en masse through app items. The bug occurred when permissions for app items were granted to task performers, even if these items were not specified on the task form. Now, permissions are correctly restricted only to those items explicitly mentioned in the task, eliminating unauthorized access.
- TEAM-23134 An error preventing the export of status for Report app items to a file has been identified and fixed. This bug caused the Status column to remain empty when attempting to export a report to a file, despite the presence of statuses in the original app.
- TEAM-24511 Discovered and fixed a bug causing task forms to hang when a filter by items was used in the app. The issue was that after performing any action on the task form (e.g., clicking the Done or Cancel buttons), the form did not automatically close, requiring the user to manually refresh the page.
- TEAM-25177 Discovered and successfully resolved an error related to resetting saved filters in the Tasks workspace. Previously, after opening a task through a set filter, the task list automatically switched back to My tasks, resetting all active filters. This made mass task management difficult and increased the time required to process tasks. Now, filter settings remain saved after returning to the task list.
- TEAM-25473 Identified a problem where the error monitor interface was incorrectly displayed, occupying only half of the screen, making it difficult to fully view and analyze error information. The error has been rectified.
- TEAM-25594 Fixed an error that occurred when executing users type queries like
https://<company>/api/apps/<namespace>/<app>/items/<uuid>/permissions/assign/users
in the browser. - TEAM-26819 Discovered and fixed an issue related to the inability to select dynamic segments when creating email campaign in CRM integration modules. Prior to the fix, users could not select dynamic subscriber segments on the email campaign creation form, and there was no button to create an email campaign on the dynamic segment view page. Now, this functionality has been added.
- TEAM-24660 In rare cases, the execution schema in scripts was formed incorrectly, resulting in errors like: “Cannot read property *** of undefined”. We have identified possible issues, and now the schema should always be formed correctly.
- TEAM-24715 Identified an error where service messages were not delivered to external portal users. Now, system notifications (task assignment notifications, etc.) are sent to portal users’ emails.
- TEAM-25299 Sometimes the
getTemplate()
method did not work in process instance scripts. This behavior has been corrected. - TEAM-25326 Discovered and fixed an error related to the non-functionality of the
Imports
global constant in a script when debugging a function in a business process. The problem was the inability to access another workspace’sNamespace
throughImports
in function debugging mode. The bug occurred when theallowScriptImportsDependencies
flag was enabled.
- TEAM-26003 We discovered behavior where in the response to an API request with
form-data
, thebody
field was empty, and thebodyBuffer
field with an array of bytes was missing. Now, ifform-data
is passed in the body of the request to the API module, it will automatically be converted into an object of the typeFormData
. That is, the body field of the input argument request will be of typeFormData
. Example:
const contentType = req.headers ? req.headers["Content-Type"] : null;
if (contentType && contentType === "multipart/form-data") {
const fd = req.body as FormData;
const file = fd.get('file');
...
} else {
...
}
- TEAM-26124 In some situations, the script execution service (worker) incorrectly handled disconnections from the queue (RabbitMQ), causing server scripts in the system to hang with a timeout. We have completely updated this part of the service, and now the connection should always be restored correctly.
- TEAM-26215 The method
/pub/v1/scheme/namespaces/_clients/apps/_companies
was returning a 500 error. Now the method executes correctly. - TEAM-26417 The left sidebar in the Administration workspace now always displays for the Performance Report and Low-code CI / CD sections.
- TEAM-26674 Sometimes, when starting a process from a script, an error could occur: “TypeError: Converting circular structure to JSON”. This error occurred when a full object was passed in the context of the process.
await Application.processes.gentasksforlead.run({
lid: Context.data.lead,
}); // <------------ Error
We have extensively reworked the type and data system of the TS SDK, now all classes implement the standard toJSON
method which allows them to be serialized using JSON.stringify
and transmitted as data in server requests.
- TEAM-26716 We discovered and fixed a bug that occurred when trying to publish a business process activity with a table containing a column of the Category type marked as input and required.
- TEAM-26940 When creating an app with fields of the Users type, subtype One or Several, and setting access rights for editing these fields, the
hasPermission
method could fail with an “internal error” message if these fields contained null values or were absent from the object model of the app item. The behavior has been corrected. - TEAM-27097 A bug with the TSSDK
getLocale()
method was discovered and fixed, which occurred when opening a form after publication. An error “Method Not Allowed” appeared when trying to call this method. - TEAM-27671 An error was discovered where tasks were not displayed on the external portal in the My tasks widget after creating a business process with multiple swimlanes. The reason was the incorrect determination of the performer in the External Users swimlane. The problem has been fixed.
- TEAM-24967 It was discovered that in the registration cancellation window, the Registration Number field was displayed even when the document had not yet been registered. The bug has been fixed.
- TEAM-25261 Improved document display in the mobile application. When viewing a document from a mobile device, the viewing window now has a larger height than before.
- TEAM-26035 When creating an app item using the TS SDK, the File field stored with an empty array instead of null. Consequently, when subsequently uploading a file to the app item, the file was treated as newly uploaded rather than existing, resulting in it being assigned a new folder, and the existing one being reset. Now the file folder remains unchanged, meaning it does not automatically disappear from the Files workspace.
- TEAM-26059 Minor UI improvements for working with files:
- The Edit button does not disappear when switching to the current version.
- The window does not close when canceling file deletion.
- The full-screen mode button works for all formats.
- TEAM-26075 It was found that the registration date in the widget changed when the registration number was modified. The error has been corrected.
- TEAM-26092 Increased stability of the registration task form.
- TEAM-26142 It was discovered that not all folder permission objects in the hierarchical directory were being exported with the configuration. The issue has been resolved.
- TEAM-26526 When sequentially approving with a specified deadline, events were not created in the calendar for the second and subsequent users. The issue has been fixed.
- TEAM-26541 Now, the rights to create a file version in an app are granted if the user has access to create or edit the app. Previously, rights to create a version were only granted if the user had rights to create an item in the app.
- TEAM-26723 An error was discovered related to incorrect system behavior when a user did not have access to an app item but needed to review it. The issue manifested in tasks not proceeding based on the condition “No access to the app item”. The behavior has been corrected.
- TEAM-26730 Notification added when downloading an approval sheet or list of informed users if the user does not have access to one of the attached files.
- TEAM-26802 Added a notification about the inability to create a copy of a file in an inaccessible folder.
- TEAM-26885 A bug was identified where, after deleting a file from the form, attempting to upload the same file again did not result in its upload. No errors were displayed during this process. The issue has been resolved.
- TEAM-24987 A check has been added during the project plan publication process to verify the presence of users in the Project Supervisor and Employees who have permission to edit. They are added to the Project Participants field. In previous versions, when publishing a project plan, the value of the Project Participants field changed only according to participation in project tasks.
- TEAM-26326 Incorrect notifications were previously displayed when changing estimated dates for project plan items. The issue has been fixed.
- TEAM-14968 The mechanism for launching processes from the project calendar plan has been improved. Stability has been increased in the cloud editions of the system. It is now possible to use tasks with the Process type in various combinations and associations with regular tasks.
- TEAM-26181 Renamed the Projects page (
_project_list_page
) to Project register, which more accurately reflects the purpose of the page in the functionality of the workspace. - TEAM-26534 For unpublished project plans, launching a business process from the view forms of tasks with the Process type is no longer possible.
- TEAM-25858 A deficiency related to message display in the internal chat has been addressed. Now, if the Operator’s name — Show setting is activated in the live chat settings, the author of system messages will be System. If this setting is turned off, system messages, including those configured in the routing rule, will be displayed under the operator’s name.
- TEAM-26190 An error has been fixed where a session was not created in the inbox channel if the email body or attachment exceeded 3 MB. The maximum message body size has now been increased to 16 MB. When embedding images directly into the email text, their maximum size is approximately 12 MB, as base64‑encoded data takes up 33% more space than their original size. The attachment size limit for a message is now only restricted by the mail server settings, typically up to 20 MB.
- TEAM-26736 Fixed an error that prevented changes from being saved in a copy of the routing rule during its initial editing after creation. Now, when creating a copy of an existing rule, all changes made are correctly saved.
- TEAM-27572 Fixed an error causing periodic disconnection of communication channels without apparent reasons.
- TEAM-17872 Message sending to channels has been brought in line with chat behavior:
- Instant reaction upon sending.
- A clock icon is displayed while the message is being sent.
- If an error occurs, the message will be highlighted in red, and a resend option will be available.
- TEAM-24693 A bug related to the non-population of the App type field in dependent fields when creating and saving instances has been successfully fixed. The issue occurred when creating app 1 with a dependent app 2 field, which in turn had an App 3 field. When saving app 1 and app 2, the App 3 field was not saved.
- TEAM-25367 The bug with adding a portal user with OAuth data on a new platform has been fixed. The issue occurred when attempting to create a user with an already existing email in another company using the
addWithoutConfirmation
orcreateWithAuthData
methods, resulting in an “email-already-exists” error. According to the system’s logic, the new user should be added without conflicts, despite using the same email in different companies. Now, the user can be added to any company within the same cluster and correctly authenticate using their OAuth data. - TEAM-25812 Fixed an error on the authentication form: previously, if an unauthorized user quickly logged into the system, the page would hang due to the automatic logout function being called. Automatic logout no longer occurs, and the form works correctly.
- TEAM-26095 Fixed a bug related to selecting and deleting an organizational structure element in process settings. Previously, the element was not inserted into the field after selection and was not deleted when clicking on the cross icon. Now, the functionality works correctly.
- TEAM-26439 Fixed a bug where the modal window did not close after editing an app item. The issue occurred when using a filter and full-text search. Now, the modal window closes correctly.
- TEAM-27053 Fixed an error in the version where created events in an Event type app were not always displayed in participants’ calendars. The problem was related to incorrect caching after creating the first event. Now, all events are correctly displayed in participants’ calendars without the need to reload the page.