Skip to main content
Known Participant
August 11, 2026
Solved

How to set up a timer exception based on user's last action?

  • August 11, 2026
  • 8 replies
  • 62 views

My use case is that I want to kick users out of a form like the timer exceptions, but I want to do it based on the time after their latest activity - e.g if the user is actively filling out a longer form, I don’t want to kick them out, but if they linger on the form for 15 minutes without any updates, I want to kick them out.

Timer exceptions on user input tasks seem to start when the user first enters the form, which would not work in my use case since there’s a chance that after 15 minutes, the user is still actively working on the form.

 

What’s the best way to approach this? I can create a refresh always timer to track user activity on the interface, but once that timer is up, I am not sure how to forcibly remove them from the task, or write to task table to unlock the task from the backend.

Best answer by stefanhelzle0001

Feels like this would mean to discard any entered data. Do you really want that?

Time exceptions on UITs do not react on the user picking the task, but start with task assignment.

There might be some hacky options, I do not really want to recommend.

8 replies

harshas2775
Brainy
August 11, 2026

I would suggest the below design which involves tracking changes at interface level rather than process. 

  1. Create a local!lastActivity variable in the interface. eg. local!lastActivity: now(),
  2. At each form field - textfield, dropdown etc ,update this local with respective timestamp within the save Into.E.g. a!save(local!lastActivity,now()),
  3. Create another variable that refreshes every 0.5 s interval and stores now()-local!lastActivity value. As soon as this value exceeds 15 minutes, show a banner to user with a Close button and message like Session Expired. 

    Since, until the user interacts with the interface they will not know their session has expired, they will keep seeing the stale form. We have no other way to get new information from task unless user submits, saves a draft or interacts in any way. So this way when they click ‘Close’ on the ‘Session Expired’ banner you can have the process unlock the task from backend - but it definitely is upon user’s action and so not necessarily will unlock at 15 minutes mark. Hope this works!
Known Participant
August 11, 2026

Thanks for the suggestion, but I will need the interface to unlock a task on the backend (write to a record) after 15 minutes of inactivity from the user. The use case is that we’re concerned about if a user has the task open and leaves for the day (therefore locking it to them), and no one else is able to access the task.

harshas2775
Brainy
August 11, 2026

In that case you can add an exception with e.g. 3 hours or sometime long enough for the user to complete it. So user will see session expired once they are on the form and even if they dont interact in 3 hours exception path will unlock the task in process.

stefanhelzle0001
Brainy
August 11, 2026

Feels like this would mean to discard any entered data. Do you really want that?

Time exceptions on UITs do not react on the user picking the task, but start with task assignment.

There might be some hacky options, I do not really want to recommend.

Known Participant
August 11, 2026

Yes, the use case is that we’re concerned about if a user has the task open and leaves for the day (therefore locking it to them), and no one else is able to access the task. The client wants a timer like you see in a lot of other forms like when you submit something like medical forms or banking info.

stefanhelzle0001
Brainy
August 12, 2026

There is a component plugin showing a timer. Did you check that one?

BTW, this will not help you when that use just closes the browser or shuts down the PC.

mathieud0001
Brainy
August 11, 2026

From what I’ve read, I think you should probably look at using task escalations with a timer and have the escalation reassign the task back to your “queue” (typically a group).

https://docs.appian.com/suite/help/26.7/Process_Model_Recipes.html#escalating-a-task