New releases > ELMA365 SaaS / 2022.8



  1. TEAM-8840 We set a time limit for storing emails that are not linked to any object in order to free disk space. For the On-Premises version, you can disable this feature and not delete such emails when the limit is reached.
  2. TEAM-9580 We added the Reply to All button to the email page. It adds the addresses of all the recipients mentioned in the previous messages to the To field. This button is displayed if there are two or more addresses specified in the To field, or there are additional recipients specified in the Copy.
  3. TEAM-9773 We added a function to calculate the number of emails marked as unread not only in Inbox but also in My folders.
  4. The counter shown next to the Email workspace icon shows the total number of unread emails. For reach folder created within My folders, the total number of emails and the number of unread emails in the folder is shown.
  5. TEAM-9782 We added the Empty Trash button for deleting all the email from Trash. Emails that are linked to apps are not deleted so that the entire history is saved. If you still need to delete such an email, you first need to deactivate the link between the email and the app item, and then empty the trash.
  6. TEAM-10961 You can now move emails between folders, for example, from Inbox to one of My folders.
  7. TEAM-11798 You can now save the settings of the corporate email service to make it easier to connect personal email accounts. The connection ports are specified by the administrator just once. Users can then connect their emails without having to configure any connection parameters.



  1. TEAM-10852 To the purpose of payment, we added settings for purpose of payment for expenses. Just like you select apps to be used as a purpose of payment, you can now select apps that expenses will be linked to. This is set up on the Purpose of Payment settings page which you can open by clicking the gear icon in the Finances workspace.
  2. TEAM-11015 For cases when a company has several apps acting as purpose of payment, we improved the Incoming Payments widget so that it shows incoming payments linked to different purposes of payment on the same page. For example, some payments are linked to Contracts, others to Deals or Projects. However, you want to see all of them on the page of the Counterparty app item. To implement this behavior, select additional purposes of payment in the Incoming Payment widget's settings by selecting them from the app's context. The widget will then display all the payments linked to the current purpose of payment and to the additional ones. Here you can also enable or disable the display of incoming payments by additional purposes of payment. Please note that additional purposes of payment must be enabled in the purpose of payment settings in the Finances workspace.
  3. TEAM-11829 In the Incoming Payments widget you can now create a custom header or remove it completely, as will as hide the +Incoming Payment button if necessary.


CRM activities


  1. TEAM-11779 When moving the CRM activities on the kanban board, there is now a field available for a comment.


External portal users


  1. TEAM-10259 Providing access to the company's employees is an important part of working with the external portal. The company might already have an authentication server and domain where all the employees are registered. You can synchronize you external portal users and the domain server. You can also enable users to login with the domain details.
    In this release we made such authentication possible for external users, too. Now in authentication settings of the portal you can specify the AD or LDAP server to be used to log in users. Also we added settings to the AD and LDAP integration modules where you can specify separate filters for external user search.
    Just like for internal users, you can import and synchronize the profiles of external users from the domain server. Also, you can set up several servers for integration and import users from them. In this case you will not need to invite users to the portal and they will not need to go through the invitation procedure.
  2. TEAM-11709 We improved the integration module settings. External users can now use SAML for a single sign on.  Just as for internal users, on first SAML authentication you can create a profile for an external user, if there are free licenses available. 
  3. TEAM-11903 Internal users con now use a second authentication factor (2FA) on the portal. SMS and email are available for authentication.


Company settings


  1. TEAM-8784 Instead of the standard ELMA365 logo shown in the browser tab you can now use a custom logo (favicon). This is set up in Administration Settings Theme.




  1. TEAM-1622 You can now create periodic events in the system calendar.
  2. TEAM-10369 When specifying the start and end of an event in the calendar, you can now select the month and year from the drop-down list.


Import of widgets


  1. TEAM-10659 Earlier it was impossible to upload custom pages with widgets to the system if they were exported from different workplaces, for example, from CRM and System apps. We have made this possible for newly created pages. Such export and import is still unavailable for older pages. In the next release we are planning to make it possible to transfer widgets so that you do not need to create such pages repeatedly but instead just transfer the widgets.


