Skip to main content

10.1 Unlimited changelog

Release date:

This document details the technical changes and enhancements introduced in Creatio 10.1 Unlimited. It is intended for developers, system administrators, and DevOps engineers responsible for maintaining and extending Creatio customizations.

For a comprehensive overview of the new features, refer to the 10.1 Unlimited release notes.

The update guide for the on-site applications is available in a separate article.

Creatio products and apps​

Creatio AI app development toolkit​

Category

Feature

Description

Creatio.ai

AI Skills

Added the "classic-to-freedom-migration" skill to the Creatio AI app development toolkit. The skill rebuilds a Classic UI section as a parallel Freedom UI counterpart that includes the list page, form page, expanded lists, and mini pages. Previously, these pages had to be rebuilt in Freedom UI manually. The skill requires a coding agent that has the Creatio AI app development toolkit and Clio MCP connected, and access to the Creatio environment that contains the Classic UI section. This change enables app creators to move Classic UI sections to Freedom UI from a reviewable plan and confirm the result against a verification table. It reduces manual rebuilding effort and the risk of missing section elements during the transition.

More details
  • The migration runs in stages. The coding agent reads the Classic UI section from the environment and reconstructs its structure, then produces the migration plan as a single document and waits for approval. It then builds the child pages and the main page according to the approved plan and the UI design requirements, and reconciles the built result against the plan in a verification summary table. The agent creates no Freedom UI artifact until the plan is approved, and the original Classic UI section remains unchanged and is disabled only after a separate approval.
  • The migration plan contains the "Overview," "Main scope," "List," "Form layout," "Logic," "To confirm," and "Child pages" parts.
  • Migration of the section page covers the layout, custom filters, business process launch, button that prints reports, custom page actions, and custom buttons.
  • Migration of the form page covers the page layout and standard page content, for example, inputs, field groups, and expanded lists, as well as page-level business rules, page customizations, business process launch, button that prints reports, custom page actions, and expanded lists with their pages.
  • The verification summary table uses the "done," "missing," and "needs confirmation" statuses.
  • A migration target can be a link to the section, its name, or the name of a package or app.

Creatio.ai

AI Skills

Added dashboard generation to the "creatio-app-orchestrator" skill used by the Creatio AI app development toolkit. Previously, the skill generated the data model, sections, pages, and business logic of a new app but produced no analytics, and users added dashboards manually after the app was created. This change makes the skill always suggest analytics during app creation, treating a plan with no analytics as incomplete. The skill generates section dashboards for the roles that work with a specific section, and app-level dashboards placed on the workplace home page of the app. If the app has none, the skill reuses the existing workplace or creates a new workplace. Widgets are built from the data model of the app, can reference base Creatio objects, and support metrics, charts, and list widgets. Out of the box, only users that have the "All employees" organizational role can access generated dashboards. The access rights are delivered with the app package to preserve them while transferring between environments. This enables developers and no-code creators to obtain apps with meaningful analytics immediately after generation, without manual dashboard setup and repeated access right configuration.

Creatio.ai

Widgets

Added the ability to add charts, list widgets, comparison metrics, and calculated metrics to a Freedom UI page and configure them from a natural-language request using the Creatio AI app development toolkit. Previously, only a limited set of widgets was available for agent-based generation, and the rest had to be configured in the Freedom UI Designer or Dashboard Designer. This change enables app creators to generate complete analytics pages without manual widget setup and provides consistent widget configuration across generated apps. This capability is standalone and can be used independently of app generation — on any existing Freedom UI page, whether generating a new app or editing an existing app.

Creatio.ai

Widgets

Added the agent-facing contract and authoring guide for generating and configuring pivot tables on Freedom UI pages using the Creatio AI app development toolkit. Previously, the widget registry exposed no descriptions for the bindable properties of a pivot table and the pivotSetup model tree. Coding agents had no reliable contract to build a valid configuration and app creators had to set up the widget manually in the Freedom UI Designer or Dashboard Designer. Runtime and design-time behavior of the widget remain unchanged. To use this functionality, register and enable the EnableFreedomUIPivotTable additional feature. The contract covers the bindable properties and the pivotSetup structure, including the data object, row and column groupings, value cells and their aggregate functions, date grouping granularity, calculated fields, static filters, and page-data dependencies. The guide provides configuration recipes, an aggregation and data type compatibility matrix, and a preflight validation checklist that the agent runs before saving. This change enables app creators to produce working pivot tables from a natural-language request without manual widget setup and reduces the risk of invalid configurations reaching a published page. This capability is standalone and can be used independently of app generation — on any existing Freedom UI page, whether generating a new app or editing an existing app.

Creatio.ai

Dashboards

Added the ability to create a dashboard using the Creatio AI app development toolkit and define which user roles or dedicated users can see it. Previously, creating dashboards and configuring their visibility had to be done manually. This change enables app creators to deliver dashboards together with the correct access setup in a single request, reducing the risk of exposing a dashboard to unintended users. This works both when generating a new app and when editing an existing app.

Creatio.ai

Business rules

Added the ability to manage page-level and object-level business rules using the Creatio AI app development toolkit. Coding agents let you create, read, edit, and delete business rules, including rules with conditions based on a system setting value or a data source. Previously, agents could not modify or remove existing rules, and these condition types were not covered. This change enables app creators to maintain page logic across iterations of a generated app instead of reworking rules manually in the Business Rule Designer.

Creatio.ai

Business rules

Fixed a runtime issue where business rules that set field values did not run after a record was copied. Previously, the page model of a copied record stayed in the copy state after the copy operation was completed, so changing a field that triggers a business rule did not recalculate the dependent field values. The same rule worked as expected on a newly created record, which forced no-code creators to instruct users to save the copy and reopen it before the calculated values appeared. Creatio now processes a change of a triggering field on a copied record as an edit and runs the rule. A record that is only opened without changes does not trigger the rule. This change enables no-code creators to rely on identical business rule behavior for copied and newly created records, and they no longer need to document a save-and-reopen workaround for end users.

More details
  • The condition that determines when the "Set values" business rule applies in the copy state now checks only initialization triggers. A change of a triggering attribute after the copy operation now takes priority and runs the rule.
  • The recalculated value is saved with the copied record and persists when the record is reopened.
  • The behavior of records opened for editing remains unchanged. Business rules stay inert until the user changes a field.

Creatio.ai

Workplaces

Added the ability to manage workplaces in the Creatio AI app development toolkit. Coding agents can create, update, or delete a workplace, and add or remove sections within a workplace or move a section between workplaces. Agents can also grant, change, or remove permissions to work with the workplace for specified user roles. Agents also create and update data bindings so workplace configuration data is transferred with the package. Previously, workplace setup and its data bindings had to be configured manually on the administrator level and in the package. This change enables app creators to prepare a complete workplace structure, its access, and its package bindings from a natural-language request. It reduces the risk of a workplace configuration reaching a target environment without the required data bindings.

Creatio.ai

Pages

Added the ability to create Freedom UI desktop and home pages in the Creatio AI app development toolkit. Previously, coding agents could not generate these page types, so they had to be created manually in the Freedom UI Designer. This change enables app creators to deliver the entry points of an app together with the rest of the generated content.

Common features​

Category

Feature

Description

WhatsApp Chat Channel

Customer communication hub section

Added the ability to connect a WhatsApp (Meta Cloud API) chat channel using the Add channel button list in the Manage channels toggle panel of the Customer communication hub section. The WhatsApp chat channel connects a WhatsApp Business account to Creatio through the Meta Cloud API. An administrator confirms the connection in the Meta sign-up flow. It is delivered as part of the WhatsApp Chat Channel app available in Creatio Sales, Creatio Service, Bank.AI and deprecated Bank Customer Journey and compatible with Creatio 10.1 and later. On a product that does not include the app, for example, Creatio Business Studio, installing it also installs the Contact Center app automatically. Previously, WhatsApp communication was available only through the Twilio integration, which remains supported and is displayed as "WhatsApp (Twilio)" in the Add channel button list. This change makes the WhatsApp chat channel available to administrators out of the box and enables companies to process WhatsApp conversations in Creatio without a third-party messaging provider.

More details
  • The first setup step opens after the Meta sign-up window. It displays the connection details received from Meta as read-only, and the administrator fills out the Queue field through which incoming chats of the channel are distributed.
  • If the number is not yet registered on the WhatsApp Cloud API, enter its six-digit two-step verification PIN in the Two-step verification PIN field to complete the registration.
  • The second step configures AI assistance for the channel in the same way as for the other chat channels.
  • The final step confirms that the channel is connected and provides the Send your first message button that opens the connected number in WhatsApp.

WhatsApp Chat Channel

Customer communication hub section

Added the ability to refresh the connection of a WhatsApp (Meta Cloud API) chat channel on the settings page in the Customer communication hub section. Access tokens issued by Meta expire, and an expired token stops message delivery. The administrator reconnects the channel using the Reconnect button, and the channel starts receiving messages again. Channel settings remain unchanged. This change enables administrators to restore a channel that stopped receiving messages without deleting and connecting it again.

WhatsApp Chat Channel

Customer communication hub section

Added the ability to activate and deactivate a WhatsApp (Meta Cloud API) chat channel on the settings page in the Customer communication hub section. An administrator deactivates the channel to stop receiving messages sent to the connected number, and activates it again to resume, without deleting the channel or its settings. This change enables administrators to pause a WhatsApp channel temporarily whenever needed, for example during maintenance or a planned pause in customer communication.

WhatsApp Chat Channel

Customer communication hub section

Added the ability to delete a WhatsApp (Meta Cloud API) chat channel. The Delete row action is available in the Messaging channels block on the Manage channels toggle panel of the Customer communication hub section. Deleting the channel also removes the message subscription of the connected phone number, so Creatio no longer receives messages sent to that number, and the same number can be connected again as a new channel. This change enables administrators to disconnect and reconnect a WhatsApp number on their own.

Contact Center,
WhatsApp Chat Channel

Agent Inbox panel

Added the ability for human agents to receive incoming messages in the WhatsApp (Meta Cloud API) chat channel in the Agent Inbox panel. A message from a customer creates a chat that is routed to the queue of the channel, or is added to the open chat of the same customer. This way, one conversation always produces one chat. The contact is matched by phone number or created automatically, including contacts that were created earlier through the WhatsApp (Twilio) channel. Human agents accept the chat and can view all previous conversations with the contact. This change enables human agents to handle WhatsApp messages together with the messages of the other chat channels, with the full communication history of the customer available.

Contact Center,
WhatsApp Chat Channel

Agent Inbox panel

Added the ability for human agents to receive incoming files and media in WhatsApp (Meta Cloud API) chat channels in the Agent Inbox panel. Images, documents, audio, video, and stickers are supported and validated against the system settings and WhatsApp limits for each media type. Each file arrives as a separate message in the conversation. This change enables agents to receive the full context of a customer request, including screenshots and documents, without switching to another tool.

More details
  • File type restrictions are managed by the "File extensions deny list" (FileExtensionsDenyList code) system setting.
  • File size limits are managed by the "Attachment max size" (MaxFileSize code) system setting. Out of the box, the value is set to "10," in MB. If a forbidden extension is detected or the limit is exceeded, Creatio displays a detailed error message and no chat message is created.

Contact Center,
WhatsApp Chat Channel

Agent Inbox panel

Added delivery statuses of outgoing messages in WhatsApp (Meta Cloud API) chat channels to the Agent Inbox panel. An outgoing message is displayed with the "Sending," "Sent," "Delivered," and "Read" statuses as the delivery progresses, or with the "Failed" status when WhatsApp rejects it. The failure reason returned by WhatsApp is stored and displayed to the agent. This change gives agents visibility of message delivery and enables them to react to a failed message immediately instead of waiting for the customer to report a missing reply.

Contact Center,
WhatsApp Chat Channel

Agent Inbox panel

Added the ability for human agents to send files and media in the WhatsApp (Meta Cloud API) chat channel in the Agent Inbox panel. Images and files are supported and validated against the system settings and WhatsApp limits as incoming files. When a file cannot be sent, the agent receives a notification that names the reason. This change enables agents to share images and files with customers directly in the conversation.

More details

File type restrictions are managed by the "File extensions deny list" (FileExtensionsDenyList code) system setting. File size limits are managed by the "Attachment max size" (MaxFileSize code) system setting. Out of the box, the value is set to "10," in MB. If a forbidden extension is detected or the limit is exceeded, Creatio displays a detailed error message and no chat message is created.

Contact Center

Agent Inbox panel

Added the ability for human agents to reply to customers in the WhatsApp (Meta Cloud API) chat channel in the Agent Inbox panel. Replies are sent as free-form messages, which WhatsApp permits within the messaging window — the 24 hours that follow the last message from the customer. This change enables human agents to handle WhatsApp conversations in the same UI as other chat channels.

Contact Center

Agent Inbox panel

Added support for file drafts in the Agent Inbox panel. Previously, attached files were kept in the page memory only and were lost as soon as the human agent opened another chat. Creatio now uploads every file attached to a chat in the background immediately after it is attached, and keeps it as a draft of that chat on the server. This change enables agents to attach a file, switch to another conversation, or reload the page without losing the attachment. Agents can now also work on multiple conversations in parallel without re-attaching files, and send messages with attachments without waiting for the upload to complete. To stop using this functionality, disable the OmnichannelChatFileDrafts additional feature.

More details

Draft files are cleared when the message is sent, when the chat is completed or transferred to another agent, when the agent logs out of the last session, or when the retention period expires. The retention period is managed by the OmniChatDraftFileLifetimeHours system setting. Out of the box, the value is set to "24," in hours. To change the retention period, add the OmniChatDraftFileLifetimeHours system setting, set the Type field to "Integer" and set a new interval in the Default value field on the system setting page.

Contact Center

Agent Inbox panel

Added the ability to manually translate outgoing chat messages using the btn_translate.png button in the message editor of the Agent Inbox panel. Previously, outgoing messages were translated automatically upon sending, and agents had no way to translate a message manually or review the translation before it reached the customer. The functionality is managed by the "Automatically translate outgoing messages" (AutoTranslateOutgoingMessages code) system setting. Out of the box, the value is set to "false," so agents enter a message, translate it into the customer language using the btn_translate.png button, and then send the translated text. When the value is set to "true," outgoing messages continue to be translated automatically upon sending. This change enables agents to verify and correct wording and preserved terms before a message reaches the customer, and take responsibility for the accuracy of what is sent.

Contact Center

Agent Inbox panel

Added the Show original button to outgoing translated messages in the Agent Inbox panel. Previously, after an outgoing message was translated automatically, agents could no longer see the wording they had entered. The translated version that the customer received is displayed by default. Clicking the button switches the display to the text entered by the agent, and clicking the btn_translate.png button returns it to the translation. Switching is available both while the agent handles the chat and on the chat page in the Chats section after the chat is completed. The button changes the displayed text only and does not affect the message stored in the database or the text delivered to the customer. This change enables agents to recall their original wording and confirm what the customer actually received without leaving the conversation.

Contact Center

Agent Inbox panel

Fixed a runtime issue where a conversation started by the human agent did not appear in the Agent Inbox panel until the page was reloaded. Previously, when the human agent started an outbound conversation from the message composer, the chat was created and assigned to that agent. The panel displayed the chat only after the page was reloaded, the panel was reopened, or the agent status was changed. This change makes the conversation appear in the In progress panel list immediately after the message is sent. Human agents can continue an outbound conversation right away, without extra actions to refresh the panel.

Contact Center

Agent Inbox panel

