Good day to all

I hope I get the answer to the question here


Our customer has a requirement to organize tracking of user actions in the system.
The requirement includes:
1. tracking user actions on a Web page (using a filter on data, clicking on a button, time to enter / exit a page, etc.)
2. tracking insert / change / delete data in the database

I want to clarify if there is something like that out of the box or maybe there is on the Forge. 
Maybe someone has already done something similar.


Of course I read this article (https://success.outsystems.com/Documentation/Best_Practices/Performance_and_Monitoring/Audit_Trail)/ But on the 1st requirement there is not a word


The application  "Audit System" (https://www.outsystems.com/forge/component-overview/3852/audit-system) covers the second requirement.
But for this, it will be necessary to make a corresponding call in each wrapper method, which is laborious


Is the only way to implement the first requirement is to embed Javascript on each button / link to call the logging method?

Solution

Hi Vladimir,

I'm not aware of any out-of-the-box functionality that would go down to the user action level. Analytics will only go to the screen level, likewise for apps that rely on that information like AdoptionMonitor.

I believe you'll need to write your own implementation for the first requirement, but I'm not certain I'd use Javascript for every logged action - for page time it makes sense. But for explicit user actions like clicking buttons or requesting data, it would probably be easier to manage this by invoking a logging action at the start of every screen action that you want to log, or to create wrappers in your business logic layer that both log as well as fetch/write the data your user requests.

Solution

Hi Afonso

Thanks for your reply

We need tol consider the proposed solution: will it cover all requirements for user actions in such an implementation

Hi Vladimir,

You might want to check the following forge component:

https://www.outsystems.com/forge/component-overview/7505/pyze-analytics-plugin-for-reactive-web-apps

Also, if you want to leverage something else like Firebase Analytics, then you might have to inject some firebase script in all your screens so that it can track the user actions behind the scenes.

Hi Akshay
Thanks for your reply

I probably should have explained in more detail.
These requirements come from the Department of Security. And it’s important for them to be able to track the actions of each user
The proposed option (using Firebase Analytics or Pyze Analytics) means the data will be aggregated on a third party. And this is unacceptable for them.

Typically, this analytics is more needed for business units to track user experience for further improvement.