FintechOS Platform 24.4
July 30th, 2025
This release introduces major enhancements across the FintechOS Platform, with a strong focus on AI integration, developer productivity, and user experience. This update unifies AI capabilities under Dex, a single intelligent assistant accessible across the platform. Key features include the launch of Logic Blocks for no-code event handling, a redesigned Studio homepage, extensive UI customization options, improvements in Journey Designer and Product Factory, and the rollout of a local developer sandbox. Other notable updates include enhanced hotfix deployment, support for multi-interest rates per installment, dynamic dimensions for insurance plans, expanded code editor functionality, and improved handling of service accounts and login themes.
Mandatory Changes
Business Formula Cloning Also Clones the Formula Inputs
Starting with this release, cloning a business formula also creates a clone for its formula inputs instead of referencing the original inputs. Existing formula clones are not affected by this change.
After cloning a business formula, rename both the formula clone and its associated inputs clone to prevent future naming conflicts (e.g., if additional clones are later created from the same formula or inputs).
What's New
Dex - A Unified AI Agent
Our AI assistants have been enhanced and consolidated into a unified AI solution. Get answers to platform related questions, write code, troubleshoot issues, access documentation resources, and find relevant templates for your Products or Digital Journeys by chatting with Dex.
Streamlined AI Assistance for Journey Designer and Product Designer
The dedicated AI assistant previously located in the journey settings screen has been removed. AI assistance is now integrated into Dex, our unified AI solution. You can access it directly from the Dex interface or by clicking the Use Assistance button when creating new journeys.
Similarly, the product AI assistant now uses the Dex interface.
For more information, see the FintechOS Studio User Guide.
Logic Blocks
You can now configure event handlers in your form driven flows and app data forms using an intuitive no-code interface. Logic Blocks allow you to define complex actions and conditional logic that can be triggered by attribute field updates, custom events, or at different stages of the step execution sequence; all without writing a single line of code.
New FintechOS Studio Homepage
The FintechOS Studio homepage has been redesigned for improved functionality, providing quick access to your products, journeys, and entities, along with guidance on using Dex, our new AI assistant.
UI Design
New customization options for user interface design include alternative controls for various attribute types, collapsible containers, buttons for triggering custom events, and improved handling of date fields:
Custom UI Controls
The following custom UI controls are now available in the UI Designer:
- Boolean Attributes - You can now use the Ftos Button Switch Boolean custom UI control to display a boolean attribute as a pair of radio buttons (in addition to the default checkbox and the toggle switch introduced in version 24.3.2).
- Numeric and Whole Number Attributes - New custom UI controls are available for numeric and whole number attributes:
- Ftos Slider - Text box bound to a slider.
- Ftos Decorated Numeric - Text box with customizations for additional visuals and adjustable width.
- Ftos Quantity Buttons - Spin box with increment/decrement buttons (+/-).
- Option Set Attributes - You can now use the FtosButtonList UI control to display option set attributes as radio buttons.
Collapsible UI Containers
A new type of container has been added to the UI Designer. The collapsible container allows users to expand or collapse content by clicking an arrow icon in the container's header. This helps optimize screen space, organize content hierarchically, and improve user control over visible information.
For more information, see the FintechOS Studio User Guide.
Custom Events Buttons
The UI designer includes a new button type called Notify Event which allows you to easily trigger custom events (events configured using the formData.registerEvent Server SDK method).
For more information, see the FintechOS Studio User Guide.
Field Options Enhancements for Date and DateTime Attributes
New field options are available for Date and DateTime attributes:
- Open Calendar on Click - Choose whether the date picker opens automatically when clicking the input field or only when using the calendar icon.
- Placeholder - Add placeholder text to provide input hints or examples (e.g., DD/MM/YYYY).
- Validation Message Mode - Control whether validation messages for invalid inputs are shown only on demand or automatically expanded.
- Use Mask Behavior - Enable advanced keyboard input, including arrow key navigation between segments, direct typing overrides, auto-advancing between fields, and automatic blocking or correction of invalid values.
- Minimum Value/Maximum Value - Define date input boundaries using static or dynamic reference dates (now, first or last day of the current month). Supports modifiers to add or subtract time intervals (in days, months, or years) from the reference date.
For more information, see the FintechOS Studio User Guide.
Help Text, Inline Error Message, Minimum Date, and Maximum Date Support for Attribute Fields in Client SDK
The formData.view.model.{attribute name} Client SDK object supports new properties:
hint- Displays a text next to the attribute field, allowing you to offer additional guidance or explanations.errorHint- Displays a red text next to the attribute field that overrides anyhinttext. This allows you to display a temporary message (replacing the hint text if necessary) to indicate an error or issue.minValue- Sets a minimum date value fordate,datetime, andinvariant dateattribute fields.maxValue- Sets a maximum date value fordate,datetime, andinvariant dateattribute fields.
Journey Designer
The Journey Designer has been enhanced with features that streamline journey creation, data modeling, and usability. Key updates include widget support, asynchronous tasks for parallel flows, dictionaries for standardized data, object data types, and improved attribute filtering. A point-and-click editor simplifies decision logic, and eligibility/underwriting functionality is now fully integrated into services.
Asynchronous Tasks
You can now fork the execution flow into concurrent branches using asynchronous tasks. These tasks trigger a service that runs in parallel with the main flow and rejoins at a defined synchronization point, where the main flow awaits its completion before continuing.
Dictionaries
The data domain now supports dictionaries, allowing you to represent standardized business data using static, predefined entities.
For more information, see the FintechOS Studio User Guide.
Point-and-Click Editor for Decision Conditions
Decision elements now include a point-and-click editor which you can use to define complex conditional logic for your If and Else If navigation paths without writing any code.
For more information, see the FintechOS Studio User Guide.
Filter Attributes Based on Data Domain Entries
When populating attribute fields in the Journey Designer, an additional search box allows you to filter the search suggestions based on the technical variables, data entities, and dictionaries defined in the data domain.
Widgets Support in Screens
You can now represent widgets in screen elements, either as single cards or as multiple vertical/horizontal cards.
Objects Support in Data Domain
Data Domain technical variables, data entities, and dictionaries now support attributes with object data types.
Eligibility and Underwriting Elements Integrated into Services
The standalone eligibility and underwriting elements have been deprecated. The services catalog has been enhanced to include pre-built eligibility and underwriting services that serve the same purpose. While existing journeys still display the legacy eligibility and underwriting elements for backward compatibility, all new eligibility and underwriting functionality must be implemented using the service-based approach.
Data Domain Specifications in the Journey FSD
The Functional Specifications Document (FSD) generated from the Journey Designer now includes the specifications for the Data Domain entities.
Product Factory
Product Factory now supports the ability to close products, expanded API endpoints, dynamic dimensions for insurance plans, and refined configurations for interest durations. Also, additional validation mechanisms have been implemented to ensure product integrity.
Close Products
You can now close products you no longer wish to incorporate into digital journeys or expose through digital touchpoints, channels, or portals.
For more information, see the FintechOS Studio User Guide.
New Product Factory API V2.0 Endpoints
Product Factory API V2.0 has been expanded with the following endpoints:
- Offers
- Products
- Webhook Subscriptions
Dynamic Dimensions for Insurance Plans
You can now use dynamic dimensions to define custom amounts that fine-tune claims or other financial parameters of the insurance plans.
The following endpoints have been expanded to include a DynamicDimensions node in their responses, listing each dynamic dimension's ID, name, type, value, and reference value for every plan:
- Get Product Metadata by Product Code (V2)
- Get Product Metadata by Product Id (V2)
- Get Product Metadata by Product Code (V1)
- Get Product Metadata by Product Id (V1)
Multiple Interest Rates per Installment
The Repayment Schedule V2 and Repayment Schedule V1 API endpoints now include startDate and endDate fields in the multipleinterestsRates inputs. This allows you to configure different interest rates for specific time intervals within the same installment (e.g., a promotional rate for the first 7 days, followed by the standard rate for the remainder of the installment period).
Product Factory Validations
- The Implicit Reserve Currency field is now mandatory when configuring an insurance peril.
- An insured object cannot be added more than once to the same insurance product.
Developer Productivity
Introducing Local Developer Sandbox
The local developer sandbox introduces the base version of a local instance of the FintechOS Platform (v24.4.0) for building, testing, and syncing implementation work:
-
Develop and test locally: build scripts and extend solutions in an isolated containerized environment;
-
Safe package validation: test your solutions on your local workstation before promoting them to a shared cloud environment;
-
Synchronize the work of other developers to your local environment;
-
Integrated Code Editor: easily manage and sync code with teammates using the industry standard code editor - VS Code;
-
Store solution artifacts in a remote Git repository;
-
Lightweight, container-based setup: runs on K3s and Rancher, optimized for developer machines.
Simplified Hotfix Deployments
We’ve developed an automated method that deploys only the digital solutions containing real changes, thus significantly reducing deployment time – this applies for projects with that include a large number of digital solution packages (for example more than 20). As a result, in the case of promoting a hotfix - small change(s) to few solution packages - the system either re-deploys all of the solution packages leading to unnecessarily long import times/maintenance windows.
To achieve this you need to connect your FintechOS instance to Git and generate release solution packages via automated pipelines from your remote Git repository (preferably GitHub).
File Upload Limits
You can now set the maximum number of files allowed per file attribute and the maximum number of files that can be uploaded simultaneously from the Configuration Manager. These limits help prevent denial-of-service (DoS) attacks and ensure that file uploads remain within the system's processing and storage capabilities. Error handling has been improved so that exceeding these limits triggers clear error messages to facilitate troubleshooting.
For more information, see the Administration Guide.
Business Units Optimizations
The code handling business units has been optimized to improve the performance of insert and update operations, particularly in environments with a large number of business units.
Digital Solution Packages Sync
We've improved synching digital solution packages when using the FintechOS Editor. Previously, when working in the VS code FintechOS extension, you pull the latest changes from the main branch, then export the package. Syncing the solutions using the FTOS extension in VS Code did not work. You needed to switch to FTOS Studio, manually add the digital asset to the digital solution package, and then return to the FintechOS Editor to resync the solution.
Now, if a digital solution package does not exist for the given digital solution, we create it, carrying the name of the digital solution. If a package with the same name already exists, we overwrite or update it. The newly created digital solution package, containing the solution and its associated digital assets, is available only for development purposes.
Code Editor Improvements
The Code Editor, based on Visual Studio Code, can be opened from Studio on desktop, not only in browser. To do so, you need to set the value to 2 to the key feature-use-external-dev-environment in Configuration Manager.
Service Accounts Improvements
Service accounts and their security roles are now synched when working with the FintechOS Editor. They can be exported in digital solution packages and imported on other environments.
Service accounts can now be created from FintechOS Studio. You can assign security roles and business units to the account directly from Studio. Make sure you are working in a digital asset of type resources or digital app, and it is set to context, when creating service accounts. When creating a digital package, make sure to tick the Include Security Configuration to export this service account and its security roles as well. At import, the client secret is not imported in the destination environment, but rather a new client secret is generated. It is worth nothing that currently, only the main business unit is imported, usually root, and other business units are not at this time.
Enable MFA flow using DCI through DataCore
Multi factor authentication in FintechOS IDP can now be done using Data Core connectors, following the retirement of Service Pipes. Read more about configuring the multi factor authentication steps in the documentation.
Improved Entity Form Import
When importing a package that includes an updated entity form into a target environment where an older version of that form already exists, the system checks its child files—such as entity extensions, filtered fields, allowed attributes, and virtual attributes. If these child files haven't changed and match those in the imported package, they won't be re-imported. This optimization significantly improves performance and speeds up the import process for updated digital packages.
Fresh New Login Theme
The themes for both the Studio and Portal login screens were updated with a fresh new look. The new themes, Evolv and EvolvDark are automatically shipped when upgrading or updating the Platform, that is when moving to 24.4 from a previous version, either 24.x or even lower. Below are the actual implications of this change:
-
At upgrade or update to 24.4, the Evolv, EvolvDark and baseEvolv folders are automatically deployed
-
You can use one theme, Evolv or EvolvDark, for both Studio and Portal
-
The Studio and Portal folders, which contain the themes for previous Platform versions, are still there, in the container, but they get overwritten at upgrade or update
-
Environment variables have changed, you must check that you have the correct ones put in place
If you've made changes to the custom theme, i.e. to folders Studio and/or Portal, before updating or upgrading to 24.4, make sure to backup your files, as the two folders, Studio and Portal will be overwritten.
In the likely scenario that you need to make custom changes to login themes, as a best practice, make sure to create a duplicate of default themes and work on those, so that your custom changes don't get overwritten at environment upgrade or update.
Faster Console Logging
Console logging is now faster. To enable console logging go to Configuration Manager /studio/app-settings/console-logging = enabled=1 and, optionally, set the log level to debug.
Async Engine Improvement
The performance of Async Engine has improved, thus reducing the time and cost of processing. Now, there is no polling on queues except if the instantiateAtStart key is set to true, and the default polling interval changed from 500ms to 5000ms. You can change this on queue.config.
Save Files
We've updated the saving behavior in the Code Editor. Previously, when editing new, unversioned files, the extension would prompt you to check out the file before you could save it a second time. Now, the file is automatically checked out, allowing you to continue working without interruption.
In some cases, such as internet interruptions or other issues, the content in your local storage may become out of sync with the version in Git. If this happens, you may see the message: The content in your file differs from the content in the database. Do you want to proceed? If you see this prompt, click Cancel and sync your solution from the side menu.
As a best practice, always sync your digital solution before you begin working on your files to ensure consistency and avoid conflicts.
Fixed Issues
| No. | Summary |
|---|---|
| 74784 | The ftos.file.move Server SDK function occasionally failed to move the specified file, returning a 404 (Not Found) error. |
| 77102 | The text of the Onfido automation processor's user consent form was clipped due to the form's styling. |
| 77623 | The EbsRouter was not always able to navigate back to the previous screen after opening a report. |
| 78703, 79132 | When accessed repeatedly, forms in wizard mode opened in a new browser window instead of opening in the same window as expected. |
| 79136 | Application log entries did not include information about entity extensions, only regular entities. |
| 81032, 81041 | Security roles exports did not function as intended after using the Advanced Find tool to filter the roles grid. |
Known Issues
- The Code Editor does not always start on the first attempt, displaying an Editor instance launch failed error message instead.
- Workaround: Click the Open in editor button again to launch the editor.
- The Dex AI assistant doesn't work on environments running on Azure Kubernetes Service.
- While you are authenticated in GIT and use the Code Editor, when you push changes, you might receive an error message stating that the credentials for your user might be missing or invalid. In fact, the Github token has expired and if you log out and log back in, the issue will be resolved.
- The session deactivation feature is currently non-functional. This issue is caused by the upgrade to Keycloak version 26.
-
When importing a package with a report document template, the import is successful, but the document cannot be downloaded.
-
An error may be triggered after importing a package with a renamed extended model. The steps are the following:
-
on a source environment, create two entities with lookup attribute between them. Create a new extended model of type Related and add the virtual attributes to this extension. Export the package and import it to a destination environment. The import should work.
-
return to the source environment and modify the name of the extended model. Export the package with the same name (and updated name for extended model) and reimport it on the destination environment. The import will fail with an error message (There is another entry (virtual attribute for this case) with the same name).
The workaround implies using a before import script that will map the entity extension before package import:
Copyvar ee = ftos.data.query.getAlias("entityExtension")
var rows = ftos.data.query.from('entityExtension', ee)
.where(ee.Name.eq('ext_rel'))
.executeAndMapComplex({entityExtensionId : ee.EntityExtensionId})
if(rows.length > 0){
setMessage(rows[0].entityExtensionId)
setMessage("Record found. Will update");
update('entityExtension', rows[0].entityExtensionId, {"name":"ext_rel_update"})
}
else{
setMessage("Record not found.");
} -






