Release Notes

Version 10 (upcoming)

  • Configuration export and import

Version 9 (upcoming)

  • Export case data to avaloq

Version 8.7.7 (stable)

Version 8.7.6

  • Add preferred_language_key as option when creating a case via API

Version 8.7.5

  • Fixed a bug marking some conditions with CASE wrongly as syntactically wrong

Version 8.7.4

  • Made the error message more clear when the email service is unreachable

  • Added a feature to test the provided email configuration

  • Added the JOIN_OF_ANY operator

Version 8.7.3

  • Increased security further after latest penetration test results

  • Added printing the description in the table of contents of a booklet

Version 8.7.2

  • Reworked the permissions associated with seeing and changing owners. The newly available permissions are:

    • See Case Roles: Permission to see who is the owner and initiator of a case

    • Set Case Owner to Group User: Permission to set the owner of a case to users of the current users group

    • Set Case Owner to Any User: Permission to set the owner of a case to any users

    • See Instance Roles: Permission to see who is the owner and initiator of an instance

    • Set Instance Owner to Group User: Permission to set the owner of an instance to users of the current users group

    • Set Instance Owner to Any User: Permission to set the owner of an instance to any users

Version 8.7.1

  • Added displaying the outcome ontology in the configuration roles overview. Also added a warning if the outcome ontology has not been set directly there.

  • Added showing when a case was last modified in the attached cases tab of an instance.

  • Fixed a bug displaying a link to a role as a link to an ontology in the changed view.

  • Fixes a bug preventing information references to super ontologies from being resolved correctly sometimes.

Version 8.7

  • Linking Instances from external data sources: atfinity now makes it possible to connect it directly to external Person, Entity, Portfolio, Car or any other instance data sources and copy values from such a source. This can be very handy if you already have an existing CRM system and would like to sometimes let users copy data from these systems.

  • When creating new users, it is now optional to provide user initials. If they are not provided, the first letter of the first name and the first letter of the last name form the initials.

External Data Sources can be added in the administration area

Version 8.6.18

  • Added a document template option to choose the font size of the human-readable code field

  • Made importing .zip files nicer:

    • Adapted the ./ script to copy the given .zip file the import folder for increased convenience

    • While importing a progress report is constantly given.

  • Fixed a bug sometimes preventing "Ensure Instances" rule actions from creating instances when they are first triggered.

Version 8.6.17

  • Every time you put a batch of changes live we now count up the configuration version number. This number is displayed below the software version in the user settings popup

  • Added a management command display_version to display the current version of the software and configuration

  • Made the error message when a part of the infrastructure is down more explicit

The version of the current live configuration is displayed directly below the software version in the user settings popup.

Version 8.6.16

  • Fixed a bug preventing the zip_import command from importing all files sometimes

  • Added translation support in get_properties

Version 8.6.15

  • Fixed a bug preventing "Merge on Creation" to be respected always

Version 8.6.14

  • Separated the draft pipeline and general celery workers to make sure you can always quickly put live or revert changes

  • Added an "Select All" button to the document detail boxes tab

Version 8.6.13

  • Fixed a bug preventing correct printing of checkboxes on documents

  • Fixed a bug that prevented changing QR code text font size

  • Added document box reference to the list of un-placed boxes

  • Removed format restrictions for keys of User Roles and Groups

Version 8.6.12

  • Fixed a bug that prevented using only CASE values in Api Rule condition

  • Added inline editing of document boxes in Boxes tab

Version 8.6.11

  • Extended logging for requests that use proxies

Version 8.6.10

  • Fixed a bug preventing display of pages for documents with more than 9 pages.

  • Fixed a bug preventing usage of specified template for Table of Contents.

Version 8.6.9

  • Fixed a bug that was taking into account user status in atfinity even for users managed by LDAP.

Version 8.6.8

  • Fixed a bug that was preventing deleting "SMS from number" field.

Version 8.6.7

  • Document Templates now also allow to configure the position of both the QR code and the human readable code.

  • Categories allow you to provide an explanation that will be displayed below the category name in the case manager

  • Added an "Unselect All" button to the document detail boxes tab

Version 8.6.6

  • Fixed a bug allowing invalid relative dates (e.g. not before or not after) to be able to be saves as information options

  • We now display an error if you provide a non-existent CURL_CA_BUNDLE file to the api.

  • Changed the way case objects are updated to prevent potential deadlocks

Version 8.6.5

  • Fixed a bug preventing single pdfs to be downloaded sometimes

Version 8.6.4

  • When opening the content of a collapsible box (e.g. a section in the sections list) the now visible content it scrolled into view

  • Made the RuLa "+" operator more versatile: Now, if either the first or the second argument is a string, we will concatenate the strings instead of calculating the sum.

  • Fixed a bug that caused displaying process buttons to users without sufficient access rights

