Skip to content

Release Notes

Version 16.0.8 (πŸͺ¨ stable)

  • Improved recalculation speed for cases that contain complex ADX documents.
  • Improved the loading speed of the configuration rules page.

Version 16.0.7

  • Fixed incorrect text handling in marketplace integrations when values contain quotation marks.

Version 16.0.6

  • Fixed a bug where assigning a value to a field of a structure occurrence via a rule could raise an error when the structure had no occurrences yet.

Version 16.0.5

  • [security] Updated multiple libraries

Version 16.0.4

  • Fixed an issue where Field Values from non-Outcome Ontologies were not exported in the Case Overview Excel export.
  • Fixed an issue where Case Instances could not be created via the API.

Version 16.0.3

  • Fixed an issue with how ADX templates are cached. Under rare circumstances this could cause a invalid jinja fragment to be put live.
  • Fixed a bug that causes a 500 server error when trying to download a single, unsigned document via the API under some circumstances.
  • Fixed a bug that caused empty categories to be displayed in end-user wizards.
  • Fixed an issue with indexing cases after a transition rule was executed.
  • Updated Equation integration to support v1.7.2 specifications.
  • [security] Updated multiple libraries

Version 16.0.2

  • Added support for getJourneyResponse in LexisNexis RiskNarrative integration.
  • Updated Equation integration to support v1.7 specifications.
  • Added ability to automatically disable draft webhook subscriptions based on conditions.

Version 16.0.1

  • Removed test database as part of health check for deployed environments.
  • Added additional filtering capability within marketplace engine.
  • Corrected default nginx webserver template to not include MCP paths for docker compose deployments.
  • Fixed an issue where assigning instance roles would scroll to the instance in certain browsers.

Version 16.0.0

In this release we are introducing more powerful AI capabilities, Digital Signatures, Draft Cases for better configuration testing, a redesigned Document Editor, handlich of Environments (Prod, Staging and Demo) in the UI and many improvements to Insights.

New AI capabilities

  • AI Prompt Rule Action

    A new β€œAI Prompt” rule action enables cases to execute AI prompts directly from rules.

    • Input and output are defined in RuLa.
    • Input is rendered and sent to Atfinity Intelligence.
    • Output assignments map the AI response back into the case.

    This enables automated classification, validation, and structured data transformation within case logic. * Configuration AI Chat

    Configuration now includes an AI side panel to support writing RuLa and ADX.

    • Context-aware assistance in code fields.
    • AI understands how to write RuLa and ADX syntax and can provide examples and guidance.

eSignatures

  • Introducing Digital Signatures baked into the user interface\ We added a flexible eSignatures framework that is embedded directly in the document views of cases.
  • New "Send for eSigning" buttons appear in the Documents view once eSignatures are enables
  • Multiple signatories per document are supported.
  • Multiple documents per signing request are supported.
  • Users can send full booklets or individual documents can be sent.
  • Each document receives its own individual digital signature, enabling separate archiving of legally valid signed documents.
  • You can monitor, cancel, and retrieve signing requests once you have send document to be signed.
  • Certifacation\ The first provider in this new framework is Certifaction, a fellow provider from Zurich, Switzerland
  • Supports SES, AES, and QES signatures.
  • Support for EU (eIDAS) and Swiss Standards (ZertES) and more

Marketplace

A new marketplace allows you to view and install integrations form a huge repository of already created ones

Wizards for the whole case

In addition to creation and lifecycle (end user) wizards, we introduce a third category: Whole case lifecycle wizards. While lifecycle wizards operate on a fixed number of instances (for example to provide data for a certain person), whole case lifecycle wizards act on the whole case and can also create new instances.

Instance History

On instances, we also display now the history of why this instance has these values. For example:

  • See that case 736 changed the domicile to "France"
  • See that an API request changed the risk profile to "high"