Access permissions


  1. TEAM-11020 When configuring access to app items, you can now select variables of the Role type in the Item property option.




  1. TEAM-11097 We improved the performance of the advanced mode for editing app forms when there are many variables in use.




  1. TEAM-11725 Paying for licenses with a card in now unavailable for the cluster. Instead, you can use the Contact us button to request a phone call or send an email.




  1. We added the [[serials.getByNamespace] method for getting counters by namespace.

Example of getting a list of counters for document categorization:

const serials = await System.serials.getByNamespace(“categorization”) for (const serial of serials) { // logic }

Example of getting a counter for an app:

const namespace = const code = const serials = await System.serials.getByNamespace(namespace+“.”+code) for (const serial of serials) { // logic }

  1. TEAM-11041 We implemented a method for getting settings from an app with deleted fields excluded from approval.
  • signature.excludeFields — array of strings with codes of fields excluded from signing.
  • signature.excludeSystemFields — attribute of system fields excluded from signing (yes/no).
  • docflow.excludeFields — array of strings with codes of fields excluded from approval.
  • docflow.excludeSystemFields — attribute of system fields excluded from approval (yes/no).
  • docflow.excludeAllFields — attribute of excluding all fields from approval (yes/no).

Approval settings determine how an approval sheet is archived when app fields are changes.


  1. TEAM-11929 The NCA 365 module now presents data of the registration certificate that was used for signing.

To receive the data cal the [[EntitySign.getDetails]] method. It allows getting details of the signature:

  • type — signature type.
  • status — signature status.
  • createdBy — signer.
  • signDate — date signed.
  • signValidUntilAt — signature expiration date.
  • certValidUntilAt — certificate expiration date.
  • certSerialNumber — certificate number.
  • commonName — certificate name.
  • subject — information about the recipient of the certificate. This field stores an object that contains information extracted from the certificate. Base and additional fields are extracted. The following base certificate fields are recognized: C, O, OU, CN, SERIALNUMBER, L, ST, STREET, POSTALCODE as well as additional fields stored in the certificate according to RFC 2253. The attributes that do not belong to the list of base fields are not encoded as hex.
  • issuer — information about the issuer of the certificate. This field stores an object that contains information extracted from the certificate. Base and additional fields are extracted. The structure is similar to that of the subject field.


Document approval

  1. TEAM-10855 You can now quickly approve a document using the new task notification sent to your email. When a document type app is sent for approval via email, the version file is attached to the email message. This is set up in the user profile. When enabling sending notifications about new tasks to the email you can also enable approval via email.
  2. TEAM-10737 In the Send for approval system process, the Approver field is now required. You cannot start the process without specifying the users who are supposed to review and approve the document.
  3. TEAM-11401 In approval settings, you can now exclude all the app fields from the approval sheet hash. When fields are deleted or new fields are added, the approval sheets will not be archived.
  4. TEAM-11952 You can now cancel archiving the approval sheet when approving a package of documents.
  5. TEAM-11954 You can now cancel archiving the approval sheet of a file when the file is modified.
  6. TEAM-11864 When sending a Document-type app item for approval via email, the file version is attached to the email.


Document registration


  1. TEAM-8428 You can reset numbers withing an office once a day, week, month or year. You can also specify the number or periods in which numbering will be reset.




  1. TEAM-11847 We improved the settings menu of the Diadoc module. In the business process section, you can add only one line of settings for an incoming package.
  2. TEAM-8553 In the mapping settings for Diadoc attributes we added 8 new non-required fields: TIN, KPP, Name and ID of participants for contractor and supplier.


Document packages


  1. TEAM-9394 Document packages can now be displayed on view forms.




  1. TEAM-11477 You can now delete the default app from a contract's settings.


Live Chats


  1. TEAM-10302 When connecting a Telegram bot to a live chat, the bot's name is now shown in the pop-up with details.
  2. TEAM-11688 We modified the menu of the Live Chats workspace: added new reports and buttons.


Bugs fixed


  1. TEAM-4722 We deleted the number  field in Diadoc settings.
  2. TEAM-8200 Files in search results are shown with regard to access permissions.
  3. TEAM-10281 Now when a user tries to complete a task to edit an app item that they have no access to, 403 Forbidden is shown.
  4. TEAM-10443 We added a description of the error that might appear when updating a solution with invalid forms.
  5. TEAM-10881 We fixed the approval logic. New fields in the app are added to the list of exceptions. This means that the approval sheet is not automatically archived. If a field is deleted, the list of exceptions does not change, but the field is hidden from the list and keeps its value. If exceptions are enabled only for system fields, when a new field is added, the approval sheet is archived because this new field is not added to exceptions.
  6. TEAM-11039 An external user can now create an app item with a file from another workspace.
  7. TEAM-11219 We fixed saving approval settings in the Approval business process activity.
  8. TEAM-11300 We fixed the bug that wouldn't allow sending an arbitrary app variable to a nested process.
  9. TEAM-11719 In document categorization settings, the number can be edited on the same form as other data. Earlier is was done on the Set next number form.
  10.  TEAM-11811 Non-required attributes of Diadoc documents can now be mapped in Diadoc integration settings.
  11.  TEAM-11991 We added handling of empty values in internal data structures.
  12.  TEAM-5332 We fixed the bug that wouldn't show in a session that an app was deleted in the live chat settings.
  13.  TEAM-8423 We fixed how files are opened in СhatDesk.
  14.  TEAM-10090 The prompter pop-up no longer disappears.
  15.  TEAM-10401 СhatDesk metrics are now calculated correctly. We fixed the following:
  • Response time.
  • Maximum wait time.
  • Average first response time.
  • Efficiency.
  • Average session duration.
  • Number of requests processed over a period.
  • Percentage of bot replies.
  1.  TEAM-11739 We fixed the following behavior: when a user specified as a participant of a Meeting or Webinar CRM activity clicks on the corresponding calendar event, the page of the app item related to the activity opens. If the user has no access to the app item, a notification is shown. 
  2.  TEAM-7569 Images from a module's description are now imported correctly.
  3.  TEAM-9115 We modified some metrics of script execution. It will be useful to those who configure monitoring charts in On-Premises.
  • The worker_execution_system_errors_total metric now stores only the internal logic errors of worker.
  • Added metrics:
  • unknown execution errors (user scripts, tssdk, external services) worker_execution_unknown_errors_total.
  • compilation timeouts worker_compilation_timeout_errors_total.
  • compilation system errors worker_compilation_system_errors_total.
  • metric name re-factoring:
  • we added the worker prefix.

List of worker metrics:

  • compilation_scripts_total -> worker_compilation_scripts_total
  • execute_scripts_total -> worker_execute_scripts_total
  • compilation_errors_total -> worker_compilation_errors_total
  • worker_compilation_timeout_errors_total (new)
  • execution_timeout_errors_total -> worker_execution_timeout_errors_total
  • worker_compilation_system_errors_total (new)
  • execution_system_errors_total -> worker_execution_system_errors_total
  • worker_execution_unknown_errors_total (new)
  • active_scripts_total -> worker_active_scripts_total
  • script_compile_time_histogram -> worker_script_compile_time_histogram
  • script_execution_time_histogram -> worker_script_execution_time_histogram
  • script_execution_cpu_histogram -> worker_script_execution_cpu_histogram
  • script_execution_memory_histogram -> worker_script_execution_memory_histogram
  • worker_forks_total (not changed)
  • worker_script_execution_inactive_company_total (not changed)
  • worker_script_compile_inactive_company_total (not changed)


We recommend paying attention to system error metrics (worker_compilation_system_errors_total, worker_execution_system_errors_total), because they mean that the service is working incorrectly.

A sudden increase in the worker_execution_unknown_errors_total metric is a signal about errors in other services or in script code.


  1. TEAM-10475 When a user accepts an invitation to the portal, the browser doesn't refresh the page and instead shows the portal starting page. This has significantly reduced the time a user needs to enter the portal for the first time when being invited.
  2.  TEAM-11586 We fixed the debugging error.
  3.  TEAM-11803 The url property in a page collection returns the relative address of the portal page, and the browser creates a link taking into account the current address. This is especially useful to those who used a separate external address for the portal.
  4.  TEAM-11939 We fixed the HttpStatusCode enumeration in TS SDK.
  5.  TEAM-11271 We fixed the incorrect on-click operation of the entry field for changing a widget's name.
  6.  TEAM-11536 Previously, if the Code widget was added to the canvas in the interface designer, moving widgets around the canvas didn't work correctly. This has been fixed.
  7.  TEAM-11574 The Attachment not found error could previously appear when opening an attachment of a sent email. This has been fixed. The attached file can now be previewed.
  8.  TEAM-11599 We fixed the error that appeared when opening the Select reason pop-up if changing the deal status to Lost.
  9.  TEAM-3973 We fixed the following behavior:
    If a business process was linked to a pipeline stage, it wouldn't run if there was no executor specified. For instance, running a process on the New pipeline stage implies assigning a task to the user responsible for the deal, but a new deal isn't assigned to any employee. Now such tasks are assigned to the supervisor. If you need to assign these task to someone else, we recommend changing the logic of the process and determining an executor prior to assigning a task.
    If a user manually changes the status and selects the same one, and a process is bound to the status, the system no longer sees this as a status change and doesn't run a duplicate process instance.
  10.  TEAM-11826 We modified the view of folders: in My folders, the list is now expanded by default. 
  11.  TEAM-3797 Users now receive a valid link for restoring the password.
  12.  TEAM-4890 When copying a workspace or an app its name now changes.
  13.  TEAM-5376 We fixed the event handler in Email Notification.
  14.  TEAM-9454 Locked users are now hidden from Birthdays.
  15.  TEAM-9535 In Tasks Assigned by me the task executor is now shown.
  16.  TEAM-9735 We fixed value overlap in standard apps.
  17.  TEAM-10614 We fixed how event duration is displayed in the calendar.
  18.  TEAM-11584 We fixed the error in importing groups from AD.
  19.  TEAM-11613 Manually entering a value of the Category field in field display conditions is fixed.
  20.  TEAM-11840 Deleting paid solutions is now forbidden.
  21.  TEAM-8102 The contact's name in an incoming call via Zadarma is now displayed correctly.

Found a typo? Highlight the text, press ctrl + enter and notify us