Version 8.6.3

  • Opening a deep link (e.g. to a case) when not logged in, will now redirect to the deep link after login

Version 8.6.2

  • Added autocompletion to RuLa Editors

  • Fixed a bug preventing text fields from being printed correctly

Version 8.6.1

  • Improved the error message when trying to view an invalid instance

  • Fixed a bug preventing a freshly uploaded document pdf from displaying all pages

  • Made case error messages more specific when document generation fails

Version 8.6

  • Massively improved document editor: Based on usage patterns of our document editor, we reworked the interface and made common actions easier. In addition, we added ways to specify additional graphical elements in documents, such as boxes, lines and additional logic such as combined and calculated fields.

  • Color tags everywhere: For you to better organise your configuration, we added color tags to all configuration objects.

  • Task deadlines: Added the ability to add deadlines to tasks. When a deadline is approaching, the assigned user is reminded once per day about the task.

  • Decimal- and unitfields display decimal point and thousands separator while editing the number.

  • Case Deletion: Added the ability for users with the permission "Delete Cases" or admins to delete cases in the user interface.

  • Place custom SVG on documents: If you need to add more graphical elements (e.g. a logo, a white box or a dummy signature) to a document, you can do that now by placing a custom SVG on a document page in the configuration.

  • Fixed a bug preventing an instance from being deleted when its last case is deleted.

  • Fixed a bug preventing processes from being copied correctly.

Version 8.5.6

  • Fixed an issue preventing comments from being displayed sometimes

Version 8.5.5

  • Improved the way errors for field updates via API are returned. If multiple fields are updated, the given key of the field is now mentioned in the error.

Version 8.5.4

  • Added option to translate taxonomy values from rule engine calculations when creating documents. To translate a value, refer to the information with a leading $, e.g. p.$country will translate the name of the country into the document language when creating the pdf.

  • Fixed a bug preventing choosing values with enter in the configuration area

  • Fixed a bug preventing case lists being sorted by id

  • Added two new quickfilters to the case list: Cases created in the last 7 days and Cases created in the last 24 hours.

Version 8.5.3

  • Changed "Groups" and "Roles" in User Detail to a list with checkboxes, making it much quicker to change all groups / roles.

Version 8.5.2

  • Fixed a bug preventing the rule engine from removing no longer necessary instances

Version 8.5.1

  • Made it possible to remove owners from certain ontologies

  • Lifecycle cases can now also change the owner of an instance

  • Added "Test LDAP Connection"

Version 8.5

  • Pulling data from your APIs: Pull data from your external APIs into atfinity cases. Allows defining input and output fields for each request and to configure rules to make requests in cases.

  • Active Directory / LDAP integration (Available on Request): connect your existing users to atfinity using any LDAP server. You can finely configure how access rights should be copied from information in your directory.

  • Notification for Approval/Rejection of a Case: specify email addresses which will be notified about final case transition, e.g. approval or rejection of any case.

  • More Detailed Case Log: Case log now shows both old and new value of the case field that is changed.

  • We added CASE.owner and CASE.approver to rule processing and document generation.

Version 8.4.20

  • Lowered the font size in table of contents and smart documents

  • Fixed a bug causing rule engine created comments assigned to users from being deleted

  • Fixed a bug causing optional fields being counted in the filled / total fields display in case -> documents

Version 8.4.19

  • We now allow you to configure the rule engine timeout and maximum iterations via the environment variables RULE_ENGINE_MAX_ITERATIONS and RULE_ENGINE_TIMEOUT.

  • If the rule evaluation fails, an error message is shown but the case data is still returned. This allows users to potentially correct the situation preventing the rule engine from evaluating your rules correctly.

  • Bugfix: Removed an incorrectly logged error when creation rule counts evaluate to UNKNOWN

Version 8.4.17

  • Fixed the management script for ZIP_IMPORT and ZIP_EXPORT.

Version 8.4.16

  • Added an overview for all references to information for faster debugging

  • Reordering elements has been improved: You can now move an element easily between pages

  • Added Swisscom and Twilio SMS gateway support

Version 8.4.15

  • Helvetica is added as a new font option. We use Nimbus Sans L as the actual font file.

  • Checkboxes now appear as "x" on printed documents

Version 8.4.14

  • Bugfix: Fixed a bug preventing celery tasks from returning errors to the frontend (e.g. when downloading a booklet)

  • Bugfix: Fixed a bug preventing combined error messages (e.g. when updating multiple case fields) from being reported correctly