Fixed a runtime issue where the text of an incoming message was not displayed in the Agent Inbox panel when the customer sent text and an image in a single message. Previously, only the image was displayed and the text was not shown, although it was delivered together with the message. Messages that contained text and a file attachment were not affected. This change displays the text and the image in the conversation as separate messages. Human agents now see the full content of a customer message and no longer miss details sent along with an image.

Contact Center

Agent Inbox panel

Fixed a runtime issue where an image or file that the customer sent more than once in a Telegram chat was not delivered to the Agent Inbox panel. Previously, Creatio identified duplicate incoming Telegram messages by the content of the attached file. Telegram returns the same file identifier for identical content. When a customer sent the same image again, the message was treated as a repeated delivery of an earlier message and was discarded silently, without an error, and the human agent never received it. This change identifies incoming Telegram messages by the chat and message identifiers instead. Every new message is now delivered even when it includes a file that has already been sent, while a message that Telegram genuinely redelivers is still filtered out.

Contact Center

Agent Inbox panel

Fixed a runtime issue in the Agent Inbox panel where completing a chat that contained no messages exchanged between the human agent and the customer did not work correctly. Previously, the request to complete such a chat failed, the loading mask never cleared, and the chat tile kept reappearing in the panel, although the chat had already been marked as completed in the database. For example, this could happen when a conversation was handed over to a human agent by an AI agent and the human agent completed it without replying to the customer. This change makes Creatio complete such chats correctly and return control of the conversation to the AI agent that handled it before the handover. Human agents can now close chats in which they did not participate, and completed chats no longer remain visible in the panel.

Contact Center

Agent Inbox panel

Fixed a runtime issue where the "Queued tasks" filter of the Agent Inbox panel showed queue items assigned to other human agents. Previously, the filter built by the QueueItemsFiltersConverter class matched every item of the agent's queues regardless of assignment. This change updates the filter to show only unassigned items of the agent's active queues and the items assigned to the agent, matching the scope of the Agent desktop Classic UI section. Two agents can no longer pick up the same task.

Contact Center

Agent Inbox panel

Fixed a runtime issue where the "Queued tasks" filter in the Agent Inbox panel loaded the first 15 queue items without access filters when all queues available to the human agent were blind or the agent was not a member of any queue. Previously, the filters were not applied to the queue item request in these cases, so agents saw items that were not theirs. This change applies the same access rules as the Agent desktop Classic UI section and shows only the items assigned to the agent, keeping agents focused on their own work items.

Contact Center

Agent Inbox panel

Fixed a runtime issue where a false "Leave page" browser dialog was shown when a user downloaded a file from a chat while the "Queued tasks" filter was applied in the Agent Inbox panel. Previously, applying the filter wrote the AllowSizeAdjustment layout parameter to the page parameters as a regular change, which marked the page as having unsaved data, so any navigation, including a file download, triggered the dialog. This change sets the layout parameters silently, so human agents can download chat files without confirmation dialogs.

Contact Center,
Integrations and APIs

Agent Inbox panel,
Telephony

Fixed a runtime issue where call pages stayed in the Agent Inbox panel and in the "Calls" sidebar in the communication panel after a call had ended while the Creatio browser tab was in the background. Previously, browsers throttle timers in background tabs, so the keep-alive of the messaging service connection was delayed. The connection was dropped and re-established about every two minutes, and a call teardown event delivered during the gap was lost. This change makes the connection to the .NET Core messaging service (Asterisk V2 connector) survive the throttled keep-alive of a background tab. Call state events are no longer lost, and agents can switch to other applications during a call without stale call pages.

Web Chat

Web chat channel settings page

Changed the implementation of the web chat channel settings page: the handler logic was moved out of the page schemas into a separate remote module. Previously, the logic of the "Web chat channel adding page" (WebChatChannel_AddingPage code), "Web chat channel edit page" (WebChatChannel_EditPage code), and "Chat settings page" (ChatSettingsPage code) schemas of the "Client module" types was implemented in the schema source code. Customizations were made there. The behavior of the pages remains unchanged. Customizations that were made in the source code of these schemas before the update to version 10.1 Unlimited must be reviewed and reapplied to the remote module. This change makes the schemas contain only the page layout and the minimal integration code, with the handlers implemented in a remote module delivered with the CrtWebChat package. Developers customize and test their page logic in the same way as for other remote modules.

Web Chat

AI and automation

Fixed a runtime issue where the system message about chat completion was displayed in the live preview on the web chat channel settings page with unresolved macros. Previously, users configuring the channel saw the raw macro text in the preview instead of the actual values. This change shows the preview with resolved values, so users can verify how the notification looks to customers before it goes live.

Web Chat

AI and automation

Fixed a runtime issue where AI did not process Web chat conversations because the access permissions required by the "Creatio WebChat Inbound Service" technical user were not applied. Previously, the membership of this technical user in the "Communication Channel Service" functional role was saved, but the corresponding role hierarchy record was created only by an asynchronous recalculation of the organizational structure. Until the recalculation completed, record permissions to conversations authored by this technical user were not granted to the "AI Communication Service" functional role, so AI could neither read nor update Web chat conversations. On affected environments, the recalculation did not run for weeks. Creatio now creates the role membership and the corresponding role hierarchy record within the same provisioning pass that creates the technical user. It also grants read and edit record permissions on the "Chat" (OmniChat code) object directly to the "Creatio WebChat Inbound Service" technical user. This change makes AI respond to Web chat conversations immediately after the app is installed, and administrators no longer need to rebuild the organizational structure or repair permissions manually. To stop using this functionality, disable the CrtWebChatInAiOmni.EnableWebChatRoleProvisioning additional feature.

Customer communication hub,
Web Chat

Customer communication hub section

Fixed a runtime issue where the Total chats metric on the chat channel settings page in the Customer communication hub section displayed only the chats created on the current day instead of all chats of the channel. The change applies to the base chat channel settings page, so it affects all chat channels. This change gives administrators an accurate view of the load of each channel.

Customer communication hub

AI and automation

Changed the calculation of the "AI effectiveness" column value for email chat channels in the Channel performance block on the Overview tab of the Customer communication hub section. Previously, Creatio divided the number of closed cases with an AI-autosent reply by the total number of email cases registered within the last 7 days. Mailboxes that handled a large share of cases without AI involvement showed a low value, and the column could not be compared to the same column for other chat channels. This change divides the number of closed cases with an AI-autosent reply by the number of AI-assisted cases instead, which are cases where AI generated at least one reply draft or sent a reply automatically.

Integrations and APIs

Chats

Added support for automatic handoff of AI-processed chats to the chat queue when the Use AI in the channel checkbox on the AI automation tab of the chat channel settings page is cleared. Previously, clearing the Use AI in the channel checkbox in the channel settings mini page in the Chat settings page left the chats that were already being processed by AI without an assigned agent. Incoming messages in those chats did not route them to agents either. This change transfers every chat that is being processed by AI in the channel to the chat queue specified in the channel settings, making the chat available to agents in the Agent Inbox panel.

Integrations and APIs

Chats

Changed the storage mechanism for chat message translations so that they are retained permanently and remain available on the chat page in the Chats section. Previously, translations of incoming messages were held in temporary storage and were available only while the agent handled the chat, and only the original text was saved to the database. A completed conversation could no longer be reviewed in the translation language. This change stores translations together with the original text, with both versions available through the btn_translate.png button next to each message. Incoming messages display the original text out of the box, and outgoing messages display the translated text that the customer received, consistent with the behavior in the chat conversation. The stored translation is the same translation that was shown to the agent. Translations are stored out of the box and require no additional configuration. This change enables users to review completed conversations in the translation language at any time, for quality control and audit purposes.

Integrations and APIs

Chats

Fixed a runtime issue where message text in a completed chat could be displayed without the anonymization that had been applied to it. Previously, cached message translations were not cleared when a chat was completed and were not covered by anonymization. This change clears cached translations for a chat and all related chats when the chat is completed, so anonymized data stays anonymized throughout the conversation.

Integrations and APIs

Chats

Fixed a runtime issue where the first response time of a chat could be set by an automatic outgoing message instead of the reply of the human agent. Out of the box, this had no effect, because an AI agent handles the conversation in a separate chat. However, in environments where automatic replies are sent by a custom solution into a chat that is already handled by a human agent, such a message was counted as the first response, and the first response SLA was measured against it rather than against the actual reply. This change makes an automatic message no longer set the first response time in a chat handled by a human agent. In a chat handled by an AI agent, it continues to count as the first response.

Integrations and APIs

Chats

Fixed a runtime issue where the btn_translate.png button was missing for part of the messages in the transcript of a completed chat on the chat page in the Chats section. Previously, translations that the human agent viewed during the conversation were not always saved, so a completed conversation could not be read in full in the translation language. This change makes every message that the human agent translated keep its button in the transcript, enabling users to verify exactly what the customer received.

More details
  • Translations are preserved both for messages translated one by one and for messages translated using the Translate button of the Agent Inbox panel.
  • Translations are preserved for messages received before the chat was routed to the human agent, for example, while the conversation was handled by an AI agent, and remain available in the transcript of that conversation.
  • Messages whose translation is identical to the original display no btn_translate.png button.
  • Translations of messages from the parent chat can be viewed on the chat page when the current chat contains no messages of its own.

Integrations and APIs

Chats

Fixed a runtime issue where conversations handled by an external chatbot were transferred to the agent queue before the chatbot requested a handoff. Previously, when an incoming message arrived in a conversation that had the "Bot processing" status on a channel whose Use AI in the channel checkbox on the AI automation tab of the chat channel settings page was cleared, Creatio handed the conversation over to an agent regardless of which bot was processing it. Conversations driven by the Ada AI Chatbot connector appeared in the agent queue even though no handoff request was received from Ada. Creatio now verifies that the conversation is owned by Creatio.ai before performing the recovery handoff. This change enables external chatbot integrations to retain full control over the moment a conversation is passed to an agent, and agents no longer receive conversations that an external chatbot is still handling.

Integrations and APIs

Chats

Fixed a runtime issue where Telegram chat channels reported a false duplicate bot error after every Creatio restart. Previously, a starting Creatio process began polling a bot token that a still-running process was already polling. Telegram returned a polling conflict, and Creatio set the "The "{channel name}" chat channel is not receiving messages because another Telegram bot instance is configured" channel error and notified administrators. No external consumer of the token existed, however. The error did not clear by itself and reappeared after each restart, and while two readers were active, incoming messages could be duplicated or lost. This change stops Telegram readers when Creatio shuts down and treats a polling conflict that occurs immediately after its own reader starts as part of the reader handover. No error or notification is raised in that case. A conflict caused by a genuine external consumer of the bot token is still reported, and incoming Telegram messages are no longer duplicated or lost while processes overlap.

More details
  • Telegram readers are stopped on application shutdown, and only the channels of the exiting process are removed from the shared channel list.
  • A polling conflict received within the 45-second grace period after a reader starts is logged as a warning and suppressed. At most one conflict is suppressed per reader start, so a continuously polling external consumer is reported within seconds.
  • The scheduled health job no longer reactivates all active Telegram channels when the local reader registry is empty, and restarts only the readers owned by the current process.
  • The one-time error latch is tied to the reader generation instead of the process lifetime, so an unresolved conflict no longer creates a new notification after each restart.

Creatio Marketing​

Category

Feature

Description

Marketing campaigns

Campaign Designer

Added the Audience transfer pace setting block to the setup area of the Timer campaign element in Campaign Designer. The block enables marketers to set granular control over audience delivery pace. This change enables marketers to prevent processing spikes and manage Creatio load in time-sensitive campaign scenarios.

More details

The Audience transfer pace setting block is available for the Timer element whose Frequency of timer start setting is populated. The Audience transfer pace setting block includes the following options:

  • "Distribute audience immediately" that releases all participants at once. Select this option to keep the Timer element working the same way it did before updating to version 10.1 Unlimited.
  • "Distribute audience evenly across the period" that distributes participants automatically based on the configured period. Available for the element whose Execution time setting is set to "Period" only.
  • "Distribute audience at a controlled rate" that releases participants at an explicitly defined rate of contacts per minute or per hour.

Marketing campaigns

Campaign Designer

Fixed incorrect record targeting in transition by filter conditions that follow the Add data and Modify data campaign elements. Previously, when a filter condition was applied on the element transition after one of these elements, Creatio evaluated all records of the target object associated with the campaign participant's contact. This happened instead of evaluating only the specific record the element had just created or modified. In scenarios where a contact had multiple associated records of the same type, for example, multiple leads, the campaign triggered on unintended records. This change restricts evaluation to the specific record created or modified during the current element execution, referencing it through the "CampaignParticipantInfo" (CampaignParticipantInfo code) object. Transition by filter conditions now consistently targets only the record that the preceding element processed. This prevents unintended campaign triggering when contacts have multiple associated records.

More details
  • Trace records in the "CampaignParticipantInfo" (CampaignParticipantInfo code) object are purged when the participant reaches the campaign goal or exits the campaign.
  • Trace records are purged when the participant is suspended by the Eliminate duplicates campaign element.
  • Trace records are purged when the participant is suspended because a new participant is added via the Add audience campaign element with the recurring entrance option enabled.

Email Marketing

Bulk emails section

Fixed a runtime issue with bulk emails that use advanced macros. Previously, these emails remained in the "Queued" status in the Bulk emails section after Creatio finished sending them. This change updates the status to "Completed" once sending is finished, giving marketers an accurate view of delivery progress.

Segmentation

Segment page

Added support for scheduled population of a segment based on the "Scheduled" value of the Population mode field on the segment page. Previously, segment membership could be refreshed on demand only, and activating a scheduled segment always enqueued an immediate population. This change enables users to keep segment membership up-to-date without manual intervention and gives them predictable population timing that matches the configured schedule.

More details
  • A segment whose Population mode field is set to "Scheduled" is populated automatically based on the Population time, Time zone, How often and Day of the week fields. Entry rules defined on the Entry rules tab and exit rules defined on the Exit rules tab of the segment page are re-evaluated at every run.
  • One persistent Quartz job is created per qualifying segment and reconciled at every app or node start, so schedules survive restarts. Each scheduled run goes through the same population queue as on-demand population, which prevents concurrent runs of the same segment and isolates failures between segments.
  • Activating or resuming a scheduled segment sets the "Active" status without populating it immediately. The first population runs at the next scheduled time, and existing membership continues to serve until then. On-demand population still populates the segment immediately regardless of mode.
  • Added "Refresh cron expression" (RefreshCronExpression code) and "Refresh time zone id" (RefreshTimeZoneId code) columns to the "Segments" (SysDataSegment code) object. An empty "Refresh cron expression" (RefreshCronExpression code) column value indicates the segment is not scheduled. An empty "Refresh time zone id" (RefreshTimeZoneId code) column value indicates UTC.
  • Added the ISegmentScheduleService service, the ISegmentActualizationJobManager.ScheduleActualization overload with the skipPopulationWhenScheduled parameter, and the SkipPopulationWhenScheduled parameter of the "Run segment actualization" (SegmentActualizeUserTask code) user task. The existing two-parameter ScheduleActualization overload is unchanged, so configurations compiled before this change keep the previous behavior.
  • In multi-node deployments, Quartz job stores must be clustered (quartz.jobStore.clustered=true) so that each scheduled run fires on exactly one node.

Segmentation

Segment page

Added the ability to schedule automatic population of a segment in the lifecycle area of the segment page. Previously, segment population could be started only manually, and a population schedule could not be configured in the UI. This change enables users to schedule automatic segment population without leaving the segment page and shows them exactly when the next population runs.

