Locating flaws in your process models can be a huge challenge when you have millions of process instances to sift through. Define filters in Optimize to narrow down your view to only a subset of process instances.

Camunda Optimize offers various ways of filtering your data, such as filter by:

All the listed filters can be applied to reports and during the analysis. Here you can see how to select one of the filters in a report:

Running/Completed Instances Only Filter

By default, a report considers all process instances, regardless of whether they are still running or not. With the filters Running Instances Only and Completed Instances Only, you can decide only to consider only those process instances that are still running or those that already completed. Be aware that setting one of those filters (e.g. Running Instances Only) while the other one is already set (e.g. Completed Instances Only), will show a warning message since these two filters are incompatible with each other and will not show any data.

Canceled Instances Only Filter

If the Canceled Instances Only Filter is applied, the report will consider only those instances, which were terminated before completion, either internally or externally. Be aware that adding this filter along with the Running Instances Only will show a warning message since having such combination is incompatible and will not show any data.

Non Canceled Instances Only Filter

Opposite to the Canceled Instances Only Filter, applying this filter will make Optimize query only those instances, which were not canceled during the execution. This means, that only active and completed instances are considered, externally or internally terminated instances are not included in the report.

Suspended/Non Suspended Instances only Filter

By default, a report considers all process instances, regardless of whether they are suspended or not. Adding this filter makes it possible to only consider/filter process instances that are in the suspension state. Please note that if you have enabled history cleanup, this might affect the accuracy of this filer since the suspension state is imported from historic data. More information on the limitations that exist for the suspended instances filter can be found in the current upgrade notes.

Date Filters

In Optimize, there are two kinds of date filters: the start date filter and the end date filter. Applying the start date filter will result in a report considering only process instances that started within the defined range of dates. The end date filter will work the same way for the end dates of the processes.

In order to have maximum flexibility, There are multiple options to define your start date filter:

  • One way is to set the filter to a current amount of time. e.g. today, this week, this month, etc…

    In such cases, the filter does not remain static but moves with time to delivers a subset of the process instances relative to the current time interval. In the above example, the filter will consider process instances started within this month until today. If a new month comes and the filter is adjusted to that month.

  • Another way to define the filter is to set it to a previous amount of time. e.g. yesterday, last week, last month, etc…

The filter also moves with time and is automatically adjusted to cover completed periods of time. To clarify, let’s take the following example: Today is Wednesday March 11th. If you set a date filter to ‘Last… + week’, you get all process instances that were started/ended from Monday March 2nd to Sunday March 8th. Now a Week passes and we have Wednesday March 18th. Applying the same filter now filters the process instances which were started/ended from Monday March 9th to Sunday March 15th.

  • If you want to cover previous time periods up the the current moment of time, you can use the ‘Rolling’ option. To clarify this option, let’s take the following example: today is March 28th. If you set a date filter in the last three days, you get all process instances that were started/ended from March 26th to March 28th. Now a day passes and we have March 29th. Applying the same filter now filters the process instances which were started/ended from March 27th to March 29th.

  • If you do not want the filter to be dynamic, you can also select Fixed Date which only considers process instances that were started or ended within a fixed date range, e.g. filter all process instances between 2018-01-01 and 2018-01-26. That does not change even when days pass on.

The start date filter and the end date filter are independent and can be applied to a report simultaneously. However, be aware that each of these filters can only exist once. For instance, you can set a Fixed Date start date filter. Defining now This week start date filter will replace the former start date filter. Defining a second start date filter will also replace the first one. Applying any type of end date filter at this point won’t change the applied start date filters.

Also note, that reports with the end date filter applied, will consider only completed process instances.

As an alternative way to create a start date filter, if your report is visualized as bar- or linechart, you can use your mouse to select the area you want to create the filter for.

Process Instance Duration Filter

The Process Instance Duration Filter allows you to only regard process instances that took a certain time span for their whole execution. For instance, you can filter process instances that took more than three days or less than five seconds. Note: This filter shows only completed process instances, since the total duration of running process instances is not yet known.

Flow Node Duration Filter

The Flow Node Duration Filter allows you to only regard process instances where one or more flow nodes took a certain time span for their execution. For instance, you can filter process instances where a flow node took more than three days or less than five seconds.

Flow Node Filter

Retrieve only those process instances that executed certain flow nodes (e.g. a task) within your process by using the Flow Node Filter. Selecting several values at once, means that all of the selected flow nodes need to have been executed at least once in the process instance lifetime. At the top of the flow node filter modal you can see a preview of the filter you are about to create. You can also filter process instances where certain flow nodes were not executed.

Variable Filter