Configuration

  • Draft Cases\ allow testing the configuration before it is live. Draft cases are fully separated from live cases and make it even faster to develop configurations.
  • Draft cases run using the draft configuration.
  • No modification of the live world will happen, so you can just test away with worry.
  • Only visible to configuration editors/testers
  • Cases can be duplicated, so you can create a few case templates you quickly copy and test with for your configuration needs
  • Transition Rules\ can be used to transition a case to another state automatically
  • Transition along a transition in a workflow
  • Force the case to go to a certain state
  • Redesigned Document Editor\ The document editor has been redesigned from the ground up
  • Preview ADX document directly in the editor without putting live
  • Move faster through complex PDF documents with a tidied up PDF Editor
  • A much better look and feel overall
  • Environments\ Based on your Server environment (Production, Staging, Demo) Atfinity will display different options.
  • On production servers, you mostly want to import configuration, not change it. The UI is now streamlined for tis
  • Release Notes between the environments make it easier to know that you are importing the right configuration
  • Configuration Import has been redesigned to give you in general a better overview of what you are importing
  • New RuLa functions
  • reduce() β€” Folds a list into a single value through an accumulator, e.g. list.reduce(0, (acc, x) => acc + x). Unlike map(), each step can build on the previous result, enabling running totals and stateful checksums.
  • IBAN_VALID β€” Returns true if a string is a structurally valid IBAN (ISO 13616 checksum), false otherwise.
  • PHONE_VALID β€” Returns true if a string is a valid phone number. Accepts international format (+41…, 0041…) or local format with an optional alpha-2 country code. Returns unknown for unrecognised input.
  • TIN_VALID β€” Returns true if a string is a valid Tax Identification Number for a supported country (given as an alpha-2 code), false if invalid, unknown if the country is not supported. Covers ~50 countries via python-stdnum.
  • LEI_VALID β€” Returns true if a string is a valid Legal Entity Identifier (ISO 17442).
  • BIC_VALID β€” Returns true if a string is a valid BIC / SWIFT business identifier code.
  • ISIN_VALID β€” Returns true if a string is a valid International Securities Identification Number (ISO 6166).
  • VAT_VALID β€” Returns true if a string is a valid VAT identification number (given with its country prefix).
  • PICK_OR_DEFAULT β€” Returns a matching value from an allowed list (case-insensitive), or a default if no match is found.
  • SPLIT β€” Splits a string by a separator into a list. Supports an optional maximum number of splits.
  • STARTS_WITH β€” Returns true if a string starts with the given prefix.
  • ENDS_WITH β€” Returns true if a string ends with the given suffix.
  • APPEND β€” Returns a new list with a single element appended to the end. Unlike CONCAT, this adds one element rather than merging two lists. Does not mutate the original list.
  • INDEX_OF β€” Returns the index of the first occurrence of a value in a list or string. Returns -1 if not found.
  • FORMAT_NUMBER β€” Formats a number as a string with configurable decimal places and separators, e.g. for locale-aware display of monetary values.
  • ABS β€” Returns the absolute value of a number.
  • CLAMP β€” Clamps a numeric value between a minimum and maximum.
  • SIGN β€” Returns -1, 0, or 1 depending on the sign of a number.
  • PAD_LEFT β€” Pads a string on the left to a given width with an optional fill character.
  • PAD_RIGHT β€” Pads a string on the right to a given width with an optional fill character.
  • QUARTER_OF β€” Returns the quarter (1–4) of the year for a given date.
  • IS_WEEKDAY β€” Returns true if the date falls on a Monday through Friday.
  • IS_WEEKEND β€” Returns true if the date falls on a Saturday or Sunday.
  • COUNTRY_TO_ALPHA2 β€” Converts an ISO 3166-1 alpha-3 country code to the corresponding alpha-2 code. Returns unknown for unrecognised input.
  • COUNTRY_TO_ALPHA3 β€” Converts an ISO 3166-1 alpha-2 country code to the corresponding alpha-3 code. Returns unknown for unrecognised input.
  • COUNTRY_TO_PHONE_PREFIX β€” Returns the international calling code for a given country code as a string (e.g. '+41'). Accepts both alpha-2 and alpha-3 codes. Returns unknown for unrecognised input.
  • CHARS β€” Splits a string into a list of its individual characters.
  • CHAR_CODE β€” Returns the Unicode code point of a string's first character.
  • RANGE β€” Produces a list of consecutive integers, for iterating over indices with map().
  • TO_INT β€” Converts a value to an integer (unknown if it cannot be converted).
  • TO_DECIMAL β€” Converts a value to a decimal number (unknown if it cannot be converted).
  • TO_STRING β€” Converts a value to its string representation.
  • Improved dictionary support
  • x['a'] := 3 now supports assigning to existing fields and adding new properties
  • {} creates an empty dictionary

Insights Improvements

Insights have been improved in many small and large ways:

  • Widget resizing\ Widgets now come in multiple sizes and you can make them smaller and larger
  • Full List Page\ Widgets that display conclusion like "30 cases with customers in france" can now have an automatically generated full list that would display all the 30 cases mentioned
  • Stacked Bar Charts\ Data that has naturally three dimensions can now be displayed in stacked bar charts. For example, display how the clients per risk (low, medium, high) have developed in the last 8 quarters in such a stacked bar chart.
  • Calendar-based Times\ In addition to relative times (last 30 days) you can now use calendar-based times (last month, this year, ...)
  • Future-based Filtering\ For lists that have data of upcoming events (next client review) you can also filter data in the future (next year, next quarter)