Version 8.4.13

  • Added information about processes in case responses (e.g. via API) and webhook triggers

  • Bugfix: Using invalid placeholders in email templates will not prevent email sending anymore

  • Bugfix: Uploaded Document History will now also show uploaded proofs.

Version 8.4

  • Rule Language Additions:

    • Use is all in a declaration to match multiple instances, e.g. match all people in a case like p1, p2, is all Person.

    • Use not in a declaration to make sure a match does not have a certain role, e.g. match a person that is not the account holder with p is Person, not AccountHolder.

    • Declarations can contain where as a way to already specify further conditions on the instance in the matching phase, e.g. p is Person where p.domicile = de will only match people that have their domicile in Germany.

  • Faster Instance Views: Both the list and the detail views of ontology instances received performance improvements

  • Customisable Printed QR Code Size

  • Smaller Font for Human-Readable Codes on Documents

  • Four Digit User Initials

  • Admin Customisable SMS Service: moved sms service specification into Admin > Integrations

  • Link Expiration: added the possibility to configure when after how many hours digital form tool links expire (default: 72 hours)

  • Cleanup Old Tasks: Added a management command removeoldtasks to delete celery tasks and their attachments older than a week.

Version 8.3


  • Knowing why a question is asked: If you hover over the name of an information in a case, you can see which rules required this information. This can be very helpful for debugging configurations.

  • Testing WorldCheck Connections: We added a button to test the WorldCheck connection parameters directly in the settings.

  • Disable username/password auth for sending emails: Some smtp servers in local networks don't need username/password authentication. You can now disabling sending username/password to such servers.

  • Delete Case Errors: The list of reported case evaluation errors can now be purged.

  • More quick filters: We added many more quick filters in the configuration area, e.g. you can now filter information by type.

  • Proxy support and debugging information

  • Rule language additions:

This question for INF-2164 is a asked because DOC-34 and INF-2165 requested it

Necessary Migrations

We heavily simplified and extended our deployment guides. If you installed atfinity on-site adaptions may be necessary. It is recommended to check the latest guide for any differences to your current setup.

Version 8.2


  • API for Integration: Integrating atfinity with other systems is now easier with our case management API. You can create cases, change fields, upload and download documents, and much more. Consult our API Documentation for details.

  • HTML Emails: Emails from atfinity can now be styled to adhere to your corporate identity

  • IDnow and Intrum Integration: Verify the identity of a person and digitally sign documents using the identity within atfinity using IDnow or Intrum.

  • World-Check Integration: Check if a person has any hits on Refinitiv World-Check, one of the standard tools for Know-Your-Client (KYC) checks of any industry. atfinity uses the Zero-Footprint API, meaning even industries with the highest standards in privacy and security can use this integration.

  • Case activity and error log: Any activity and possible errors on a case can now be viewed directly in the context of the case.

  • Rule language additions:

    • SOME and ALL for lists. They check if some or all elements in a list are “true”.

    • CASE.outcome_instance to get a reference to the outcome instance.

    • FIRST_ELEMENT retrieves the first element of a list (if any).

  • Multiple actions per rule: We enhanced our rule interface by giving you the option to add as many actions as you like. For example, you can both ensure a person exists and assign values with the same rule.

  • PDF/A Support: Generated documents now adhere to the strict PDF/A-2b standard.

Case activity and error logs

Version 8.1

Main Features

  • Comments. You can now have complete conversations about a case directly on the case by adding comments. Comments can also be assigned, making them a replacement for tasks.

  • Case Errors: If rule processing fails for any reason in a case, you will see the produced error message in the case errors log in the configuration area.

  • New Rule language features

    • Role Choices let you specify if a match should contain not a specific role, but contain one of the given role choices. E.g. p is Person, Husband or Wife or LifePartner

    • New *_OF_ANY operators: In cases where you don't want to have SUM, AVG, MAX or MIN mark information as necessary, you can use their new flexible counterparts SUM_OF_ANY, AVG_OF_ANY, MAX_OF_ANY and MIN_OF_ANY

    • SNEAKY: Expressions within sneaky will not mark information as necessary. This can be very handy for complex KYC calculations. This is the more general version of an *_OF_ANY operator.

    • New SUM_PRODUCT operator: Like its excel counterpart, SUM_PRODUCT takes two lists: A list of values and a list of coefficients. It adds the values after they have been multiplied by the coefficient with the same index.

    • IF is a new expression operator. If the if-condition is met, the then expression, otherwise the else expression.

    • SWITCH is similar to case, but is better suited for simple cases.

    • get_attr allows you to get an attribute specified by an expression (e.g CONCAT('first', 'name')) from an instance. If that attribute does not exist, a default value can be returnes

    • Rule comments: Leave comments in rules for other rule designers or your convenience.

    • self: Inside calculated information instead of a single declaration you can now use self to refer to the instance the information is attached to.

    • MAP lets you transform a list of values into another list. This is very handy when processing user given lists like nationalities or sources_of_income.