Use the Variable Filter to retrieve only those process instances, where during the execution certain variables with specific values were used. For instance, assume you want to analyze only those process instances, which used the variable ‘department’ with the value ‘marketing’. The variable filter can only filter for the final value of the variable. Let’s take the example from before with the ‘department’ variable: on start of the process instance the variable has the value ‘sales’ and then is somewhere along the way reassigned to the value ‘marketing’ until the process instance finishes. In case you filter process instances for the variable ‘department’ with value ‘sales’, you won’t get the process instance described in the previous sentence.

Heads Up!

The variable filter can only filter for variables of a primitive type. If you want to use complex types like object, you can use the Variable Import Customization feature to transform your object variables into primitive type variables.

Start creating a variable filter by searching and selecting from the suggestions list of variable names, where the list contains only primitive types.

There are now four type of variables that you can filter for:

  • Boolean variables: They can have the state true, false, null or undefined. Therefore, you can choose which values to include in the process instance from the options list as shown.
  • String variables: Two types of operators are available for variables of type String. You can either filter by an exact variable value (is and is not) or filter by a substring (contains and does not contain).

    For the operators is and is not, the first 10 values are loaded and displayed. If the variable has more than 10 values a Load More button is shown to be able to extend the list as much as you need. You can also search through the whole list of values using the search input field. In case the is option of the toggle button is selected, checking one or more values means that you want to see only those process instances where the variable value equals one of the checked values (this corresponds to the or operator in the boolean logic). In case the is not option of the toggle button is selected, checking one or more values means that you want to see only those process instances where the variable value does not equal any of the checked values (this corresponds to the and operator in the boolean logic).

    For the operators contains and does not contain, you can add one or multiple values that should match a substring of the variable value. For the contains operator, adding one or more values means that you want to see only those process instances where the variable value contains one of the entered values (this corresponds to the or operator in the boolean logic). In case the does not contain operator is selected, adding one or more values means that you want to see only those process instances where the variable value does not contain any of the entered values (this corresponds to the and operator in the boolean logic).

    There is an option to include the null or undefined values of the selected variable in the result. By using the same option, it is also possible to show all the values except the null or undefined by selecting the is not option of the toggle button.

  • Numeric variables: Here you have an input field to define if a variable value in the process instance should be equal, not equal, less than or greater than a certain value. You can even add more input fields and apply the same operation several times at once. In case the is option of the toggle button is selected, adding one or more values means that you want to see only those process instances where the variable value equals one of the checked values (this corresponds to the or operator in the boolean logic). In case the is not option of the toggle button is selected, adding one or more values means that you want to see only those process instances where the variable value does not equal any of the checked values (this corresponds to the and operator in the boolean logic). In case the is less than or is greater than option is selected, only one value can be entered.

    Null or undefined options can be included or excluded from the results in a way similar to string variables.

  • Date variables: This filters all instances where the selected date variable has a value within a specified date range. All the options that are available to configure Date filters are also available for date variables.

Similar to the other variables, there are two input switches that allow you to exclude or include process instances where a particular date variable is either null or undefined. When the include option is activated, the instances that has the selected variable as null or undefined will be included in the result. On the other hand, if you want to only show the instances that has a defined value, you can use the exclude option.

Assignee and Candidate Group filters

These filters allow you to include or exclude instances based on the assignee or the candidate group of at least one user task of a particular process instance.

As shown in the example, it is possible to select one or more assignees or even filter for unassigned instances.

Please note that this filter has different behavior depending on the selected report view:

User Task reports - For user task reports, this filter only includes user task instances that satisfy all assignee/candidateGroup filters defined in the report at once. Mutually exclusive filters like having both an inclusive and an exclusive filter on the same assignee do not yield any results in user task reports.

All other reports - For non-usertask reports this filter includes all process instances where at least one user task satisfies one particular assignee/candidateGroup criterium. This means multiple mutually exclusive assignee/candidateGroup filter entries might still yield results for these reports, e.g. if the process definition contains multiple user tasks.

Combined Filters

All the previous mentioned filters can be combined together by adding one filter after another. Only those process instances where all of the configured filters are valid are regarded in the report or analysis. The duration filter, flow node filter and variable filter can be defined several times. See the following screenshot for possible very long combination of filters:

Everyone who has access to the report can add their own filters, e.g. by creating a dashboard that contains that report and using dashboard filters. Filters added in such a way are always combined with the filters set in the report edit mode. That way, users can reduce the set of process instances that are considered when evaluating the report, but not increase the number of instances evaluated above the set the report author specified. Users can get access to a report via the sharing functionality or if the report is in a shared collection.