Sometimes, project requirements can take an interesting turn, and we may need to think of unusual solutions. Fortunately, we have powerful options up the sleeve, since, after all, we are not talking about some kind of a csv file here – it’s Microsoft Dataverse!
So, when it comes to the activity tables in Power Platform, there are a few unique characteristics specific to the activities only:
- This is a hierarchical table – there is a parent activity table and there is a bunch of child tables such as emails, phone calls, etc
- Which is sometimes a problem from the security perspective, since we can’t give permissions separately per activity type
- And, also, because of the timeline control, it may be undesirable to hide some activities from the users since, then, the timeline becomes broken (for example, some emails might be showing up there, and others might be hidden because of the permissions)
However, in the environments where, for instance, users from different business units might start sending emails to the same contact, it might not take long before we are asked to start hiding some of the emails so that different business units would not see each others emails (or, at least, some of those).
Which might mean the timeline would get broken, and, in general, it would be difficult to rely on the timeline control to see if there was any communication with the contact.
So, what if we wanted to keep the emails visible to everyone in the system, but, at the same time, what if we wanted to protect the actual messages on some of the emails?
Would it be possible to do have it working like this?
Everybody would still have “read” access to the activities/emails, but, as far as the actual email message goes, it would be protected and stored in a separate table where users will have access permissions different from the permissions they’d be given for the activities.
There is a plugin behind this solution, and I’ll talk about it in more details later, but, if you are wondering, feel free to have a look:
https://github.com/ashlega/ItAintBoring.SecureData
There are, also, additional explanations in the next post
And below is a quick video for this proof of concept solution:
Let the Power be with you!