Hi @DrCharlesDBA .
When you are using SharePoint as a DB for a solution, there is a default field in every list called ‘Created By’ and ‘Modified By’. If each individual user is logging into your app from their Office 365 account, whenever they create or update a record, their details will pull through. Alternatively, when you creating or updating a record, you can use the function “User().Email” in your patch or collect function, and this will pass the current users email into your specified field.
To allow various roles to view specific records, Dataverse would be a great DB to achieve this. If you do need to use SharePoint Lists, I’d advise you create a permissions matrix as a list and apply restrictions in your app accordingly. You can associate the roles in your app and align it to the current logged in user using the same principle above. by referencing the role to User().Email.
Lastly, you can utilise Approval Flows through Power Automate that can notify approvers when required. You can build the flow to update record fields to statuses such as “Pending”, “Approved”, “Rejected”. With these statuses in place, creating a dashboard to view pending changes in a gallery would work, and having a button to approve or reject can update the record accordingly.
Hope this helps.