New comment feature within cases

Version 8.0

Main Features

  • Rule language

    • We introduced COUNT to return the number of elements in a list, so e.g. COUNT(("a", "b")) returns 2. As an example, you can use this to check if a person has more than one nationality, by saying COUNT(p.nationalities) > 1.

    • Ontology and Roles directly in rules: These two are treated like any other enum or multi_enum information, so just type e.g. p.ontology = 'Person' or p.role contains 'Husband'

    • We introduced the instances method, which returns a list of case instances that match certain criteria. You can use instances(Person, Husband) , for example, to get all people that are husbands. Usually, this should be combined with COUNT, so COUNT(instances(Person, Husband)) returns the number of people that are husbands.

    • We also introduce get_properties_from_instances, to be used in combination with instances. So e.g. get_properties(instances(Person, Husband), first_name) gives you all the first_names of all husbands.

  • Outcome ontologies. Each process now has a defined outcome ontology. This means processes can result in the creation of any ontology you whish: a client contract as before, an expense request, a prospect for your CRM, ...

  • More Customization

    • Change the colors on the login screen, the app background color, the menu color and the background colors for missing fields.

    • Change the fonts used when generating booklets and the background for the table of contents.

    • Adapt the filenames for exported lists and booklets.

    You find these options under Appearance and Settings.

  • Strong Performance. We have increased performance of almost all components significantly.

  • Configuration Tests. Make sure your configuration behaves as expected by providing configuration unit tests. These tests can be executed before each put live, making sure you don't accidentally break your use case.

  • Modern User Interface. We overhauled the interface of the case manager with modern, easy to use and easy to read input components.

Other Features

  • Subdomain tenants: When using atfinity on a domain wildcard (e.g. * we load configurations for the entered subdomain, e.g. can now load the bank's logo by default.

  • PLA-4401: Hide unnecessary fields. We added a setting to hide unnecessary fields instead of displaying them greyed out.

  • PLA-4402: Localized date formats. We added document date formats that print the month in the document language, e.g. August.

  • User Date Format: We made the date format a separate setting from the language. So you can use atfinity in English, but use a German date format.

  • PLA-4396: The IDs of the case and the outcome ontology are prominently shown in the case manager.

  • PLA-4395: The ID of information will now be shown as a tooltip when hovering over the field name.

  • PLA-4406: Per information certain taxonomy options can be hidden or disabled.

  • PLA-4407: Per information the column position can be fixed to either left or right.

  • PLA-4407: Information can be configured to always span two columns.

  • PLA-4431: Text information can have an approximate maximum number of lines configured.

  • Fonts used in generated PDFs, like the booklet, are now configurable.

  • Text-Fields in the Case Manager now have a configurable default length.

  • Where possible, your browser will now spellcheck the content of longer text fields.

  • The case number of the last case modification can now be printed on documents.


  • PLA-4350: We fixed a bug preventing enum values to be correctly sorted by the current locale.

Deprecations and necessary migrations

  • Important: The way QR-Codes are generated has been changed. This means booklets downloaded with atfinity 7 can be uploaded, but not matched with atfinity 8.

  • Important: We removed the automatic creation of "Creation Process Rules": Before, you provided a document with condition ontologies and all ontologies. If the condition was true, the "missing" ontologies were created. So if you had an individual account that needed a person as the account holder, a person with that role was automatically created. Now, if you would want the same behavior, you have to manually create a "Creation Process Rule". To do this, follow these steps:

    • Before you migrate, note down in which documents such automatic rules were created. This was the case everywhere condition ontologies and all ontologies were not equal.

    • Migrate to the latest version.

    • For every difference, create a process rule of type "creation". Put the original document condition into the condition of that process rule. As the creation, add the difference between condition ontologies and all ontologies. Example: The condition was "C is Contract" and all ontologies where "C is Contract; P is Person". The creation rule should have a condition "C is Contract" and a creation rule "P is Person".

  • All process rule types now create missing information. This means that issues and warning rules will now also create missing information. In most cases, this should feel very natural. If a person below 18 years is not allowed, the case manager should ask for the birth date to check this. However, if you relied on no missing information being created, you should adapt or delete these issue and warning rules.

  • Case roles (e.g. owner and initiator) can now only be seen if a user has the access right "See Case Roles". By default, all users who could edit owners or reviewers have been given this right. Please check your roles configuration and adapt this, if necessary.

  • The option "create custom task" was removed from case transitions. Since Issues can be assigned to people, this takes over the role of a task. So simply convert the custom task to an issue.