More details
  • Users select how the segment is populated using the Population mode field. Available values: "Static list" and "Scheduled." When the field is set to "Scheduled," fill out the Population time, Time zone, and How often fields. Available values for the How often field: "Every day" and "Every week." When the field is set to "Every week," fill out the Day of the week field.
  • Creatio converts the selected values into the segment schedule, saves them with the segment record, and displays the next population date for an active scheduled segment.
  • Population time, Time zone, How often, and Day of the week fields are read-only while the segment has the "Active" status. To edit the schedule, pause the segment.
  • Redesigned the "Segment activation modal page" (SegmentActivationModalPage code) schema of the "Client module" type. For a scheduled segment, the mini page displays a summary of the schedule and the Activate & schedule button. Segments in "Static list" mode keep the original Activate & populate button.
  • Redesigned the "Segment resume modal page" (SegmentResumeModalPage code) schema of the "Client module" type. For a scheduled segment, the mini page displays a summary of the schedule and the Resume & reschedule button. Segments in "Static list" mode keep the original Resume & repopulate button.
  • Changed the "Activate segment" and "Resume segment" business processes to activate the wait for the population status change at process start, so a status change that arrives within a second is not missed.
  • Added the "Segment dialogs: bold label support" (UsrSegmentBoldLabelStyles code) schema of the "Client module" type. The schema styles labels in the segment mini pages.

Segmentation

Segment page

Fixed a regression on the segment page where the Matching contacts metric always showed the total number of contacts and did not react to changes in the segment entry filter. Previously, the metric's binding to the entry filter had been lost in the page schema during an unrelated change to the segment form. This change restores the binding, so the metric counts only the contacts that match the current entry filter and shows "0" when the filter is empty. The metric also updates on every filter change without saving or reloading the segment.

Creatio Sales​

Category

Feature

Description

Sales Forecasts

Sales forecasts section

Added the icn_summarize_with_creatio_ai.png icon to each opportunity row of the forecast drill-down list in the Sales forecasts section. The icon is displayed to the left of the opportunity name, shows a tooltip when the user points to it, and follows the same visual and pointing treatment as other page icons. Clicking the icon triggers the existing "Summarize opportunity" sub-agent and passes the opportunity ID as context. Creatio.ai chat panel opens or switches to the current task and returns the summary for that exact opportunity, without prompting the user to select an opportunity. List selection, submission state, or any opportunity or forecast data remain unchanged. This change enables sales managers and account executives to get AI-assisted opportunity context directly from the drill-down list, reducing the steps needed to review a specific deal.

Sales Forecasts

Sales forecasts section

Added the opportunity toggle panel to the Sales forecasts section. Clicking an opportunity name in the forecast drill-down list opens the panel with a compact record summary. The panel refreshes automatically when the list selection changes. The panel displays only data to which the user has access. This change gives sales managers and reps immediate access to an opportunity's details, activity, and history directly from the page. It also gives administrators a way to adjust the panel configuration.

More details
  • The opportunity toggle panel includes the following tabs:

    • Summary. The tab includes the Owner, Stage, Forecast category, Opportunity amount, Expected close date, Primary contact, Account, MEDDPICC score fields and Days in stage and Days in funnel metrics, computed from the opportunity's stage-change history.
    • Activity. The tab includes the Total touches, Meetings held, Emails sent, and Email replies metrics and the Next steps expansion panel. It reuses the base "Activity" (Activity code) object.
    • Timeline. The tab includes the timeline for the opportunity, supporting base timeline capabilities.
  • The opportunity toggle panel is horizontally resizable by dragging its left border from 424 px to a maximum of 50% of the Sales forecasts section. Out of the box, the opportunity toggle panel width is 480 px. The panel is hidden when the Sales forecasts section content takes 848 px or narrower. Width is saved per user.

Sales Forecasts

Forecast hierarchies section

Added a new Forecast hierarchies section to view, search, and maintain forecast hierarchies independently of a specific forecast, supporting base sorting, filtering, and search by name. It is delivered as part of the Sales Forecasts app and is displayed in the "Sales forecast" workplace. The section is available to administrators only. Previously, forecast hierarchies could only be created and edited from within the forecast configuration flow. Forecast hierarchies and Sales forecasts configuration sections use the same hierarchies. Editing a hierarchy already bound to a forecast with existing submissions displays a warning listing the affected forecasts and requires user confirmation before applying the change.

Sales Forecasts

Hierarchy builder

Added the ability to apply filters to a hierarchy on the Hierarchy builder page in the Forecast hierarchies section. Previously, a hierarchy always included every record from its source object, with no way to narrow the structure to only the relevant objects. Filters can be applied regardless of how the hierarchy was built: manually from scratch or automatically by a parent column. Filters are defined using the base filtering mechanism over the source object columns. Adding filters rebuilds the hierarchy so that only matching records are included, while preserving the parent-child relationships between the remaining records. The filter is a hierarchy-level structure parameter, so it applies to every forecast that uses the hierarchy. Defined filters are persisted with the hierarchy and reapplied automatically when it is reopened or recalculated. This change enables users to exclude records from forecasting, without maintaining a separate, manually created structure.

Industry cases​

Category

Feature

Description

Field sales

System settings and tools

Changed the "Color" column in the Account types lookup of the Field Sales app to add color coding for "Retail chain," "Sales outlet," and "Distributor" values. Previously, these account type values displayed without color, like all other account types. This change enables users to distinguish these account types quickly across Accounts section and account pages.

More details

Added:

  • "#FF8800" value for the "Retail chain" account type.
  • "#009688" value for the "Sales outlet" account type.
  • "#03A9F4" value for the "Distributor" account type.

Other account types remain unchanged.

Field sales

Account page

Added the Product tab to the account page. The tab is shown when the Field Sales app is installed. Previously, an account's related products could not be viewed from the account page. The tab shows an empty state when the account has no related products. This change enables users to review an account's full product footprint and visit recency in one place directly from the account page.

More details
  • The tab reads data from the existing "Product in account" (ProductInAccount code) object and displays Number of products and Last visit date metrics. Number of products metric matches the count of related "Product in account" (ProductInAccount code) object records. Last visit date metric shows the date of the most recent visit, or "N/A" when no visit records exist.
  • The tab enables users to switch products between grid and gallery views. Switching views does not reload the page. Products without an image show a placeholder in the gallery view.
  • Product data remains unchanged.

Creatio Business Studio​

No-code customization​

Category

Feature

Description

No-code tools

Freedom UI Designer

Changed the way container properties are saved to the Freedom UI page schema in the Freedom UI Designer. Previously, saving a page wrote the full set of container property values to the viewConfigDiff schema section, including values that matched the default values. Page schemas became larger than necessary, and it was harder to identify actual customizations. This change filters default values when the schema is saved and stores only the properties that were changed. Developers now see only meaningful container settings in a page schema, differences in version control systems are cleaner, and merging and troubleshooting page customizations takes less effort. To stop using this functionality, disable the UseViewConfigDefaultsFilter additional feature.

No-code tools

Freedom UI Designer

Changed the out-of-the-box status of the InterfaceDesignerPreviewButton additional feature from disabled to enabled and improved page preview in the Freedom UI Designer. Previously, the feature required manual registration and activation, previewing a page that was not saved yet failed or stopped responding, and some page components were not rendered in the preview until the page was reloaded. This change makes the Preview button available in the action panel of the Freedom UI Designer out of the box. The preview now correctly displays pages that are not saved yet — including completely new pages and pages that replace existing pages, pages that use data sources, and components added to a page after it was loaded. This enables no-code creators to validate page layout and behavior before publishing without additional setup and reduces the number of publish-and-check cycles during page configuration. To stop using this functionality, disable the InterfaceDesignerPreviewButton additional feature.

No-code tools

Freedom UI Designer

Changed the out-of-the-box status of the DesignerRtlSupport additional feature from disabled to enabled and excluded the Freedom UI Mobile Designer canvas from RTL rendering. Previously, RTL rendering in the designer required manual activation. This change displays the designer canvas in RTL layout for users that have an RTL interface language selected in the user profile. The Freedom UI Mobile Designer canvas is displayed in left-to-right layout instead, because mobile pages are not rendered in RTL mode at runtime. This enables no-code creators to validate RTL page layouts immediately after the update without additional setup and prevents misleading mirrored previews when designing mobile pages. To stop using this functionality, disable the DesignerRtlSupport additional feature.

No-code tools

Dashboard Designer

Added the ability to open the source code of the dashboard page using the Source code item in the btn_actions_in_freedom_ui_designer.png button menu in the action panel of the Dashboard Designer. Previously, the item was unavailable in the Dashboard Designer, unlike other designers, which forced developers to reach the source code of the dashboard schema using other tools. The item behaves identically to the equivalent item in other designers. The item is displayed to all users, while opening the source code remains available only to users who have permission to the "Can manage configuration elements" (CanManageSolution code) system operation. Out of the box, only users that have the "System administrators" organizational role, or the "Developer" or "Administrator" role on ALM Portal, are granted this permission. This change enables users to inspect and troubleshoot dashboard schemas directly from the Dashboard Designer without switching to another tool, and provides a consistent experience across all designers.

Localization

Translations

Added clean-up of obsolete localizable values when a configuration schema is saved. Creatio now compares the localizable keys stored for the schema with the keys the schema declares, and deletes the stored values that are no longer declared. Previously, the title and the description of a schema item that was removed or renamed remained in the SysLocalizableValue database table until a later save carried the same key again. Deleting or renaming a Freedom UI component on a page now also removes the localizable values of that component. To use this functionality, register and enable the CleanUpObsoleteSchemaLocalizableValues additional feature. This change enables translators to keep localizable resources aligned with the current content of a schema. Translation lists no longer accumulate entries for items that no longer exist, so no effort is spent translating text that is never displayed.

More details
  • The clean-up runs on the schema save path only. Package installation from files writes localizable resources through a separate path and is not affected.
  • Deletion is limited to the cultures that the save carries, so a save performed in one culture cannot remove the values of another culture.
  • Deletion is limited to values changed in the current environment. Values that belong to an installed package are retained.
  • Obsolete keys are recorded as deleted in the localization change log.
  • A non-zero number of deleted values is written to the log at the "Info" level. The log entry includes the schema identifier, the package identifier, the culture identifier, the number of deleted rows, and a bounded list of keys.

Apps and packages

App management

Changed the installation logic for apps that use the technical "0.0.0" version. Previously, if an environment already had a higher version of the target app installed, attempting to install a package with version "0.0.0" caused that app to be skipped from the installation bundle. An app with version "0.0.0" is now always included in the final installation bundle and reinstalled, regardless of the version currently installed on the environment. Version values "0," "0.0," and "0.0.0" are treated as the same technical version for this purpose. This applies only to the target app's own version, for both single and group installations, across Application Hub, WorkspaceConsole, and Clio utilities. Creatio Business Studio version comparison and other dependency resolution logic, including finding the best suitable version, downgrade handling, and conflict detection, remain unchanged and continue to ignore the "0.0.0" technical version. This change enables users to reliably deliver updates packaged under the trunk "0.0.0" version, ensuring their changes are always applied instead of being silently skipped.

Apps and packages

App management

Changed the installation workflow to automatically run the backend cache-clearing logic used by the Run app button in the Application Designer. This now runs for all installed apps immediately after a successful installation, without navigating the user into any app or changing their current screen. Previously, a newly installed or updated app could require a manual cache reset before it became fully functional, since some of the caches needed for correct operation were not refreshed automatically during installation. This change enables users to install or update apps without needing to manually reset caches afterward, since installed apps are immediately ready to use. The user is not redirected or navigated into any app, unlike manually clicking the Run app button.

Apps and packages

App management

Fixed a runtime issue where installing an app from the Application Hub could fail with the "The process cannot access the file" error. This happened when a leftover package archive in the shared installation working directory was locked by another process, for example, an antivirus scanner or backup agent. Previously, every package operation (validation, backup creation, and installation) cleared this shared working directory at the start. The operation failed immediately if even one file inside it, including files left over from a previous installation, could not be deleted. Package operations no longer fail outright when a locked file is found in the working directory during cleanup. Files that do not belong to the archive being installed are skipped with a named warning instead of aborting the operation. Package archives are now deleted right after they are unpacked, so leftovers no longer accumulate between operations. This change enables users to install or update apps reliably even when antivirus software, indexers, or other processes briefly lock files in the installation working directory, reducing installation failures caused by transient file locks. To stop using this functionality, disable the PackageFeatures.TolerateLockedFilesOnPackageDirectoryCleanup and PackageFeatures.DeletePackageArchivesAfterUnzip additional features. This restores the previous strict cleanup behavior.

More details
  • Files left over in the directory where packages are unpacked are treated as inert and skipped, since packages are loaded from subdirectories.
  • A locked file in the directory to which an archive is extracted still stops the operation, since all its content belongs to the archive being installed. The error message now names the specific entries to release.
  • The leftover archive deleted right after unpacking is specifically the package's *.gz file.

Apps and packages

App management

Fixed a runtime issue where installing or updating an app that delivers additional feature bindings did not invalidate the client feature cache. Previously, the additional feature was created and enabled on the server, but client sessions that were already open kept using a stale cached feature list. The feature stayed unavailable to client code and dependent UI even after a page reload or a full logout and login. Only a manual cache reset or enabling the feature in the Feature toggling section made it available, whether the feature was newly added or had changed status. Creatio now invalidates the client feature cache in this scenario, so delivered features become available to client code and the UI after a plain page reload, without any manual step. This change enables users to install or update composable apps that deliver additional features without extra manual steps, and prevents existing users from silently missing functionality delivered by an app update.

UI Design

Freedom UI components

Added the Which folder the filter can be saved to? parameter to the setup area of the Filters component in the Freedom UI Designer. This parameter enables no-code creators to connect the Filters component to folders that use the same Object type schema, so end users can save filters to those folders using the btn_save_the_current_filter_to_a_folder.png button at runtime.

More details
  • The Which folder the filter can be saved to? parameter includes only Folders components whose reference schema matches the schema of the Filters component. If the parameter no longer references folders of the same object, the value is cleared when the page loads and the button is not displayed at runtime.
  • Pages that inherit the "List page" (ListPageV3Template code) schema of the "Client module" type reference their own folders by default, so the button is available out of the box. A Filters component added to a page from scratch has no folder connection until a no-code creator selects a connection.

UI Design

Freedom UI components

Added the Recipients pre-fill parameter to the setup area of the "Email" channel in the Message composer component in the Freedom UI Designer. Previously, this functionality was available in Classic UI only. This change enables no-code creators to set recipient rules for the composer in the designer and enables users to send emails from record pages without entering recipients manually.

More details
  • Recipients pre-fill parameter includes the To source fields, CC source fields, and BCC source fields parameters. The Select field window opened from the parameter lists the data source columns of the "Email" type, including related objects. Multiple columns per field are concatenated and de-duplicated at runtime.
  • The designer writes the binding through the crt.EmailColumnsToRecipients converter. In the source code of the Freedom UI page, to, cc, and bcc properties can be bound to any attribute that resolves to an array of email addresses, including constant values.

UI Design

Freedom UI components

Added the Allow disabling conditions checkbox to the setup area of the Filters component in the Freedom UI Designer. The checkbox enables no-code creators to control whether end users can disable and enable individual conditions, groups, and predefined filter presets. Out of the box, the checkbox is selected.

UI Design

Widgets

Added the Apply filter by page data parameter, Add calculated field button, support for related object columns in the Rows, Columns, and Values parameters to the setup area of the pivot table in the Freedom UI Designer and Dashboard Designer. Additionally, added grouping of "Date/time" type columns and a design-time structure preview for the pivot table. Sorting of rows and columns and row totals are not supported. This change enables no-code creators to deliver cross-tab analytics that previously required Classic UI dashboards or custom development. It also enables them to validate the widget structure before saving instead of publishing a page to check the result.

