Access Teams To The Rescue
Recently, we had a client requirement to restrict access to attachments for certain users depending on the stage a case is currently assigned to and to also only allow attachments to be viewed by users based on the look up field’s value (System User entity) on the case record.
To solve for this, we have decided to create a 1: N relationship from the Case entity to a newly created Case Attachment entity and add attachments to the Case Attachment entity record. The next step would be to add an Access Team (CA Team) to the Case Attachment entity record and then add users to this record dynamically, depending on the User lookup values on the Case record.
In order to determine which system user lookup field values to be selected on the Case record, we have created a Case Status Mapping entity to store the stage and corresponding user lookup field schema names in this entity. This entity is referred to dynamically add users to the CA Team access team sub grid on the Case Attachment record.
1. The Stage field on the Case entity.
2.The user field look ups on the Case entity.
3. Case Status Mapping entity with fields, Case Stage/Current Process and user lookup field schema names in the Name field.
4. The Case Attachment record with Access Team (CA Team)
5. We have a 1: N relationship from CASE to CASE ATTACHMENT entities.
Case Attachment sub grid on the CASE record.
6. Custom Workflow Activity
- We created a workflow that triggers based on the Case Stage field value change.
- The Custom Workflow activity retrieves the Case Stage value from the Case
- The Custom workflow activity then refers to the Case Status Mapping entity based on the Case Stage value and retrieves the user look up field schema names.
- The Custom Workflow activity would then retrieve the values from these user look up fields and add these users to the Access Team (CA Team) on the Case Attachment
7. By doing this, we have been able to control access to attachments dynamically using access teams on the related entity record.