Does Appian log user activity? Need to know what they accessed

I need to know if Appian logs user's activity once they log into the system. Specifically, I need to know what the user did when they were logged in (if they clicked on records, reports, etc.)

Use case: A user was setup with an incorrect access level and they were able to see a list of records for all the divisions of their company when they only should have had access to one division. The user reported this, and the access was corrected. The issue now is that depending on whether the user saw data for other divisions we need to report an incident. So we need to know exactly what the user did while logged in.

 

What I've tried: I looked at the system logs authz-audit.csv and jboss1-access.log for the day of the occurrence and I don't think I've found anything useful so far. I also looked at records_usage.csv which can tell me what records the user accessed but not much else than that.

  Discussion posts and replies are publicly visible

  • Hey oscarb,

    I don't know of any user tracking in Appian that could be that specific about everything that the user clicked on.

    To avoid a similar problem in the future, you could create a site that has a UI which works similarly to the records tab. When you click the link within the grid, you could use put a!startProcess in the saveInto. You can call a process model that writes any information that you need to some 'History' table in your database.

    It's a solution that would require a good amount of development, but if it is a huge requirement then you may want to consider it, or something similar.

    Thanks,
    Jake
  • +1
    Certified Lead Developer
    Hi I believe there are no such log provided by Appian which contains each and every click information.

    Yes appian provides various logs for various use cases but for this requirement you need to do manual coding from your side.

    The best approach could be, design a reusable process and define required fields as parameter and call this process asynchronously wherever you want. As you want to capture each and every information's it's always a good idea to keep this reusable process pretty simple and call this asynchronously, even startprocess() is also treated as asynchronous call.

    But when it's an asynchronous call, you may expect some delay in some cases, depending on sever job scheduling.

    Hope this will help.
  • Hi,
    There are two ways you can achieve what you want :

    1) You can create one process model to capture the logs or on which page users visits . Call this process model from each interface and capture some basic information like user name , interface name ( give descriptive interface name for better understanding) , date & time and store all of this info in table and publish the data from table into a grid so you can easily see who visits which page . But remember one thing by doing this your application will be slow so before implementing this please discuss with your client whether they need this really or not.

    2) Create a site and gives gives access to only required users on only required record dashboards .

    Regards
    Abhay Giri
  • +1
    Certified Lead Developer
    Dear Oscar,
    This is visible in the system logs, in the "audit" folder. If you have a Cloud environment, this may be the URL of that folder:
    https://<YOUR_ENVIRONMENT>.appiancloud.com/suite/shared-logs/<YOUR_ENVIRONMENT>/audit/

    Specifically, this can be found at records_usage.csv .
    There is a user identifier on the second column ("User") - you can look these IDs up in Appian Designer to figure out the user. In other words:
    1. In Appian Designer, at the top, you will see:
    APPLICATIONS - OBJECTS - USERS - MONITORING
    2. Click on Users
    3. Do a search on the UUID (_h-000..._10); the user should appear as a result

    I hope this helps. I had a similar issue about wanting to figure out what users saw and found your post; thank you for posting!