Hi all!
This is an extended riff on both @Catherine_Choe 's How do I restrict access to certain agreements in the repository? thread and @Shirin_Keen 's reply to @alex_su 's question on repository permissions (which is almost exactly our use case).
The scenario arises when an NDA (launch-able and accessible to all user groups in both Dashboard and Repository) needs to be kept internally confidential, limited to say the Workflow Owner and Legal team, unless others are looped in.
Unfortunately, to my knowledge (please correct me!) there's no simple way to just lock down a particular contract in this way.
Having said that, I've carried out some early testing for a potential workaround for our NDA workflow (which we might extend to others too, if it works) which I'd love a sanity check and get your feedback on:
1. Dashboard and general access (in-flight contracts)
- Restrict "Workflow access" to none for all User Groups (except Legal) so that only the Workflow Owner (i.e. the user that created it), Participants (e.g. a user added as a Participant by being tagged in a comment), an Approver, a Signer and the Legal team can access. All users can still create any Workflow, but can't see or access any Workflows they didn't create (unless added to as Participant, Approver or Signer).
- Right now, any user can simply flick someone the URL to any Workflow which the recipient can open – if we restrict Workflow access like this, the sender will need to first add them as a Participant or Approver for them to access. It's an extra step, but I think we can inform users of that change and live with that.
- Also, for all User Groups (except Legal), set the Repository permission to "Choose access rights for specific Records and Record types" (relevant for below).
2. Repository access (signed contracts)
- Create a new 'Visibility' question and condition for the Workflow: "Is this Agreement Public (default) or Private?" along with some suitable help text to explain that 'Private' Workflows are internally confidential etc. The 'Public' option will be pre-selected by default.
- Add a Group Access to the Record Access section of the Archive step in WFD (what a mouthful!) that is conditional upon it being 'Public'. Repeat for all non-Legal user Groups [I assume, but yet to test, that I don't need to add Legal access here because that is set to view/edit all records at the Legal user group level].
- So, if a Creator selects 'Private' in the launch form, once signed, only the Legal team will see that particular agreement in the Repository. Note that even the Creator won't see it in Repository, but can still access the Workflow (and agreement within it) via the Dashboard, appearing in the Completed section. This isn't ideal, and might take some explaining/re-training if we find the business are frequently using the Repository (my hunch is not), but given 'Private' contracts should be fairly infrequent, we might be able to live with it.
Anyway, would love any thoughts/feedback (or links to where this may have been solved in the past), and hoping that this workaround will be redundant soon enough with some sort of user<>contract level permission override 🚨