More details
  • The Apply filter by page data parameter connects the widget to data of the page that contains it, which lets a pivot table on a dashboard respond to the dashboard context.
  • The Add calculated field button in the setup area adds a field defined by a formula, providing parity with calculated columns in Classic UI.
  • Rows, Columns, and Values parameters support columns of related objects through both forward and backward references, which enables aggregation of connected records.
  • "Date/time" type columns support grouping by day, week, month, and month and year.
  • The design-time preview renders the structure of the pivot table on the canvas without data and updates as the setup changes.

UI Design

Widgets

Changed the out-of-the-box status of the EnableFreedomUIPivotTable additional feature from disabled to enabled. This makes the pivot table available to all users in the Freedom UI Designer and Dashboard Designer element libraries. Previously, the feature required manual registration and activation. This change enables no-code creators to use the widget immediately without additional setup.

Business processes

Elements

Fixed a runtime issue where the Send chat message process element could not send the first message to a contact in an SMS channel. Previously, before sending a message, Creatio required an existing conversation with an inbound message from the contact, regardless of the channel. The process element failed with the "Unable to find the sender's contact data for this channel" error, and an SMS could be sent only after the contact had written to the channel first. This change sends SMS messages to the primary mobile phone number of the contact even if the contact has never written to the channel, letting administrators use business processes for proactive SMS notifications. The behavior of the other channels remains unchanged.

Business processes

Elements

Fixed a runtime issue where column titles were not displayed in the Formula window when value mapping was configured in Process Designer. Previously, column titles were not displayed when the AutoAddPackageDependenciesInProcesses additional feature was enabled, because the columns were resolved only within the current package bundle. This change enables users to identify the correct columns when they configure formulas and reduces the risk of incorrect value mapping in business processes.

Business processes

Elements

Fixed a runtime issue where the Call web service business process element omitted nested collections from the request body. Previously, if a request parameter was a collection whose items contained another collection, the element sent the outer collection and its scalar values but dropped the inner collection, so the external service received an incomplete payload. Creatio now resolves nested collection parameters through the parameter value provider and includes them in the request. This change enables developers and no-code creators to integrate Creatio with services that expect nested collection structures, for example, e-signature providers, directly from a business process, and removes the need to build a workaround to assemble the request body. To stop using this functionality, register and enable the DisableParametersWithNestedArrays additional feature.

More details
  • Nested collection parameters are resolved through the parameter value provider even when the parameter has no value source, which is the case for container parameters that only hold a nested collection.
  • A nested collection that is declared but not mapped stays empty in the request body instead of being sent as an empty collection.
  • The change applies to collections of composite objects. A single composite object parameter that has no value source is not affected.
  • The change affects only the request body that a business process builds. The Send test request button on the web service page used a different path and remains unchanged.

Business processes

Process execution

Fixed a runtime issue where the warning notification did not appear when the number of records selected to run a business process in a section exceeded the processing limit. Previously, the notification was not displayed and the loading mask remained on the page, so the run appeared to hang. This change shows the notification immediately, enabling users to see why the process did not start and adjust their selection without reloading the page.

Integrations and APIs

OAuth authorization

Changed the way the email address is resolved during JWT Assertion token generation. Previously, the token included an email address only when the "Email" (Email code) column of the "System administration object" (SysAdminUnit code) object was populated. Users whose email address was stored in the "Name" (Name code) column could not be onboarded to the Creatio AI Twin chat without a data migration. Token generation is unchanged when the "Email" column is populated. This change checks the "Name" column when the "Email" column is empty and uses its value when that value is an email address. If neither column provides an email address, the token is generated without an email address. This enables administrators to onboard existing users to the Creatio AI Twin chat straight away, without preparing and running a data migration for user records.

Integrations and APIs

OAuth authorization

Fixed a runtime issue where provider-specific query parameters configured in the Application URL field in the Application information expansion panel on the Settings tab of the OAuth application page were dropped from the generated authorization request. Previously, Creatio rebuilt the authorization request query string from a fixed set of generated OAuth parameters and overwrote the query of the configured URL, which discarded provider extras, for example, audience. The identity provider then issued an identity-only token that had no API audience, and subsequent API calls returned the 401 Unauthorized status code. Creatio now preserves provider-specific query parameters from the configured URL and forwards them into the generated authorization request. This change enables administrators to integrate Creatio with identity providers that require provider-specific authorization parameters without custom development, and removes a source of authorization failures that were difficult to diagnose from the client side. To stop using this functionality, register and enable the DisableAppendAuthorizeUrlExtraParameters additional feature.

Integrations and APIs

OAuth authorization

Fixed a design-time issue where the Creatio update failed when the OAuth grant type lookup did not include the "Server-to-server (client credentials)" value. Previously, the install script that assigns the default grant type to OAuth 2.0 integrated applications wrote the identifier of that lookup value without verifying that the value existed. This caused a foreign key violation and aborted the update at the configuration update step. Creatio now verifies that the lookup value exists before it updates integrated applications, and skips the assignment when the value is missing. This change enables administrators to complete the Creatio update on databases where the lookup is incomplete, instead of ending with a failed update that blocks any further version update.

More details
  • When the lookup value is missing, the grant type of the affected OAuth 2.0 integrated applications remains empty, which matches the state before the update. To assign it afterwards, reinstall the data binding of the OAuth20 package to restore the value, then run the install script again.
  • The outcome of the script is written to the log: a warning that names the missing record when the assignment is skipped, and the number of updated integrated applications otherwise.

Integrations and APIs

DataService

Fixed a regression where custom HTTP response headers, including Content-Security-Policy, were missing from DataService JSON endpoints on the net472 (classic IIS) host. Previously, lenient JSON responses were built directly as a raw HttpResponseMessage, which skipped the standard Web API response pipeline where the CustomHeadersModule class adds custom headers, so the headers were dropped. To revert to the standard response, disable the UseLenientJsonEncoding additional feature. Creatio now sends lenient JSON responses back through the standard pipeline by using a custom JsonMediaTypeFormatter class that applies the lenient UTF-8 encoding, so custom headers are added to the response again. This change enables administrators to rely on Content-Security-Policy and other custom response headers being consistently present on DataService JSON responses served from IIS.

More details

Lone Unicode surrogates still serialize to U+FFFD instead of causing a 500 Internal Server Error status code.

Integrations and APIs

Calendars

Added synchronization of Microsoft Teams meeting attendance to the Creatio event audience. Previously, after a webinar delivered as a Teams meeting, nobody recorded who attended, so the event audience could not be reported as participated or did not participate. To start using this functionality, register and enable the MeetingAttendanceSync additional feature. This change enables marketers to measure real webinar attendance without manual work.

More details
  • When the MeetingAttendanceSync additional feature is enabled, Creatio retrieves the attendance reports of a finished meeting from Microsoft Graph through the organizer's Graph API mailbox.
  • Every record is stored in the new "Meeting attendance record" (MeetingAttendanceRecord code) object, including attendees that could not be matched to a contact, and the time is summed across multiple sessions of the same meeting.
  • The read-only "Attended" (Attended code) and "Time in meeting, sec" (AttendanceInSeconds code) columns of the "Activity participant" (ActivityParticipant code) object are populated from this data, and for webinar events the audience responses are set to "Participated" or "Did not participate." Creatio displays the attendance in the "Attended" and "Time in meeting, sec" columns in the Participants expanded list on the General info tab of the meeting page.
  • Retry intervals are managed by the new "Attendance sync interval" (AttendanceSyncInterval code) object.
  • The Graph API token requires the delegated OnlineMeetingArtifact.Read.All scope in addition to OnlineMeetings.Read and Calendars.ReadWrite. Without admin consent Graph returns a 403 Forbidden status code.

Integrations and APIs

Calendars

Fixed a runtime issue where a NullReferenceException exception was thrown in the MeetingService.CanUserChangeMeeting() method, preventing an activity from being saved when the website had a mailbox with an empty "Sender's email" (SenderEmailAddress code) column in the "Mailbox synchronization settings" (MailboxSyncSettings code) object. Previously, the calendar repository could not build the owner's calendar model for such a mailbox, so the save failed. This change skips and logs such mailboxes instead, letting users edit meetings even when a mailbox record is incomplete.

Integrations and APIs

Calendars

Fixed a runtime issue where the legacy Google calendar synchronization failed for users whose date and time format uses a period as the time separator, for example, Finnish. Previously, the GActivitySyncProvider class formatted the updatedMin parameter with the user's culture, producing an invalid RFC 3339 timestamp, so the Google Calendar API rejected every request and nothing was synchronized. This change formats the timestamp culture-independently, restoring calendar synchronization for such users.

Integrations and APIs

Calendars

Fixed a runtime issue where the participant status in synchronized meetings did not update when a participant deleted the meeting in Microsoft Outlook without sending a response to the organizer. Previously, the status in Creatio stayed unchanged. This change updates the status to "Declined" after the next calendar synchronization of the organizer and the participant, giving organizers an accurate picture of who declined a meeting.

Integrations and APIs

Telephony

Added the ability to manage agent status in the Asterisk V2 phone connector, based on the AMI QueuePause action. Previously, the SetMsgUserState() and QueryMsgUserState() methods were not implemented in the V2 connector, so the agent status was stuck on "Active" and human agents could not stop call in queues from being routed to them. To use this functionality, add the agentStatusManagementEnabled="true" parameter to the <asterisk> element of the Creatio Messaging Service configuration. This change enables contact center administrators to control queue call distribution by agent availability.

More details
  • When the agentStatusManagementEnabled="true" specifying any status other than the "Ready" status pauses the agent in all of their Asterisk queues. The "Ready" status unpauses them. The status code is passed as the AMI Reason parameter, so Asterisk echoes it back and Creatio receives the exact code.

  • Asterisk is the single source of truth: the connector reads the real state from the QueueMemberPause and QueueStatus events, applies pauses made by a supervisor or the PBX as-is, restores the state on reconnect, and reports it on connect.

  • On call connect, the agent is paused automatically and unpaused when the call ends. A manual status change takes precedence over the automation, and the agent stays "NotReady" through wrap-up.

  • Queue-delivered calls are shown in Creatio while ringing, and the queue number is added to the call's PrivateData column.

  • Available parameters in the <asterisk> element:

    • agentReadyStateCode. Out of the box, "Active."
    • agentNotReadyStateCode. Out of the box, "NotReady."
    • autoPauseOnCommutationStart. Out of the box, "true."
    • autoPauseQueueOnAllCalls. Out of the box, "true." When the value is set to "false," Creatio limits auto-pause to queue calls only.
  • The status codes must match the agent states configured in the User status reasons while messaging lookup. Direct-extension routing is not affected, and the V1 connector remains unchanged.

Integrations and APIs

Telephony

Added the display of a clear message about a missing or expired phone connector license to all out-of-the-box phone connectors that work through Creatio Messaging Service. Previously, when the user had no license for the connector, the connector failed silently. The phone did not connect, nothing appeared in the "Calls" sidebar in the communication panel or the browser console, and the cause could be found only in the messaging service logs. This change enables administrators of on-site and cloud installations to see immediately that telephony does not work because of licensing, instead of investigating logs.

More details
  • If the connector is enabled and the license is missing or expired, the "Calls" sidebar in the communication panel displays the reason to the user, the browser console logs "There is no phone connector license or it has expired," and the connector stops reconnecting until a license is available.
  • Server stack traces no longer reach the browser console. To include them for incident analysis, register and enable the LogTelephonyStackTrace additional feature.

Integrations and APIs

Telephony

Fixed a runtime issue where the Asterisk V2 phone connector closed the call page of the transfer target after an attended transfer. Previously, when Asterisk optimized the local channel after the transfer completed and hung up the orphaned local channel halves, the connector treated that hang-up as the end of the active call. It found the call by the CommonCallId column and sent a spurious RingFinished event, so the page disappeared while the parties stayed connected. This change makes the connector ignore the teardown of optimized local channels, keeping the call page open for the agent who received a transferred call.

Integrations and APIs

Telephony

Fixed a runtime issue where the AsteriskClientNew class of the Asterisk V2 connector stopped registering incoming calls for 10 minutes after an AMI reconnect. Previously, the incomplete tail of the previous connection's last packet stayed in the parse buffer and was glued to the login reply of the new connection, so the reply was discarded and the connector remained in the LoggingIn state until the LoggingInTimeout setting expired, dropping every call event. This change clears the buffer on all reconnect paths, keeping incoming calls registered in Creatio after network interruptions.

Integrations and APIs

Emails

Added the ability to filter incoming emails by sent date during mailbox synchronization. Previously, the Exchange Listener selected mailbox items by their last modification date, so old emails re-entered the synchronization period whenever they were modified or moved on the mail server, and were created in Creatio as new activities. To use this functionality, register and enable the SyncEmailsBySentDate additional feature. Creatio now compares the sent date of each incoming email with the mailbox synchronization period in the LoadEmailEventExecutor class, which processes incoming email events during synchronization, and discards emails sent before the period start, logging the sent date of every processed email. This change enables administrators to keep the synchronized history within the configured period regardless of server-side changes to old messages.

Integrations and APIs

Emails

Changed the error handling of Microsoft Graph mailboxes. An invalid access token now shows the "Connect mailbox again" link in the "Emails" sidebar of the communication panel. Previously, an error that matched no "Synchronization error handler" (SyncErrorHandler code) object record wrote no error code to the mailbox. Because of this, a mailbox that stopped synchronizing after migration from EWS to Graph API looked connected, and the "Connect mailbox again" link did not appear. This change recognizes the ODataError "Access token validation failure. Invalid audience." as a re-authentication error after three retries and shows the link. Other OData errors that re-authentication does not fix stay unreported, to avoid unnecessary alarms. Users can now restore a broken mailbox connection themselves, without contacting Creatio support.

Integrations and APIs

Emails

Changed the handling of the ErrorServerBusy error returned by Exchange Web Services when an email is sent. Previously, the error failed the send immediately, even though the same error during synchronization was retried. This change makes the Exchange Listener treat it as retriable in the same way as ErrorIrresolvableConflict and ErrorInternalServerError. The send is retried once, after the delay suggested by the server when it does not exceed 20 seconds, or after the default 3 seconds otherwise. The suggested delay is written to the log, reducing failed sends during short-lived server load.

Integrations and APIs

Emails

Fixed a runtime issue where the Exchange Listener re-fetched a Graph API message endlessly when Microsoft Graph returned a 404 Not Found status code for it. Previously, such a message was classified as poison, but on the real-time path nothing acted on the classification. The worker then requeued and reloaded the same message about eleven times per second, flooding the logs and consuming Graph API quota. This change applies a retry budget to the real-time path and drops the message after the limit, keeping the service and its logs clean when a message disappears from the mailbox before it is loaded.

Integrations and APIs

Emails

Fixed a runtime issue with the recipient selection in the modal window opened from the To, CC, or BCC fields in the email mini page, accessed via the "Emails" sidebar of the communication panel. Previously, records that a user selected and then hid with a filter were not added to these fields when the user clicked Select. This change adds all selected records regardless of the current filter, letting users pick recipients across multiple filters in one go.

Integrations and APIs

Emails

Fixed a runtime issue where an incoming email reply was linked to the wrong case when one conversation contained messages of multiple cases. Previously, when the RelatedEmails additional feature was enabled, the reply inherited the case of the newest message in the conversation by send date, so replies drifted to the most recent case. Creatio now updates the "EmailMessageHelper" (EmailMessageHelper code) schema of the "Source code" type to first fill the relation columns, including "Case" (Case code), from the activity of the message the reply answers, identified by the ParentMessageId column, using the conversation-wide rule only as a fallback. This change keeps replies linked to the case they actually continue.

Integrations and APIs

Emails

