Track user's activity per application

Hello Appian Community,

We are receiving a request from our customer to track the user's activity inside the application.

1. Track their login/logout timestamp per application per user

2. Track their time spent on viewing each interface per user per application

3. Track their action performed inside the application (clicking button, submitting the form, user input task etc.)

Please suggest if this request is feasible.

Thanks in advance

  Discussion posts and replies are publicly visible

Parents
  • 0
    Certified Lead Developer

    The only way I could really see this happening is if you had some form of logging message that was sent to the backend logs on basically every interface of the system that sent info including timestamp and results of the loggedInUser() function every 30 seconds.  You could find when a user stopped looking at an interface by when the messages had a different interfaceId coming in, and you'd know when the user logged off or started looking at their own profile or something by when the messages stopped coming in altogether.  Then you would also log every key interaction in the system, possibly writing to the log table in addition whenever you write to some other table.  That handles item 3, which in all practical terms is probably the most you really want.

    At the end of the day, the most important question you can ask is "Why?"  Why do they need to log this much?  Why do they need to know the moment the user logs in and exactly how long they look at each page?  The logs are going to get exceedingly enormous, and all that logging in a continual basis is going to be a huge performance drain on the system.  It's going to be a huge drain on whatever tries to scan those logs.  When you have too much data, you can't see the patterns in it anymore.  It also shows an alarming lack of trust that could alienate employees and prevent adoption of the system.  I wouldn't want to use an app that nannied me so much.

    It requires really sincere sober judgement to say, "What do we really need?" Try do explain the concerns and costs associated with that much surveillance.  Try to help your customer see the exact level of logging that should be built.

Reply
  • 0
    Certified Lead Developer

    The only way I could really see this happening is if you had some form of logging message that was sent to the backend logs on basically every interface of the system that sent info including timestamp and results of the loggedInUser() function every 30 seconds.  You could find when a user stopped looking at an interface by when the messages had a different interfaceId coming in, and you'd know when the user logged off or started looking at their own profile or something by when the messages stopped coming in altogether.  Then you would also log every key interaction in the system, possibly writing to the log table in addition whenever you write to some other table.  That handles item 3, which in all practical terms is probably the most you really want.

    At the end of the day, the most important question you can ask is "Why?"  Why do they need to log this much?  Why do they need to know the moment the user logs in and exactly how long they look at each page?  The logs are going to get exceedingly enormous, and all that logging in a continual basis is going to be a huge performance drain on the system.  It's going to be a huge drain on whatever tries to scan those logs.  When you have too much data, you can't see the patterns in it anymore.  It also shows an alarming lack of trust that could alienate employees and prevent adoption of the system.  I wouldn't want to use an app that nannied me so much.

    It requires really sincere sober judgement to say, "What do we really need?" Try do explain the concerns and costs associated with that much surveillance.  Try to help your customer see the exact level of logging that should be built.

Children
No Data