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.
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.
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
MIN mark information as necessary, you can use their new flexible counterparts
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.
MAP lets you transform a list of values into another list. This is very handy when processing user given lists like
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(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, ...
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.
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.
Subdomain tenants: When using atfinity on a domain wildcard (e.g. *.atfinity.app) we load configurations for the entered subdomain, e.g. atfinity-bank.atfinity.app 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.
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.