Fixed a runtime issue where duplicate activities were created for emails sent from Creatio when mailbox synchronization processed the sent message before sending had completed. Previously, a draft had no MessageId column value and no mailbox reference yet, so the Exchange Listener created a second activity for the same email. This change keeps a single activity per sent email.

Advanced customization​

Category

Feature

Description

Framework updates

Angular version update

Changed the Angular framework version used by the Creatio platform to version 22. This change aligns the platform with Angular 22 standards and ensures continued compatibility with the latest framework capabilities.

Schema design and management

Schema inheritance

Added the ability to install composable apps with same-named inherited indexes into any product bundle without configuration build failures. Previously, an inherited index re-added under a new internal ID but the same name survived the schema fold. Installing such an app into a bundle that already declared an index with that name then caused a configuration build failure. This change enables no-code creators and developers to deliver and install composable apps with same-named inherited indexes freely, and enables administrators to revert to the previous fold behavior per environment without a rebuild. To stop using this functionality, disable the RetireSameNamedInheritedIndexesOnSchemaFold additional feature. When the feature is disabled, the way each package is applied remains unchanged.

More details
  • The schema fold now applies all layers of a schema through a single difference applier that identifies a collection's items by a declared key, in addition to their internal UId. The EntitySchemaManager class declares the index name as that key for the entity schema's index collection.
  • After every layer is applied, the applier retires the untouched items that collide on that key with an item a package declares. Each retirement is logged as a warning.
  • The public surface remains unchanged.

Schema design and management

Schema inheritance

Fixed an issue where the title of a replacing "Object" type schema reverted to the original title after a package installation. Previously, when a schema title was renamed in an intermediate package, a dependent package that replaced the same schema without changing the title caused the installation to apply the title from the base package instead. This caused the rename to be lost. Creatio now resolves the title from the nearest ancestor package in the dependency hierarchy of the package being installed. This change enables developers to deliver packages that build on renamed object titles without re-applying the renames after every installation, and keeps titles consistent between the development and target environments.

More details
  • The issue occurred because a replacing schema references the original base schema directly rather than the intermediate replacing schema, so title overrides stored in intermediate packages were not considered.
  • Title overrides are now searched across all ancestor packages of the package being installed, and the override from the nearest ancestor is applied.
  • Nearest-ancestor resolution also covers diamond dependency hierarchies, where a package depends on multiple packages that override the same title.
  • A title override in the installed package itself continues to take precedence over inherited overrides.

UI Design

Freedom UI components

Added click rate limiting support to the Button component using new clickRateLimitMode and clickRateLimitTime bindable properties on the base CrtBaseButtonComponent component class. To start using this functionality, add the property to the viewConfigDiff schema section of the corresponding button in the source code of the Freedom UI page. This change enables developers to prevent duplicate submissions and repeated actions from rapid or accidental multi-clicking, without changing existing button behavior unless explicitly configured.

More details
  • The clickRateLimitMode property determines the mode of click rate limiting. Available values:

    • "none." Preserves the existing synchronous behavior. Out of the box, the property is set to "none" for all buttons, ensuring full backward compatibility.
    • "debounce." Fires on the trailing edge: the click is emitted after the specified period of click inactivity.
    • "throttle." Fires on the leading edge: the first click is emitted immediately, and further clicks are suppressed for the duration of the time window.
  • The clickRateLimitTime property determines the time window of click rate limiting, in milliseconds. The property applies only when clickRateLimitMode is not "none."

Integrations and APIs

File processing

Fixed a runtime issue where file content written through the Entity.SetColumnValue() method was ignored on save. Previously, entity save treated a byte[] "Data" type column as file content only when the stream channel (StreamValue/StreamBytes properties) was populated, while the SetColumnValue() method writes to the Value property. An earlier fix covered only the null-or-empty case, so an entity fetched with the "Data" type column already loaded still discarded the new content behind a warning, while the Save() method reported success. This change makes the SetColumnValue() method write a non-empty byte[] to the same StreamBytes property that the SetBytesValue() and SetStreamValue() methods use. The channels therefore never diverge, and the last write through any of the three setters is what the Save() method persists.

More details
  • The GetColumnValue() and GetTypedColumnValue<byte[]>() methods return the pending bytes before the Save() method runs.
  • Re-setting content equal to the loaded content is a no-op when the UseSetColumnValueEqualityCheck additional feature is enabled. Out of the box, the feature is unregistered and disabled.
  • Deliberately remains unchanged: calling SetColumnValue("Data", null) or passing an empty byte[] keeps the loaded content, as do non-byte[] values, custom binary columns, and non-file schemas.
  • The behavior is still managed by the UseEntityFileApi and UseFileEntityDataValueFallback additional features. Both features are registered and enabled.

Integrations and APIs

Chats

Added the ability to define custom identifiers for omnichannel chat channels. Previously, a custom channel had to use an identifier from the fixed list of channel providers, which could not be extended. It was therefore not possible to set up more than one channel of the same type. This change resolves the messenger by the ChannelName value of the message through the new IChannelNamed interface, falling back to the Source enumeration value when ChannelName is not set. Existing integrations continue to work without changes. It also enables developers to add chat channels that the fixed provider list did not cover.

More details
  • The worker binding key is the channel name instead of ChannelType.ThirdParty.ToString(). The ChannelProvider.Name value, the binding key, the ProviderName of the resolver, and the ChannelName of the message must be identical.
  • A ChannelProvider record with a Code value of 1000 or higher is treated as a custom channel. Out-of-the-box providers use the ChannelType ordinal as the Code value, so custom codes must not reuse them.
  • A custom channel requires a provider resolver — a ChannelProviderResolver or IntegrationChannelProviderResolver successor whose ProviderName is the channel name and whose ProviderId is the identifier of the ChannelProvider record.

Administration​

Category

Feature

Description

No-code tools

Creatio theming

Added Theme Designer to create and customize Creatio themes. The designer opens when clicking the btn_add.png button or theme name in the Themes expanded list in the Theming tab in the Appearance setup section. This change enables administrators and no-code creators to create and adjust custom themes visually, without manually editing theme files, and to validate the visual result immediately before applying a theme.

More details

The designer includes:

  • General setup tab. The tab includes the General settings, Brand colors, and System colors expansion panels. The Brand colors panel defines a custom theme. The System colors can also be modified but it is recommended to keep them at their default values for consistency. Changing the base color of any palette automatically regenerates the full set of shades used by Freedom UI components.
  • Preview area. The area renders the configured theme on a set of representative Freedom UI components and updates in real time as palette values change. The preview supports zooming using a dedicated panel and panning by holding down the left mouse button.

To save changes, click the Save button.

No-code tools

Creatio theming

Added a new Theming tab to the Appearance setup section to centralize the management of all available themes in one place. The tab includes the Themes expanded list, which displays every theme discovered in the file content of active packages, excluding the built-in Freedom theme. The list includes the "Name," "Enabled for users," "Default," and "Package" columns. Administrators can rename a theme and select its Enabled for users and Default checkboxes. Changes are applied immediately after saving. This change enables administrators to manage all available themes from a single centralized location, reducing the effort required to configure, enable, or remove themes across the environment.

More details
  • When the Enabled for users checkbox is cleared, Creatio removes the theme from the Theme field on the Basic settings tab of the user profile page. Users whose personal theme becomes disabled receive the current default theme defined by the "Default theme" (DefaultTheme code) system setting, or the Freedom theme if no default is set. Out of the box, the setting value is empty and the Freedom UI theme is applied.
  • When the Default checkbox is selected, Creatio updates the "Default theme" (DefaultTheme code) system setting accordingly. Only one theme in the list can have the Default checkbox selected.
  • Administrators can delete a custom theme from the expanded list using the Delete row action. If the package that includes the theme is locked, deletion is blocked and an informational message is displayed.
  • All actions on the tab are managed by the "Can manage themes" (CanManageThemes code) system operation. Out of the box, only users that have the "System administrators" organizational role can execute the action.

System settings and tools

System Designer

Changed the location of desktop management functionality by moving it from the Appearance setup section to a new Desktop setup section in the System Designer. Previously, desktop configuration was only accessible through the Appearance setup section, which is licensed and unavailable for the Growth subscription plan. This unintentionally restricted access to desktop management as well. The desktop configuration options themselves remain unchanged. This change ensures that desktop management is available regardless of subscription plan, giving administrators consistent access to this functionality.

Performance

System performance

Fixed a runtime issue where a query rule with an unresolvable "Schema" (SysSchema code) object reference was treated as unscoped instead of being skipped. Previously, such a rule was promoted to global, so a "Cancel execution" action bound to one schema could cancel queries against unrelated schemas after the rule was disabled and re-enabled. This change skips a rule with an unresolvable "Schema" (SysSchema code) object reference and logs a warning, while rules with an intentionally empty "Schema" (SysSchema code) object still apply to all schemas. It prevents a misconfigured rule from unexpectedly canceling queries against schemas it was never meant to affect.

Performance

System performance

Fixed a runtime issue where the rule and action caches in the QueryRuleApplier class could briefly contain a mix of old and new rules while the Clear() method was reloading them. A query could then be evaluated against an inconsistent rule set under concurrent reloads. This change rebuilds the caches as a single atomic update, so a query is always evaluated against either the old or the new rule set, never a mix of both.

Performance

System performance

Fixed a runtime issue where the EntitySchemaDbInfoProvider class loaded row counts only once per app lifetime, so a refreshed SysEntitySchemaDbInfo.RowCount column value never reached the running process without a restart. This change makes the EntitySchemaDbInfoActualizer.Actualize() method invoke the EntitySchemaDbInfoProvider.ClearCache() method, so a refreshed row count is picked up by the running process without a restart. Row-count estimates used by the query planner therefore remain up-to-date as data grows.

Logging and monitoring

Configuration activity log

Added a new "get_text_file_content" MCP tool that lets a connected AI Agent read the text content of a file stored in Creatio by its file ID. Previously, an MCP-connected AI agent had no way to retrieve the content of a file, for example, an installation log attached to a configuration activity log record. This limited its ability to analyze such files as part of troubleshooting. The tool is published through Creatio's existing MCP publishing mechanism and returns the file's text content for any file ID to which the agent has access. This change enables AI Agents to read files stored in Creatio, for example, installation logs, as part of automated analysis tasks like investigating installation or compilation issues. It removes the need for a person to retrieve and pass the file content manually. It is intended as a first step toward AI-driven root cause analysis, for example, correlating configuration activity log records with attached installation logs.

Logging and monitoring

Configuration activity log

Added the Replaced column to the Configuration activity log section and Replaced checkbox to the log page for the "Create," "Update," and "Delete" operations on replaced schemas. Previously, these records did not indicate whether the schema that was created, updated, or deleted was itself a replacement of another schema. This made it harder to distinguish standard schema changes from replacement-related changes during an audit. The checkbox is set automatically based on whether the affected schema is a replacement of another "Object" or "Client module" type schema. This change enables administrators and support specialists to identify replacement-related schema changes directly from the log without inspecting the schema itself, speeding up configuration audits and troubleshooting.

Logging and monitoring

Configuration activity log

Added the ability to generate a human-readable AI explanation of schema changes from a configuration activity log record using the Explain with AI button on the log record. This submits the record's unified diff and the verbatim before/after file versions as file attachments to a new Human-Readable AI Explanation agent running the GPT-5.6 Luna model. The button is available when the record has comparable changed files. The resulting explanation is appended to the Description field on the General information tab, after any existing platform-generated description text and separated by a horizontal rule. The explanation is generated only once per record. The AI-generated response is escaped and rendered from Markdown through a fixed, server-side element set, rather than allowing arbitrary markup from the model. A Regenerate button enables the user to request a new explanation on demand. The response always includes a disclaimer that the content is AI-generated. A reduced-coverage note is shown when not every changed file could be attached to the request, since at most 50 files are sent per request. The functionality is available for users registered in Creatio AI Studio, on environments where AI Twin is configured. This change enables administrators to understand a schema change without manually reading the raw diff, while still being able to verify the AI-generated summary against the change details themselves.

More details

To use this functionality, make sure that:

  1. Creatio Business Studio is integrated with the Creatio AI Studio, where the agent is deployed and reachable by agent ID and slot.

  2. The following system settings are populated:

    • "Configuration activity log AI explanation agent deployment slot" (ConfigurationActivityLogAiExplanationAgentSlot code)
    • "Configuration activity log AI explanation poll budget, sec" (ConfigurationActivityLogAiExplanationPollBudgetSec code)
    • "Configuration activity log AI explanation dump folder" (ConfigurationActivityLogAiExplanationDumpFolder code)
    • "Configuration activity log AI explanation agent code" (ConfigurationActivityLogAiExplanationAgentCode code)
  • If generation fails, the Description field remains unchanged, and the AI explanation block on the log page displays the failure reason, a Try again button, and the "If this keeps happening, ask your administrator for help." text.
  • Generation runs as a background task against the Creatio Business Studio's external task API and does not block the page. Up to three such requests run at the same time, and a fourth is refused rather than queued. Uploaded files used for the request are deleted once the run completes, including after a partial upload failure.
  • To stop using this functionality, disable the UseConfigurationActivityLogAiExplanation additional feature.

Logging and monitoring

Configuration activity log

Added support for comparing changes to packages in the Change details tab on the log page in the Configuration activity log section. Previously, Creatio could only build a comparison for "Schema"-type records, requesting a comparison for a package record returned no diff. The comparison for a package is now built from the "app-descriptor.json" and "app-descriptor-extension.json" files of the current and immediate previous version of that package. It uses the same response contract and UI already used for schema comparisons. When no previous comparable version exists, or a required descriptor file is missing or contains invalid data, Creatio now returns a deterministic "Unavailable" result with a reason instead of failing with an unhandled error. Existing authorization rules are enforced, so no comparison data is returned to a user who is not permitted to see the underlying package. Existing schema comparison behavior and its response contract remain unchanged. This change enables administrators and developers to review package-level configuration changes with the same level of detail already available for schema changes, without needing a separate tool.

Logging and monitoring

Configuration activity log

Added support for comparing changes of "Data" type schemas in the Change details tab on the log page in the Configuration activity log section, regardless of which operation logged the change. Previously, compared content was reliably generated only for schema modifications made through the SchemaManager-based save flow. A "Data" type schema logged as part of app creation, package installation, app installation in Application Hub, or section creation did not produce a comparison. Compared content for "Data" type schemas is now generated for all these logged sources, using the same identity resolution and immediate previous-version comparison rules already used for other schema types. When a required payload (source code, metadata, or descriptor) is not available for a given record, the Change details tab now stores and returns an explicit availability state instead of silently omitting it. Content generation is idempotent, so retries do not produce duplicate or inconsistent comparison data. Existing SchemaManager-based schema comparison behavior remains unchanged. This change enables administrators to review changes of "Data" type schemas with the same level of detail already available for changes of other schema types.

Logging and monitoring

Configuration activity log

Added the "Save schema files snapshot" (SaveSchemaFilesSnapshot code) system setting to control whether the current state of schema, package, and app files is saved to the configuration activity log after each change. Out of the box, the value is set to "true." This change enables administrators to control storage use by disabling the snapshot when it is not needed.

Logging and monitoring

Configuration activity log

Changed the way configuration activity log backups are configured. Previously, backup creation behavior for the configuration activity log was managed through the SaveBackupDisabled and SaveBackupMaxSizeMb keys in the "Web.config" file, requiring server-side configuration changes. These keys are now replaced with equivalent "Disable configuration backup saving" ( SaveBackupDisabled code) and "Max configuration backup size, MB" (SaveBackupMaxSizeMb code) system settings. Out of the box, the value of the "Disable configuration backup saving" ( SaveBackupDisabled code) is set to "false." Out of the box, the value of the "Max configuration backup size, MB" (SaveBackupMaxSizeMb code) system setting is set to "200," in MB.

