Time to complete Task and Pausing Tasks

I’ve been wondering recently how best to capture the user-time on a task.
Normally, this is calculated as [Completed Time]-[Claimed Time]
How do we account for multiple people working on a task?
I supposed that can be calculated from the History Tables [Claimed Time where Assignee=‘User 2’]-[Claimed Time where Assignee=‘User1’]

The bigger piece to me is… How to calculate the time on a task when a user “pauses” the work on something to work on something else?

I’m thinking of trying to build a “To-Do” list as an example of a working C7 application but that show how much time doing each of the things in the “To-Do” list took to get done, in terms of effort, not elapsed time.

It’s sometimes easier to see how to build your solutions when you have a working sample case to work from, and this feels like something that everyone can relate to…

Hello @GotnOGuts ,

this sounds to me like some extension to the frontend. In the webapp, you would be able to track how long the task is actually active, how long the user is on the tab in which is the app is open and so on…

Do you mean this? And if yes, I am not aware of an example.


No more like having an additional button to the Save / Complete buttons.
Having an option to “Pause” since human workers (unlike script workers) rarely stay on task until the task is complete (which probably means that the task can be broken down into smaller steps…)

So you could have:

08:42:35 Claim Task
08:44:12 Pause Task
08:59:51 Restart Task
09:20:08 Complete Task

So doing a Complete - Claim looks like 37m33 of effort, but in reality it was 21m54 of effort. The 15:39 might actually be assigned to another task.

This could be used to force a worker to only have one active task at a given time.

Hello @GotnOGuts ,

now we are getting together.

As the implementation requires additional logic in the application, it will either become a plugin or a seperate app.

Here are possible plugin points in the tasklist webapp:

Maybe tasklist.task.detail would be a nice plugin point. There, you could add dialogues to display the relevant data for the user and the interaction. Maybe there is some way to couple it to the form part of task details, so that the form is disabled as long as the timer is not active.

I hope this helps


Marked your answer as a solution, because this was more of a “How can I approach this” rather than getting to full implementation.

I’m not really a coder, so I likely won’t end up building what you describe. But I feel like there’s enough information in the thread for someone who does code to come up with a plug-in

It might also be interesting to add more states to user-tasks… (Unassigned, Claimed, Active, Closed) where tasks can cycle back and forth between Active & Claimed. But that’s beyond the scope of this thread.

1 Like

Hi @GotnOGuts,

you could also map the changes to claim - unclaim - … - complete sequences. Then all timestamps will be recorded in the database.

The challenge is to do an automatic unclaim if the user leaves the sceen/web browser tab.

Hope this helps, Ingo

The thought pattern wasn’t so much about “leaving the browser screen” but more about a human worker getting interrupted and ‘context-switching’ to a different task (that should also be on the ToDo List…). The thing is that if a human worker is working on a task, they’re likely to come back to that task, and be upset if someone else takes over while they were planning on coming back to it.

In that scenario, they don’t want to “unclaim” the task, since it’s still “theirs” but they’re not actively working on it.

Hi @GotnOGuts,

I know from further discussions that this could be a rabbit hole to dig in.

I think the main questions here: What is an interruption and what happens during this? Could be from switching to a new browser tab or app (quite easy to get for a computer) up to leaving everything on the screen as it is and pick up your mobile phone to play a game or pick up the ringing phone. (difficult for a computer to get, except a timeout).

How fine grained do you want to get work time? Should it be measured in seconds or in hours as the user works on a long running complicated task? Is it then worth to catch each small interruption in unit of seconds?

Cheers, Ingo