I wrote recently about how to track duration in stages of a Business Process Flow. This is a common request from customer as understanding where processes are slowing down or where they are really efficient, is important so that companies can grow and evolve and become better. This article is around how to track the number of times a record enters a stage of a Business Process Flow. But why is this important?
Business Process Flows are a way to guide a user through a process, capturing data along the way and, in some cases, preventing users from going forward, without the necessary data or checks. However, in the real world, Business Process Flows don’t just go forward, sometimes they go backwards. Maybe this is because it went through to the next stage too quickly, maybe there was a mistake and it needs to go back, maybe SLA’s are tied to certain stages of a BPF. Let’s describe a use case so we can see where this might be useful.
An organisation uses a Business Process Flow to track sales of items and then shipments of Orders. This Business Process Flow is updated by several people, Sales People, Order Processing and Credit Control. The BPF has 4 stages:
Quote -> Order Confirmation->Shipping ->Close
The Sales person puts the order on, quotes the customer and the customer accepts the quote and orders multiple products. The sales person moves the BPF to Order confirmation and then Shipping. The Order processing team picks up the BPF and starts to ship products. The sales person realises the order needs to be shipped to multiple locations so moves the BPF back to Order confirmation. With multiple locations, additional shipping is required, so the record is moved back to Quote. Everything is resolved, a new quote is generated and accepted, the BPF moves through Order Confirmation, Shipping and then Close.
In this scenario, the business wants to identify orders which have gone through the stages multiple times, to review these and understand the pain points and how they can be more efficient. To do this, we need to measure how many time we enter these stages.
I discussed previously how to track duration with tracking records, this is required for this solution as well, so start by following these steps.
Next we have a couple of options. If we have the tracking records, we can use a rollup to count these. You create a new field on the form with type Whole Number and make it a rollup field.
Now we need to edit the rollup calculation. Set the Related Entity to be the BPF Tracking record you created in the previous solution and the Aggregation to be a Count of the BPF Tracking.
That’s it, simple.
OK, maybe not that simple. Rollup fields are valuable and if you have a 10 stage BPF, that’s all the rollups you can have for that entity. N.b You can have 100 rollups per environment and 10 rollups per entity. This leads me to Solution 2.
Solution 2 (prefered method)
We can build this same functionality with a field and a workflow. This is a little known feature of workflows but something super useful. Start by creating a field for each stage, as a Whole number and an accurate name.
Next, we create a simple workflow. The workflow will run on creation of the BPF Tracking record which is part of the original solution. The workflow will do a check to find the name of the tracking record (which should match the name of the stage) and if it matches, we are going to update the value in the field.
The number and increment feature of workflows is a relatively unused, sometimes unknown, function which can be really useful. You first click into the field you want to update, then in the default value, add the number 1, then in the Operator, choose “Increment by” and then press OK.
If you have done it right it should look like the below.
Every time a new tracking record is created, the workflow will run and update the corresponding field and you get a new total.
There you have it, a way to count the number of entries into a stage of a BPF, with and without using a rollup.
Ciao for now!