Logging and monitoring

Configuration activity log

Changed the calculation of the backup file size in the configuration activity log to use the size of the resulting backup *.zip file. Previously, the size was calculated as the combined size of the individual *.gz files before compression. This provides a more accurate size check against the limit determined by the "Max configuration backup size, MB" (SaveBackupMaxSizeMb code) system setting. Out of the box, the value is set to "200," in MB. This change gives administrators a reliable way to control backup storage, since the size limit now reflects what actually gets written to drive.

Logging and monitoring

Configuration activity log

Changed the format of the "Install" operation recorded in the configuration activity log to be consistent across all installation sources. Previously, the same install action could be logged differently depending on where it originated, for example, as a "Create" operation for the package from one source and as an "Install application" operation from another. This made it difficult to reliably track and compare "Install" operations across Application Hub, WorkspaceConsole, and Clio utilities. Install operations from all these sources are now recorded under a single parent operation, "Install application or package." This parent operation contains the main configuration activity log record along with the child operations specific to the originating source. This change enables administrators and support specialists to consistently locate and interpret "Install" operations in the configuration activity log regardless of the installation source, simplifying auditing and troubleshooting.

Logging and monitoring

Configuration activity log

Fixed a runtime issue where a failed app installation was recorded in the configuration activity log with a "Success" status, and the installation log file was not attached. This happened when the installation failed without throwing an exception, for example, when the installed packages could not be confirmed. In that case, the configuration activity log record was never finalized and kept its default "Success" status, with no duration, description, or attachment. Installations that failed with an exception were already finalized correctly, which is why the issue appeared to affect only some installations. The installation operation record is now finalized on every exit path across Application Hub, WorkspaceConsole, and Clio utilities. Finalization now writes the actual status ("Success" or "Error"), the operation duration, the modification timestamp, and a description of the outcome. It also attaches the installation log file whenever a description is present. This change enables administrators and support specialists to consistently rely on the configuration activity log status to detect failed app installations across Application Hub, WorkspaceConsole, and Clio utilities. They no longer need to separately inspect the installation log or the Application Hub.

More details
  • The modification timestamp is now updated on finalization, so it no longer matches the creation timestamp for a completed operation.
  • The installation log file is now attached to the record whenever a description is present. The backup file remains attached only once.

Logging and monitoring

Configuration activity log

Fixed a runtime issue where a configuration compilation or app installation operation interrupted by an unexpected app restart was recorded in the configuration activity log as successful, or was missing from the log entirely. Neither outcome reflected the actual failure. Such an operation is now recorded with an "Error" status instead of "Success" or a missing record. This change enables administrators to reliably detect configuration compilation and installation operations that were interrupted by an unexpected app restart.

Logging and monitoring

Configuration activity log

Fixed a runtime issue where configuration activity log records for the same operation could be logged under two different users. Previously, an administrator other than the system user could install an app, create an app, create or update a section, or save or delete a schema in a designer. Part of the resulting log records included the user who performed the action. The rest included the system user instead, because those steps run internally on the system connection. Examples include generating source code, installing data, generating static content, generating runtime metadata of an "Object" type schema, updating the database structure, and creating localizations. Configuration activity log records for these operations, including operations without a parent record, are now consistently logged under the user who initiated the operation, regardless of which internal connection performed the underlying work. This change enables administrators to reliably audit who performed a configuration change by trusting the author included in the configuration activity log.

More details
  • Covers activity workflows for app install and uninstall, app creation, section creation and update, package include/exclude, setting a package as current, and configuration restore from backup.
  • Covers previously parentless records produced by designer save for any schema type, the schema designer delete/rebuild endpoint, schema image upload, change log build, and translation actualization.
  • Background operations with no single initiating user, for example, app startup content generation and the static content generation watcher, or operations that only run on the system connection, for example, package dependency app, remain unchanged. These continue to be logged under the system user.
  • The "Clear configuration activity log" operation remains unchanged and is tracked separately, since it can also run as a scheduled job where the system user is the correct author.

Logging and monitoring

Configuration activity log

Fixed a runtime issue where saving a business process could fail and abort the save if writing an audit record to the configuration activity log failed at the same time. This could happen, for example, due to a foreign key error when a child configuration activity log record was written before its parent record had committed. Previously, this kind of configuration activity log write failure propagated to the business process save and was reported to the user as a save error. A failure while writing to the configuration activity log no longer interrupts or fails the operation being audited, for example, saving a business process. This change enables users to save business processes reliably even if an audit record cannot be written at that moment, instead of having the save itself fail because of an unrelated logging error.

More details
  • The underlying timing issue that can cause a child log record to be inserted before its parent, a foreign key error on the configuration activity log, is not addressed by this change. It can still occur.
  • The corresponding audit record may be incomplete or missing when this happens.

Logging and monitoring

Configuration activity log

Fixed a runtime issue where a deadlock could stall saving a business process version, or using the Set as actual version action, for up to 500 seconds. Other requests on the same node were blocked while it lasted. The Set as actual version action is available in the btn_products_change_field.png button menu on the Versions detail on the Process versions tab of the business process page in the Process library section. This occurred when the UseConfActivityLog additional feature was enabled and file storage was configured to use external (cloud) storage, for example, Azure or S3. Previously, the configuration activity log wrote the audit file for a saved schema in two separate steps. When the second step resumed on a different execution thread, which external file storage makes more likely, the two steps could run on different database sessions and end up waiting on each other indefinitely. The stall was cut off only by the database command timeout. The configuration activity log now writes the audit file for a saved schema in a single step, removing the condition that could cause this self-deadlock. This applies regardless of the file storage type or whether the save runs inside an open transaction. It applies to any schema-save artifact written by the configuration activity log, including package and app installation logs and archives, not only business process versions. This change enables administrators to keep the configuration activity log enabled on environments that use external file storage, without the risk of business process saves stalling and blocking other requests on the same node. The fix applies when updating to version 10.1 Unlimited.

Logging and monitoring

Configuration activity log

Fixed a runtime issue where "Client module" type schemas were not tracked in the configuration activity log when a new section was created in an app built based on the template. Previously, opening the parent "Create" record for the new section did not show change details for these schemas. "Client module" type schemas created together with a new section in a template-based app are now tracked in the configuration activity log, together with their change details. This change enables administrators to fully audit schema changes introduced when adding sections to template-based apps.

Logging and monitoring

Configuration activity log

Fixed a runtime issue where an error occurred when a user created, edited, or deleted a record of the "Activity" (Activity code) object on environments that had the change log enabled for that object. Previously, the "AI quality score" (AiQualityScore code) column had the Update change log checkbox in the Behavior property block of Object Designer selected. Creatio therefore started to include the column in the change log statement as soon as the app was installed. The matching physical column, however, was added to the change log table only by the database structure update. If the structure update did not complete for the "Activity" (Activity code) object during the update, every attempt to create, edit, or delete an activity returned an error. The error stated that the column does not exist in the change log table. The record was still saved because the change log entry is written after the main statement, but the error was written to the log and displayed to the user. This change clears the Update change log checkbox for the "AI quality score" (AiQualityScore code) column, excluding it from the change log statement while the change log keeps recording the columns configured by the administrator. Administrators can therefore use the change log for activities without receiving errors during record operations, and the change log no longer accumulates entries for a value that AI recalculates automatically.

Creatio maintenance

Caching

Changed the cache invalidation logic for the IndexedDB storage by excluding column changes that do not affect page rendering from the cache reset conditions. Previously, the cache was reset on changes that had no impact on the rendered page, which discarded valid cached data and forced Creatio to rebuild pages on the next load. This change reduces page loading time at runtime for administrators and end users and lowers redundant client-side processing on environments where configuration changes are frequent.

User and access management

Organizational roles

Added the Synchronize with LDAP checkbox and the LDAP element field to the Managers tab of the organizational role page. Previously, LDAP synchronization was configured for the organizational role only, and users had to be added to the management role manually after every change in the corporate folder. LDAP synchronization remains unchanged in all other scenarios. This change enables administrators to bind an LDAP element to the management role of an organizational role. The users of that element are included in the role automatically during synchronization, in the same way as for existing LDAP element to Creatio role bindings. This keeps management permissions aligned with the corporate folder without manual role assignment after every staff change.

User and access management

Access rights

Added the ability for administered operation right changes to take effect without a re-login. Previously, the current user's administered operations were served from a session-scoped cache that nothing invalidated: the operation was updated only in the "Permission granted to" (SysAdminOperationGrantee code) object and the browser cache hash. The server-side copy stayed stale until re-login, and an administrator on another web farm node could not invalidate it at all. This change enables administrators to grant or revoke operation rights and have them apply immediately, without asking users to log out and back in. To stop using this functionality, disable the UseAdministratedOperationsCachePerUser additional feature.

More details
  • The CurrentUserAdministratedOperations cache moved to an application-scoped, per-user Store.Cache.GroupedLocalOnly group — the same shape the entity operation and column right caches already use.
  • The cache is expired through the ExpireGroup() method, which bumps a distributed timestamp, so every web farm node drops its local copy on the next read.
  • Invalidation is wired into the grantee setter, both deleters, and the ExpireAllUsersRightsCache() / ExpireUsersRightsCache() methods, so role-membership changes and package installs are covered by the same path.

User and access management

Object permissions

Added the ability to control access to the "Chat queue" (ChatQueue code) object records using the base "Create," "Read," "Edit," and "Delete" operation permissions. Previously, these permissions were not enforced for the "Chat queue" (ChatQueue code) object, so any user could read, create, edit, and delete chat queue records regardless of their configured permissions. This change enables administrators to restrict who can work with chat queue records.

User and access management

Object permissions

Added the ability to control access to records of the "Attachments and notes detail object in "Services" section" (ServiceItemFile code) and the "Attachments and notes detail object in "Service contracts" section" (ServicePactFile code). Access is controlled using the base "Create," "Read," "Edit," and "Delete" operation permissions. Previously, these permissions were not enforced for these objects, so any user could read, create, edit, and delete files attached to service items and service pacts regardless of their configured permissions. This change enables administrators to restrict who can work with these files.

User and access management

System operations

Added the ability to control who can change the "Default theme" (DefaultTheme code) system setting using a new "Can manage themes" (CanManageThemes code) system operation. Out of the box, only users that have the "System administrators" organizational role can change the setting, while reading its value remains available to all users.

User and access management

Single Sign-On

Added an API that registers an OpenID SSO provider on a Creatio instance in a single call. Previously, an OpenID provider had to be registered manually by an administrator, which made it impossible to configure SSO as part of an automated environment provisioning flow. The API accepts the code, display name, issuer URL, client ID, and client secret of the provider, and optionally the auto-login setting. It creates the provider record configured against the supplied issuer, enables it, and returns the identifier of the created record. Registration is atomic, so no partial provider record remains if any step fails. A call with a code that already exists, a missing required field, or an issuer URL whose discovery document is unreachable returns a validation error and creates no record. The API is used by the Clio utility, so an SSO provider can also be registered from the command-line interface. This change enables administrators and provisioning tools to configure SSO on a new environment automatically, without registering the provider by hand before users can sign in.

User and access management

Single Sign-On

Added the "OIDC user identity" (OidcUserIdentity code) object that links a Creatio user to the OpenID Connect identities issued for them by different providers. Previously, the identifier returned by the identity provider was stored in the "OpenID sub claim" (OpenIDSub code) column of the "System administration object" (SysAdminUnit code) object, which assumed one identity provider per user. In a setup with multiple OpenID Connect providers, a login through a second provider either overwrote the stored identifier or failed to match the user, and the same person had to be given duplicate accounts. Each record of the "OIDC user identity" (OidcUserIdentity code) object links a user, an OpenID Connect provider, and the identifier issued by that provider, so one user can hold one identity per provider. At login, Creatio resolves the user by the combination of identifier and provider. This change enables administrators to link a single user to multiple identity providers at once. They might, for example, run the previous and the new provider in parallel during a migration until the previous one is deprecated. Alternatively, they can combine corporate SSO with Creatio ID SSO so that the same user can also reach the Creatio ALM ecosystem. To stop using this functionality, disable the OpenIdMultiProviderIdentities additional feature.

More details
  • A user can have at most one record per OpenID Connect provider. The combination of provider and identifier is unique, so the same identifier from the same provider cannot be linked to two users. The same identifier value might legitimately occur across different providers.
  • The "OpenID sub claim" (OpenIDSub code) column is kept in the "System administration object" (SysAdminUnit code) object. It is used as a transitional fallback when no record is found in the "OIDC user identity" (OidcUserIdentity code) object.
  • Data is migrated per user rather than during the update to version 10.1 Unlimited. On the first successful OpenID Connect login after the update, the user is resolved through the "OpenID sub claim" (OpenIDSub code) column. The identifier is then written to the "OIDC user identity" (OidcUserIdentity code) object and linked to the provider that authenticated the user. Every subsequent login through that provider is resolved through the "OIDC user identity" (OidcUserIdentity code) object.
  • If the identity provider returns a different identifier for a user and provider that already have a record, the login is refused and the stored record remains unchanged.
  • The identifier is limited to 250 characters.

User and access management

Single Sign-On

Added the OIDC user matching rules expanded list to the Single Sign On configuration section in the System Designer. The list resolves an incoming SSO identity to an existing Creatio user when no OpenID Connect identity record matches. Previously, a user who had been created in Creatio before being onboarded to OpenID Connect, or who signed in through a second OpenID Connect provider for the first time, was not recognized. The login then attempted to create a new user and either failed with a duplicate error on name or email, or silently created a duplicate user record. Customers therefore had to pre-populate identities for every existing user before rollout. Each rule maps a claim of the identity provider token to a column of the "System administration object" (SysAdminUnit code) object and has an explicit order that determines the sequence of evaluation. Out of the box, the list maps the email claim to the "Name" (Name code) and "Email" (Email code) columns. This change evaluates the rules in that order after the list and the deprecated column fallback, and creates the OpenID Connect identity record for the resolved user. Every subsequent login through that provider is resolved through the identity record directly. This enables administrators to onboard an existing user base to SSO, or add a second identity provider, without preparing user identities in advance and without producing duplicate user records. To stop using this functionality, disable the OpenIdRuleBasedUserMatching additional feature.

More details
  • The rules are stored in the "OIDC user matching rule" (OidcUserMatchingRule code) object and are managed in the list on the page.
  • The list includes the "OIDC token claim," "User column," and "Order" columns.
  • Administrators can add, edit, reorder, and delete rules, including the out-of-the-box rules. The list is available to system administrators only.
  • The "User column" value is restricted to a curated set of columns of the "System administration object" (SysAdminUnit code) object.
  • To stop creating the OpenID Connect identity record for a matched user, disable the OpenIdMultiProviderIdentities additional feature.

User and access management

Single Sign-On

Added the ability to enable token-based sign-in to the Creatio Mobile app on Microsoft Intune-managed devices. Administrators do this using the "MSAL Mobile sign-in via Entra Id" value when adding the provider in the External identity provider expanded list of the Single Sign On configuration section in the System Designer. Administrators register the provider using the values from the Creatio Mobile app registration on the Microsoft Entra ID portal. Creatio receives ID and access tokens through MSAL, with Microsoft Company Portal used as the broker app. Creatio then validates the received token and resolves the Creatio user, whose identity and permissions are used for the entire mobile session. Previously, authorization on Microsoft Intune-managed devices was possible, but a seamless sign-in experience was not. Users entered their credentials manually in the Creatio Mobile app, unlike in their other corporate apps. This change enables administrators to deliver corporate-grade sign-in for the Creatio Mobile app through a dedicated provider. The provider is configured separately from the web SSO provider. Existing SSO configurations remain unchanged.

