Skip to content

Building Insights Pages

An insights page is a dashboard. It holds widgets that each run their own query over your cases or instances and draw the result as a chart, a table or a single number. Insights pages are configured under Configuration → Pages by creating a page of type Insights and adding widgets to its grid.

Anatomy of a widget

Every chart widget answers one question, and that question is assembled from four parts.

Data source \ Whether the widget counts cases or instances, and which attribute it looks at. The attribute can be a built-in one such as the workflow state, the assignee or the initiator, or any information you have configured.

Aggregation \ What to do with the values it finds: Group counts how many fall into each value, Total, Average, Minimum and Maximum do the arithmetic on a numeric attribute, and Distinct counts distinct values.

Secondary grouping \ How the result is split a second time. None gives a single set of values. Over time puts time buckets on the axis, controlled by the time interval and the maximum number of intervals. Attribute splits every group by a second attribute, giving one series per value of that attribute.

Visualization \ Which chart type draws the result, plus its options: value type, maximum number of groups, sorting and the chart-specific settings described below.

Filters restrict what the widget looks at, independently of the page it sits on.

Which groups a chart shows

Info

New in Atfinity 17.

A chart grouped by the state, by a user or by the process offers a second choice under the attribute: which of those groups it draws. This is not a filter. A filter decides which cases the widget looks at, this decides which of their groups reach the chart.

For states you can draw all of them, all except the final ones, only the final ones, or the ones you pick yourself. Leaving out the final states matters most on the two Time spent in state attributes, where a case keeps adding time to the state it sits in: a case approved a year ago carries a year in Approved, and those slices grow until they hide the states where work waits. Picking states yourself works on the state key, so two processes that both have a state called approved form one group.

For the owner, the assignee, the initiator and the process, the choice is all of them, all except the deactivated users or disabled processes, or only those. A case leaves the chart together with its group here, so the total the chart adds up changes with the selection.

Sorting a state chart by Workflow order draws the states in the order the process runs through them, which makes the chart read as the process rather than as a ranking.

How long a case spends in a state

Info

New in Atfinity 17.

The two Time spent in state attributes measure in days, and the chart converts that to the unit its own numbers call for: days while a group reaches a day or more, hours below that, and minutes below an hour. The unit shows on the axis, in the legend and in the tooltip.

One unit covers the whole chart, so its bars and slices stay comparable, and the unit follows the groups the chart actually draws. The maximum number of groups caps these charts as it caps any other, and the states beyond it are collected into Other. Adding averages of different states together would not mean anything, so Other carries the average a case spends in any of those states, weighted by how many cases each of them saw. A chart that leaves out its final states therefore scales to the states where work waits, while the same chart showing every state scales to the years a finished case carries. Two charts on one page can end up in different units, which is worth a glance at the axis before comparing them.

Chart types

Bar \ Compares one value across categories. The default for "how many cases are in each state". Combine it with Over time to show a number developing over time. A Horizontal orientation (new in Atfinity 17) suits long category labels.

Stacked Bar \ Shows what each category is made of by stacking a second grouping on top of itself, for example cases per month split by assignee. Requires a secondary grouping. The maximum number of subgroups controls how many segments are drawn before the rest is collected into Other.

Line (new in Atfinity 17) \ Connects the data points, which implies they belong to one another. For that reason a line chart always uses the Over time secondary grouping: the axis is time, and the line shows a development. Use it as the alternative to a bar chart when the trend matters more than the individual values. With a secondary attribute it draws one line per value.

Pie \ Shows how a total is divided between categories. Drawn as a donut by default; turning off Show as donut gives a full pie (new in Atfinity 17). Best kept to a handful of slices, with the rest collected into Other.

Metric \ A single number, for example the number of open cases. Optionally compares against the previous period, and can carry a unit.

Table \ Not a chart: a list of cases or instances with the columns you choose. Useful when the individual records matter rather than an aggregate.

Value types and labels

The value type decides how numbers are written in labels and legends: the plain Amount, the Amount (Percentage) combination, or just the Percentage. The maximum number of groups caps how many categories a chart draws; everything beyond it is added up into a single Other entry so that the total stays correct.

Errors

A widget whose configuration cannot produce data is reported as an error on the page and marked with a red icon in its header in the configuration grid. The message names the reason, for example a line chart without the Over time grouping, or an over-time bar chart on an attribute that is not a number. These errors block putting the configuration live.

Insights in documents

The same charts exist in ADX, so a document can show the same picture as a dashboard. The difference is where the numbers come from: an insights widget queries them itself, while an ADX chart is a presentation layer that renders whatever the template passes in through Jinja. See Charts for the tags and their attributes.