Appian (R)evolutions

Appian just released version 23.2 with another set of evolutionary enhancements to the platform. In this post, I want to highlight my personal top three changes in that latest version. To make this more interesting for you, I pushed Appian to provide me with the latest version as early as possible, so I can share my real life hands-on experience with you.

Find all the details in the official release notes, following this link:

Let’s start with one of the smallest new features that eliminates an annoyance that has bugged me for many years.

Styled Icon Search

In the expression editor, we can now search for icons and directly insert them in the code. And it even supports alternative terms and synonyms! Amazing!!!

Searching for icons really made me mad in the past. To solve this, I had built my own icon search. It used a web service to find synonyms for the term entered, and then searched the icon names for any partial matches.

While I have to admit that it needs a bit of imagination to go from “love” to “screwdriver”, this custom search helped my a lot to find the right icon for the idea in my head.

Good by custom search, you served me well …

AI Skills

Everybody is talking about AI. I am currently working on some interesting ideas of how to add real-world benefit to business processes. With the latest version, Appian deprecated the Intelligent Document Processing add-on in favour of a set of new generic design objects which we can use to build the document pipeline easily we require. And there is no need anymore to create CDTs, modify expressions and manually insert data to database tables.

The new AI skill design objects are a natural part of the Appian platform and are fully supported by the DevOps and deployment features.

Let’s take a look at a simple process model that accepts a document, detects the type, and extracts and stores data to a record.

Setting this up became so simple, even your grandma could do it.

  1. Create a new AI skill of type “Document Classification”, and create at least two classes by providing a name and some proper examples.
  2. Create two more AI skills of type “Document Extraction” and just define the names of the fields that you want to have extracted. The training comes later.

Now let’s see how that works.

To classify documents, our model calls that AI skill and passes the document. We also define a confidence threshold (0-100). The two data outputs “Above Threshold” and “Below Threshold” will the list of the documents and types relative to the provided threshold value. This way, you know the level of certainty a document matches a specific type. If your model cannot classify the document, you might want to add another step for a manual classification.

Next, we pass the document to the extraction step. Our currently untrained model does not know what to do and will not return any data. Your validation logic catches that situation and assigns the reconciliation to a group of users. That user now matches the values found in the document to the configured keys.

On completing the reconciliation, Appian automatically takes the results and feeds them back into the model for re-training. After repeating this a few times, that model knows what to do, and the need for reconciliation drops dramatically.

The data extraction node returns a map containing the data in a text format only. I created an expression to parse the fields into proper dates and numbers and transform it into my record type structure.

IDP always felt a bit clunky, but now you can add these capabilities to any process with a snap of your finger!


Appian Records have evolved over quite some time. In the beginning, we used Records to define our main business objects, defined views and attached related actions. Then, we started to use Records to access the database more directly, and now we can ignore CDTs and DataStores and model our data just using Records.

Then, Appian introduced synced records a while ago, and I had a hard time understanding the purpose of it. This changed in the recent versions as Appian started to call this Data Fabric. Now, I can not only model my business objects, but also any other data object I need, and I can directly model the relationships.

You might think: “Relationships …?? What’s the fuss …?”

This is by far the most dramatic change in how I design applications in Appian since the introduction of the SAIL user interface!

Synced Records cache the data inside the Appian data server and allow a whole new level of automatic query optimisation. And I can query, filter and aggregate data across the entire data model across any system boundary. Think of a future where you do not have to write any database views! I need to disappoint you, that future is already there!

Think of an aggregation that shows the number of work orders by region! Work orders are stored behind a web service, support cases in Appian and Regions in SalesForce. With Data Fabric this takes about 2 minutes to implement and is super fast as Appian optimises the data and queries automatically behind the scenes.

Now, how does this change my way of designing applications?

CDTs, DataStores, database views are gone. Now, I can focus on my business objects and I can ignore situations where objects do not have a direct relation. And I do not have to copy data just because objects do not have a direct relation.

Think of the example above. How would you aggregate work orders by region? You would probably copy the region into the work order, right? This need for partially de-normalising a data model adds a level of complexity to applications that eats up precious developer time without adding any benefit.

Designing the data model for applications became a lot easier now. As long as the objects have any relationship to another, I can query, filter and aggregate on them, even across 5 hops over 3 different systems!


Appian Records and Data Fabric will really transform your way of working! And there is a lot to discover. Take your time to explore these new product enhancements. Custom Record fields and Record events are a great new playground.

I will support you in doing this and share my hands-on experience with you in some of the upcoming posts and podcast episodes.

Write in the comments below about what your experience and what you would want me to dive deeper into.

Leave a Reply