More details
  • The mobile provider is registered in addition to the provider used for web SSO. It is stored as an independent record with its own setting template, so adding or saving it does not modify existing Microsoft Entra ID or OpenID provider configurations.
  • The provider is not displayed among the sign-in options on the Creatio login page in a browser. The base Creatio login experience remains available for users and devices that are not enrolled in Microsoft Intune.
  • The Step 2. Specify the parameters of the registered Entra ID application expansion panel on the MSAL Mobile sign-in via Entra Id page includes the Application (client) ID, Identity provider URL, and Discovery URL required fields. It also includes the expansion panel to specify audience. The Directory (tenant) ID field is optional and is validated against the token on the server side.
  • The Application (client) ID field, Directory (tenant) ID field and audience of the received token are validated during token validation. A token that fails any of these checks is rejected, and the failed sign-in attempt is recorded in the logs.
  • The Creatio user is resolved by the OpenID sub claim. If no user is matched by sub, the existing OpenID user matching rules are applied.
  • Object operation permissions and record access rights are applied to the mobile session identically to the web app behavior, and all data changes are saved under the matched user.
  • User matching rules, JIT provisioning, and claims and field matching rules are common to all registered providers and apply to this provider without separate setup.
  • Access to Creatio through Microsoft Application Proxy is supported for cloud and on-site deployments.

User and access management

Single Sign-On

Added the key identifier (kid) to the public signing key that Creatio publishes and to the identity assertion tokens that Creatio issues. Previously, neither the key in the JWKS document of the OpenID discovery endpoint nor the header of an issued token carried a key identifier. An integration therefore had to assume that the published key set contained exactly one key, instead of selecting the key by its identifier as the JSON Web Key standard prescribes. Creatio now derives the identifier from the public key material itself, so the identifier remains the same across Creatio restarts and across nodes, and changes when the signing key is regenerated. This change enables developers to verify Creatio identity assertions with any standard JOSE library without custom key-selection logic, and keeps their integrations working when the signing key is regenerated.

More details
  • The identifier is published in the JWKS document of the OpenID discovery endpoint and in the public key endpoint of the identity assertion service. It is also included in the header of tokens issued for the current user and of delegated tokens.
  • The identifier is computed as the RFC 7638: JSON Web Key (JWK) Thumbprint of the public key, so an integration can recompute it from the published key material and requires no additional configuration.
  • The published key set still contains a single key. Regenerating the signing key replaces the previous key rather than adding a second key, so tokens issued before the regeneration cannot be verified after it.

User and access management

Single Sign-On

Changed the OpenID Connect SSO login flow to apply user matching rules even when JIT provisioning is disabled. Previously, disabling JIT provisioning also disabled automatic matching to existing users, so SSO logins were not linked to the user records created by an administrator, and an administrator-controlled provisioning model could not be configured. Creatio now evaluates the rules of the OIDC user matching rules expanded list in the Single Sign On configuration section of the System Designer in priority order. It resolves the incoming identity to an existing user by the mapped column of the "System administration object" (SysAdminUnit code) object. The same rules apply when JIT provisioning is enabled. Out of the box, the list maps the email claim to the "Name" (Name code) and "Email" (Email code) columns. If a user is resolved, the login proceeds under that user. The administrator-managed data and roles of that user are not overwritten with identity provider attributes. If no rule resolves a user, access is denied and no user record is created. This enables administrators to run a fully administrator-controlled access model, where only explicitly created users can sign in and no user records are created or modified by the identity provider.

User and access management

Single Sign-On

Fixed a runtime issue where login through an OpenID SSO provider failed when the provider had been registered through the provider registration API. Previously, the client secret of such a provider was encrypted twice when it was saved. The value sent to the identity provider during the authorization code exchange therefore did not match the configured secret, and the identity provider rejected the request as an invalid client. The user received a general login error that gave no indication that the stored client secret caused the issue. Creatio now encrypts the client secret once when it is saved, so the value sent during the token exchange matches the secret that was configured. This change enables administrators to register OpenID SSO providers programmatically and have users sign in on the first attempt, instead of investigating a login failure that the error message does not explain.

More details
  • Providers configured through the Identity providers management section in the System Designer remain unchanged. Their client secret has always been stored in the correct form.
  • A provider that was registered through the API before this change retains a client secret that cannot be used for authentication. To correct such a provider, delete it and register it again.

User and access management

Single Sign-On

Fixed a runtime issue where the "Default identity provider" (DefaultIdentityProvider code) system setting was mishandled in the Identity providers management section in the System Designer. Previously, the section read the setting on the data load path of both lists and did not handle the case where the setting held no stored value. The rejected read broke the load chain and was repeated on every data source load. Creatio now treats a setting without a stored value as an ordinary outcome and reads the setting once per page context. The page no longer clears the setting whenever the Default identity provider field in the Default identity provider expansion panel on the Connections & mappings tab is empty on save. It clears the setting only when it has already displayed the stored value to the administrator or has confirmed the setting has no value. The changes are applied automatically when updating to version 10.1 Unlimited. This change enables administrators to work with identity providers without repeated failing requests, and protects the configured default identity provider from being removed by a save that the page could not verify.

More details
  • If the setting cannot be read, or holds a value the page cannot display, the record is still saved, and the setting is left unchanged. The administrator is notified that saving again with an empty field will remove the value.
  • A read performed during a save is bounded by a timeout. A read that exceeds it is abandoned rather than applied, so a value that arrives late cannot clear the setting after the fact.

End user experience​

Category

Feature

Description

Communications

Notifications

Fixed a runtime issue where the notification mark did not appear in the "Feed" sidebar on the communication panel after a new system notification arrived. This happened when that panel was already open in another browser tab of the same session. Previously, this could happen, for example, a notification about updated record permissions. The notification mark now appears in the "Feed" sidebar on the communication panel in this scenario, regardless of which action generated the notification. This change enables users to reliably notice new system notifications on the communication panel.

Communications

Message templates

Added a new CrtTemplateDesigner composable app that lets administrators build personalized, multi-language, and conditional service email templates visually, without depending on packages from Creatio Marketing product. The app is available in all product builds, including Creatio Business Studio, when updating to version 10.1 Unlimited. Previously, templates for emails sent from the message composer, business processes, and cases could be created only in the legacy Content Wizard (MJML) editor, since the visual designer was available only in the Bulk emails section. This change makes a visual designer available to every product out of the box, without a separate manual installation step.

More details
  • The new app is delivered as the CrtContentDesigner package. It adds the Message templates section, available in the same workplaces as the deprecated Email templates section. Message template page includes the designer.
  • Templates created in the new designer are stored in the existing "Message template" (EmailTemplate code) object with "Config type" (ConfigType code) column set to "2": the editable designer content in the "TemplateConfig" (TemplateConfig code) column and the rendered HTML in the "Body" (Body code) column, so the message composer, business processes, and cases consume them through the existing "Message template" (EmailTemplate code) and "Email template localization" (EmailTemplateLang code) objects without changes.
  • The "Message templates list page" (MessageTemplates_ListPage code) schema of the "Client module" type lists all message templates. Records with "Config type" (ConfigType code) column set to "2" open on the "Edit email template page" (MessageTemplates_FormPage code) schema of the "Client module" type with the full-height designer, while chat, push notification, and deprecated email templates open on the Classic UI page.
  • The New button in the Message templates section includes "Push notification template," "Email template," and "Chat template" options. Creatio hides email templates from the deprecated Email templates section.
  • On the email template page, the Template name, Macro source, and Template type fields are set at creation. The Template type field is read-only and set to "Email template." The Subject field is read-only and shows the default-language subject, and subjects are edited per language in the designer.
  • The Languages field references the Customer languages lookup records whose "Is used" column is set to "Yes." The "Template languages" option opens the window to add and remove template languages. Each language version ("Subject" (Subject code), "Body" (Body code), and "TemplateConfig" (TemplateConfig code) columns) is stored in the "Email template localization" (EmailTemplateLang code) object, and the default language is stored in the "Message template" (EmailTemplate code) object. A new language is seeded from the default language, and send-time resolution (MacrosHelperService.GetMultiLanguageTextTemplate() method) remains unchanged.
  • The Merge tags menu for the content properties in the Email template designer lists the active records of the Message template macro lookup. Out of the box, the lookup is unregistered. To register it, add a lookup based on the "Message template macro" (EmailTemplateMacros code) object.
  • The Custom merge tags button is available for the content properties in the Email template designer when the template has the Macro source field populated, opens the modal window rooted at that object, and inserts a [#columnPath#] token that the standard macro pipeline resolves on send.
  • Row display conditions are stored in the new "Email template row condition" (EmailTplRowCondition code) object ("Name" (Name code), "Description" (Description code), "Condition rule" (ConditionRule code), "Email template" (EmailTemplate code) columns), shared across rows and languages. Rows reference a condition by ID in "TemplateConfig" (TemplateConfig code) column and by comment sentinels in "Body" (Body code) column, and duplicating a template clones its conditions. When the template is applied to a record, the new MacrosHelperService.GetMultiLanguageTextTemplateWithConditions() method evaluates each condition against the record before macro resolution and removes rows whose condition is false. A condition that cannot be evaluated hides the row unless Show the row if the condition can't be evaluated checkbox in the Display conditions window is selected.
  • The preview includes the Display conditions field to show or hide conditional rows at design time. To stop using this functionality, disable the EmailTemplateConditionalContent additional feature. When the feature is enabled, the "Email template display condition max count" (EmailTemplateDisplayConditionMaxCount code) system setting applies. Out of the box, the value is set to "4."
  • Rows saved in the designer are stored for the "Template designer" record of the "Content designer type" (ContentDesignerType code) object and are available in the Rows tab of every template.

UI and navigation

Creatio login page

Added support for custom logo configuration on the Creatio login page for .NET builds. Previously, this functionality was available only for .NET Framework builds. This change ensures .NET and .NET Framework builds now support the same login page branding configuration.

UI and navigation

Workplaces

Added the Segments section to the "Marketing" workplace. Previously, users added the section to the workplace manually using the Workplace setup section in the System Designer. This change enables marketers to build audiences and set up campaigns within a single workplace, without configuring the workplace manually.

More details
  • The section is displayed between the Contacts and Accounts sections.
  • For newly deployed instances that include Creatio Marketing product, the section is displayed in the "Marketing" workplace out of the box.
  • For existing instances that include Creatio Marketing product, the section is displayed in the "Marketing" workplace when updating to version 10.1 Unlimited.
  • Customizations of the "Marketing" workplace, for example, added, removed, or reordered sections, remain unchanged.

UI and navigation

Workplaces

Fixed a runtime issue with the user group setup of the "My applications" workplace whose "Usage type" column in the Workplace setup section is set to "Web." Previously, on fresh deployments the workplace could be created without the "System administrators" user group in the User groups detail on the Workplace setup tab of the workplace page. Its user groups were then empty, and the workplace was unavailable to administrators until the role was added manually. This change ensures that administrators can access the "My applications" workplace immediately after deployment, without manual post-installation setup.

UI and navigation

Workplaces

Fixed inconsistent selection for primary Freedom UI sections that share the same code on one object. Previously, the primary section was resolved using the first workplace accessible to the user by position, rather than the workplace the user actually had open, and the outcome could vary depending on the Creatio database. Users with different workplace access, or the same data on different database frameworks, could see different sections in the navigation panel. This led to inconsistent navigation from global search, record links, and other flows that open a record without specifying a section. The primary section is now resolved based on the workplace the user actually has open, with a consistent result across database frameworks. Creatio now selects the section present in the current workplace first. If none is present, the section from the highest-priority accessible workplace is used. Otherwise, any remaining candidate is used. Primary section ordering in the "All Apps" workplace now follows the alphabetical order of section captions instead of falling back to the first accessible workplace. This change enables users to consistently reach the correct record section from global search and other primary-section-dependent flows, regardless of the database framework or their workplace configuration. The new logic applies only when the "Use Freedom UI interface" (UseNewShell code) system setting is set to "true." To stop using this functionality, register and enable the DisableWorkplaceBasedPrimarySection additional feature.

UI and navigation

App management

Fixed a runtime issue where the icon of the Web Chat app in the New application window in Application Hub was displayed with a green background instead of a transparent background. The issue occurred when adding a new app or editing an existing app. This change ships a correctly formatted icon with a transparent background, ensuring the Web Chat app icon matches the other app icons in the Application Hub.

UI and navigation

Pages

Changed the backward navigation behavior in the Freedom UI so the "Close" action and the browser Back button open the desktop whenever no in-app page remains below the current page. Previously, opening a Freedom UI page through a redirect from a Classic UI link left a stray Classic UI record in the browser history. "Close" action or Back button could then return users to that Classic UI page instead of the desktop, or exit the instance entirely once that record was consumed. The changes are applied automatically when updating to version 10.1 Unlimited. This change enables users to rely on consistent, predictable backward navigation for Freedom UI pages, reducing support requests caused by users unexpectedly landing on outdated Classic UI pages or leaving the instance. To stop using the functionality, register and enable the DisableFallbackNavigationToDesktop additional feature.

More details
  • Backward navigation now checks whether an instance page actually remains available. The check applies after a page reload, in a new tab, and after the Creatio session is restored, instead of only checking whether any in-app navigation has occurred yet.
  • The existing EnableNavigationToDesktopBeforeQuit additional feature was replaced by the DisableFallbackNavigationToDesktop additional feature. Any existing records created for the EnableNavigationToDesktopBeforeQuit feature no longer affect Creatio behavior.
  • Redirects from Classic UI links to Freedom UI form and list pages update the existing browser history record instead of adding a new record.
  • Creatio tracks, per browser tab, the earliest history record that belongs to the Creatio session. This lets "Close" action or Back button correctly return to the desktop after reloads and multi-step navigation rather than only on the very first navigation.
  • This tracked record point is re-established when Creatio is opened in a new tab or re-entered after leaving to an external URL in the same tab.

UI and navigation

Pages

Fixed a runtime issue where saving a record returned an error. This happened on a Freedom UI page that has an additional data source related to the primary data source by a "Guid" type column, for example, Id = PDS.Id. Previously, changing the value of the primary display column of the primary data source and then saving the record wrote a lookup-shaped value into the relation attribute of the dependent data source instead of a plain identifier. The permission check request failed with the 400 Bad Request status code, and the record was not saved. Creatio now writes a plain identifier to relation attributes that are not lookups, so the permission check completes and the record is saved. This change enables no-code creators to build Freedom UI pages that combine multiple related data sources without hitting save failures, and they no longer need to restructure page data sources as a workaround.

More details
  • The value written to the relation attribute of a dependent data source is wrapped in a lookup object only if the attribute has the "Lookup" data value type. Attributes that have the "Guid" data value type receive a plain identifier.
  • Creatio sends a separate permission check request for each data source of the page, so the error appeared on the request sent for the dependent data source.
  • The fix applies both when the dependent data source uses the same "Object" type schema as the primary data source and when it uses a different schema.

UI and navigation

Pages

Added support for theming in the blank-slate illustration on the feed. Previously, its colors and white background were hard-coded. This change makes the illustration use the --crt-color-icon-base CSS variable and a transparent background, keeping the feed consistent with custom themes.

UI and navigation

Pages

Fixed a runtime issue where the activity status was not set to "Finished" when a user completed an activity with a pre-filled result from the "Activity mini page (Freedom UI)" (CrtActivityMiniPage code) schema of the "Client module" type opened from the next steps. Previously, the status handler fired during page initialization because the Result field was already filled, and the later user action set the same value again without marking the Status field as changed, so the status was not saved and the task stayed in next steps. This change saves the status on every completion, letting users close tasks from next steps reliably.

UI and navigation

Pages

Fixed a runtime issue where the "The page contains unsaved changes" dialog appeared when a user completed two or more next steps in a row through the "Activity mini page (Freedom UI)" (CrtActivityMiniPage code) schema of the "Client module" type. Previously, a stale changed-data flag survived a successful save of the reused mini page, so the second completion showed the dialog instead of closing the page even though the activity had been saved. This change closes the mini page after every save, letting users complete consecutive next steps without extra confirmations.

UI and navigation

Pages

Fixed a runtime issue where progress bars did not load on Freedom UI sections, such as Cases and Leads, for regular and portal users. Previously, the mechanism responsible for initializing progress bars failed for non-administrator and portal users because the underlying schema lacked the necessary access rights after a related schema change. Administrators were unaffected, since they bypass object-level access rights, so accurate section progress visibility was previously available only to administrators. Progress bars now load correctly for administrators, regular users, and portal users alike. This change restores accurate section progress visibility for regular and portal users in Freedom UI.

UI and navigation

Pages

Added the ability to attach files from Creatio sections to an email in the message composer. Previously, the btn_upload_file.png button uploaded files only from the user device. This change enables users to attach existing Creatio records to an email in one action and enables administrators to expose any section as an attachment source without additional coding.

More details
  • In the Freedom UI Designer, the "Email" channel properties let administrators add attachment sources: for each source, they select a section, and the designer derives its file object ({Section}File by convention, editable, with the "Uploaded file" (SysFile code) object offered as a fallback) and the link column to the record.
  • At runtime the btn_upload_file.png button now includes a menu. Available options: "Attach from {section}" for every fully configured source and the "Upload attachment."
  • A source opens a modal window of the section's files with the name, size, and section record, hides files that are already attached, and attaches the selected files by reference through the new crt.AddAttachmentsByReferenceRequest request, so nothing is uploaded from the browser.
  • On send, the server creates "File and link of activity" (ActivityFile code) object records of the "Link to object" type that point to the source files.
  • Sources can also be set in the source code of the Freedom UI page through the attachmentSources configuration object of the message composer.
  • For sources that are based on the "Uploaded file" (SysFile code) object, the lookup does not persist the user's column layout and sorting.

UI and navigation

Pages

Added the ability to save an advanced filter or one of its top-level groups as a folder using the btn_save_the_current_filter_to_a_folder.png button in the Filters toggle panel. Previously, a filter built at runtime could not be persisted for reuse, and an equivalent folder filter had to be created separately from scratch. This change validates the selected filter part, requests a folder name, creates the folder at the top level of the connected folders, and applies the folder filter without a page reload. The active folder, the applied filter, and the expanded state of the folders remain unchanged.

More details
  • The saved folder preserves the logical structure of the filter, including AND/OR groups, nested groups, operators, values, and presets. Disabled conditions are stored in the folder as inactive.
  • When a single group is saved, sibling conditions are excluded and the group becomes the root of the folder filter.
  • The btn_save_the_current_filter_to_a_folder.png button is hidden for conditions inside related records and aggregation groups, because those conditions target a different "Object" type schema.
  • Folders are created with default permissions, so a new folder is visible only to its owner. Duplicate folder names are allowed, consistent with existing folder rules.
  • For sections whose folders store filters in the classic format, the filter payload is converted using the same converter that the folder filter editor uses when reading filters, so a filter saved from the new builder opens correctly in the classic editor.
  • If the selected filter or group contains no valid conditions, Creatio does not create a folder and displays a validation message. The state of both the Filters and Folders components remains unchanged.

UI and navigation

Pages

Added the ability to automatically pre-fill the To, CC, and BCC fields of the message composer based on the current record, for example, the account or contact page. Previously, this functionality was available in Classic UI only. This change enables users to send emails from pages without entering recipients manually. Recipients already present in the composer, for example when a user replies to a message from the timeline, are not overridden.

UI and navigation

Pages

Changed the recipient search in the To, CC, and BCC fields of the message composer in the email mini page to return the same results as global search. Previously, the composer split the query into words, kept only the records that contained every word after the ElasticSearch response, and returned at most the first 15 hits. Results were incomplete, differed from global search, and were slow for broad queries. To use this functionality, register and enable the EmailRecipientsSearchV2 additional feature. This change enables users to find recipients as quickly and completely as in global search.

More details
  • The new search sends the original query to global search, respects record access rights, offers all email addresses of a matching record when a user searches by name, and offers only the matching address when a user searches by email.
  • Users can scroll through further suggestions instead of being limited to the first page of results.
  • The list of searched objects is managed by the EmailSearchEntities system setting. Out of the box, the value is set to "Contact,Account,Lead." To change the list, add the EmailSearchEntities system setting, set the Type field to "Text" and add a new object code in the Default value field on the system setting page. Invalid values are ignored.

UI and navigation

Pages

Fixed a runtime issue where the attachment extension check in the message composer blocked valid file types. File type restrictions are managed by the "File extensions deny list" (FileExtensionsDenyList code) system setting. Security mode to use for file checking is managed by the "File Security Mode" (FileSecurityMode code) system setting. Out of the box, the value is set to "File extensions DenyList." Previously, both the dragging and the btn_upload_file.png button matched the file extension as a substring of the deny list records. An allowed extension, for example, *.xml, was blocked when another list record contained the same letters. The dragging way also ignored the "File Security Mode" system setting. This change makes both ways match the extension exactly and honor the security mode, letting users attach files of every allowed type.

UI and navigation

Pages

Fixed a runtime issue where the message composer overwrote the Subject entered by the user with the default Title field value passed from the page, for example, the case number, when the email draft was saved. Previously, the page default values were applied after the composer had set the Activity.Title column. This change gives the user-entered value priority over the default, preserving what users type in the Subject field.

UI and navigation

Pages

Fixed a runtime issue where the quote of a plain-text email was broken in the message composer, and saving the email page corrupted the original email. Previously, when a user replied to or forwarded an email that had arrived as plain text and expanded the quote, the quoted text lost its line breaks, and addresses in angle brackets disappeared because they were parsed as HTML tags. Saving the email page then overwrote the stored body of the original email with escaped markup. This change keeps line breaks and angle brackets intact in the quote, and no longer changes the original email when the page is saved.

UI and navigation

Pages

Fixed a runtime issue where the blank slate animation of the timeline did not follow the applied theme. Previously, the animation was rendered outside the placeholder component and used hard-coded colors on an opaque background, so it kept the same appearance regardless of the theme and looked inconsistent in custom and dark themes. This change renders the animation through the placeholder component, makes it react to the --crt-color-icon-base CSS variable, and gives it a transparent background, while the animation itself remains unchanged. No-code creators can apply custom and dark themes consistently, without visual mismatches on pages that contain an empty timeline.

UI and navigation

Pages

Fixed a runtime issue where an email that had an empty body was displayed with a permanent loading mask in the timeline. Previously, the mask was shown whenever the email body was empty, which did not distinguish an email whose body had not been loaded yet from an email that had no body at all. An email that contained only a subject and an attachment displayed a loading mask that never disappeared, and users assumed the content had failed to load. This change drives the mask by the actual loading state and hides it once Creatio finishes retrieving the email content, while emails whose body is loaded separately because of its size continue to display the mask. Users no longer see misleading loading masks in the timeline, and it is clear when an email has no body text.

UI and navigation

Pages

Fixed a runtime issue where the secondary field disappeared from narrow calendar events for timed activities that share a time slot. Previously, when the event content did not fit vertically, the CrtCalendarTileOverflowDirective class switched the fields to a single horizontal line, and the narrow event clipped the secondary field so that it looked missing. This change limits the horizontal layout to all-day and multi-day events, keeping the vertical layout, and the secondary field visible, for timed activities.

UI and navigation

Pages

Fixed a runtime issue where an activity that spanned multiple days was drawn one day shorter in the Calendar section. Previously, Creatio stored the due date as the inclusive end of the activity, while the calendar expected the end of an all-day event to point at the next day and truncated it to the start of that day. This change extends the end of such activities so that they cover every day up to and including the due date, letting users see the real duration of multi-day activities.

UI and navigation

Pages

Added the ability to resize the Filters toggle panel horizontally by dragging its right border. Previously, the panel used the fixed width configured in the Freedom UI Designer at runtime, which made filters that have multiple conditions and nested groups difficult to read. This change enables end users to adapt the Filters toggle panel to complex filter structures without requesting a page change from a no-code creator. No-code creators, in turn, can maintain a single page configuration that suits users who have different screen sizes and filtering habits. To stop using this functionality, register and enable the DisableFilterBuilderResize additional feature.

More details
  • The resulting width is saved in the user profile separately for each user and each page. It is restored when the user reopens the page, while the width configured in the Freedom UI Designer stays unchanged for other users.
  • The minimum width of the Filters toggle panel is 130 px. While the border is dragged, the maximum width is limited by the edge of the container, so the resize handle remains available.
  • Resizing is disabled for a Filters toggle panel placed in a container.
  • For RTL locales, the resizable border is mirrored to the opposite side of the panel.

UI and navigation

Pages

Added the ability to disable and enable individual conditions, groups, and predefined presets in the filters. Previously, a condition had to be deleted to exclude it from the filter and re-created to apply it, causing intermediate filter logic to be lost. This change excludes a disabled condition from the query that the filter generates, keeps the condition visible in the filter, and displays it in a distinct color. End users can now test variations of a complex filter without rebuilding conditions, which also lowers the risk of losing filter logic that is only temporarily not needed.

More details
  • The checkbox that disables an element appears when the user points to a condition, a group, or a preset.
  • A preset can be disabled only as a whole. In a group, either the group or an individual condition or nested group inside it can be disabled.
  • A condition with no value is displayed as empty and is not displayed as disabled.
  • Disabling a condition collapses it, and enabling a condition expands it. The rule that only one simple condition is expanded at a time remains unchanged.
  • A disabled group stays expanded, and its inner conditions are collapsed. Those conditions stay collapsed when the group is enabled again.

UI and navigation

Pages

Changed the filter editor that opens in the Setup filters window when clicking the icn_set_up_filters.png icon in the Folders toggle panel. Previously, the window opened the Classic UI advanced filters editor. To stop using the functionality, register and enable the DisableFolderTreeNewFilter additional feature. This change aligns filter setup in folders with the rest of the advanced filtering experience, letting users set up folder filters in the new Freedom UI filter editor.

UI and navigation

Pages

Replaced the static icon in the blank state of the filters with an animated icon. Previously, the blank state displayed a static illustration, which was inconsistent with the animated blank-state icons already used in other components. This change ensures consistent visual representation of blank states across components.

UI and navigation

Pages

Fixed a runtime issue where the email page opened from a business process through the Open edit page element. Previously, when the page was opened this way from the Process library section and the user edited the draft and clicked Send, the email could be sent with the old body. After sending, the page also showed outdated data. This change makes the page send the current body and refresh its data after the email is sent, letting users edit and send drafts opened by a process safely.

Creatio Mobile​

Category

Feature

Description

Integrations and APIs

OAuth authorization

Added support for automatic detection of the authentication type in Creatio Mobile for Android and iOS. Previously, Creatio Mobile did not check whether the authentication type configured on the server had changed. When the server returns a 401 Unauthorized status code during synchronization, Creatio Mobile now requests the current authentication type from the server before it opens the login page. Creatio Mobile then uses the updated authentication type, for example, OAuth 2.0. The changes are applied automatically when updating the Creatio Mobile app. This change enables administrators to switch the authentication method on the server without asking mobile users to sign out and sign in again manually. It also reduces the number of support requests after authentication settings are updated.

Beta testing of new features​

Category

Feature

Description

WhatsApp Chat Channel

Customer communication hub section

Added the ability to connect the WhatsApp number of an individual employee to Creatio using the Add channel button list in the Manage channels toggle panel of the Customer communication hub section. The WhatsApp chat channel connects a WhatsApp Business account to Creatio through the Meta Cloud API. The functionality is based on WhatsApp Coexistence, the capability that enables the same number to be used in the WhatsApp Business app and in the WhatsApp Business Platform at the same time. Previously, WhatsApp did not allow the same number to be used in the WhatsApp Business app and the WhatsApp Business Platform at the same time. Employees can now connect their number as a personal channel and keep chatting from the WhatsApp Business app on their phone, while every chat from the phone is synced into Creatio at the same time. To use this functionality, register and enable the CrtWhatsAppConnectorApp.EnablePersonalChannelType additional feature. When the feature is disabled, every connected WhatsApp channel is a shared channel. To connect a personal WhatsApp channel, set the Channel type field to "Personal" and specify the employee who owns the number in the Owner field when connecting the channel in the Customer communication hub section. A personal channel has an Owner field instead of the Queue field. All incoming chats of the channel are assigned to that user directly, without queue distribution. Messages that the owner sends from the phone are displayed in the same conversation in Creatio. This change enables companies to keep personal customer communication in Creatio while employees continue to work in WhatsApp as before. It is delivered as part of the WhatsApp Chat Channel app available in Creatio Sales, Creatio Service, Bank.AI and deprecated Bank Customer Journey and compatible with Creatio 10.1 and later. On a product that does not include the app, for example, Creatio Business Studio, installing it also installs the Contact Center app automatically.

More details

AI automation is not available for a personal channel, and the AI automation tab is hidden on the WhatsApp chat channel settings pages.

Integrations and APIs

Emails

Added support for SMTP sending without authentication for mailboxes marked as anonymous. Previously, the Exchange Listener always authenticated on SMTP, so a mailbox that sends through a corporate relay accepting unauthenticated messages could not be used in Creatio. To enable this functionality, execute the update MailboxSyncSettings set IsAnonymousAuthentication = 1 where SenderEmailAddress = '{mailbox address}' SQL script in the database. The script updates the "Anonymous authentication" (IsAnonymousAuthentication code) column of the "Mailbox synchronization settings" (MailboxSyncSettings code) object directly, since the corresponding checkbox is unavailable in the UI. This change skips authentication only in the send flow, when the mailbox does not use OAuth and its mail server type is IMAP/SMTP, and validates the server type on both sides. It enables administrators to connect relay mailboxes for outgoing mail.

More details
  • The "Anonymous authentication" (IsAnonymousAuthentication code) column value is now passed to the service in the credentials contract.
  • IMAP synchronization always authenticates, and mailbox validation and the test message still attempt authentication.

UI and navigation

Pages

Added support for Creatio.ai-assisted filter creation in the Filters toggle panel. Previously, users had to build every condition manually by selecting columns, operators, and values, which required knowledge of the object model and the data structure. Users can now enter a free-form description of the required filter and let AI Twin generate the filter conditions automatically. After clicking the btn_send_message.png button in the message composer inside the Filters toggle panel, Creatio displays the standard loader. Creatio then opens the generated filter, where it remains available for review and editing. Users can also adjust the filter using Creatio.ai without rewriting the original prompt. The functionality is available for users registered in Creatio AI Studio, on environments where AI Twin is configured. This change enables users to assemble filters on their own without understanding the underlying data model, and reduces the time administrators spend assisting users with complex filter setup. To stop using this functionality, register and enable the DisableAIFiltersGeneration additional feature.

More details
  • The Creatio.ai-assisted filter creation is available in the Filters toggle panel whether or not a filter is already configured. Its visibility is managed by the btn_filter_visibility.png button, placed on the same level as the Apply and Clear all buttons.
  • When no filter is configured, the Filters toggle panel displays the "Ask your AI Twin to generate the filter for you" description text, followed by the "or" separator and the Add new filter button.
  • The message composer uses the "Describe what you would like to filter" placeholder.