Microsoft Dynamics CRM allows you the ability to restrict access to records among your users through the use of business units and security roles. This can be useful in situations where you do not want sales team members to see and edit each other’s opportunities or even contacts and accounts, which they may be working with.
Although this type of security is set in place, there may be occasions where team members might want to share a record such as an opportunity with another sales rep so that they both can track the status of an important sale. Through Dynamics CRM’s other features, you can do this quite easily by simply sharing the record with the other user. You can even specify if you want them to be able to just view the record or edit it as well. As information is valuable and data security is important for both the company and users, the share feature cannot be performed on multiple records at the same time, just one at a time. This action is also one that must be done manually by the user.
So what if you want to have sharing permissions given to certain people automatically upon creation of a lead, for example?
Unfortunately in out of the box CRM, there is not a share action that can be performed during a workflow. Lucky for us, a few folks decided to build plug-ins which can be added into your Dynamics CRM and provide you the ability to create sharing and un-sharing actions in your workflows. These plug-ins can be found and downloaded for free on CodePlex. Below I have included a link to each of them.
In both of these plug-ins, an option to ‘share’ was produced as a step when creating your workflow. When the step is selected you are then able to select with whom (user or team) the record is to be shared with and what the default share permissions should be (e.g. read, write, delete). Similarly, you can have the step configured to remove all sharing or sharing with a specific user.
The one caveat with using this functionality is that it should not be used to update records in bulk. If the workflow is run on several records of the same type simultaneously, then many of the workflows will end up failing. This occurs as the workflow engine for Dynamics CRM is not generating a separate CodeActivity class for each record running in a workflow processing cycle. Essentially the processes will end up overwriting each other and causing a number of the processes to fail. This issue can be resolved, but would require coding to complete.
Despite the drawback of a lack of ability to update your records in bulk, this is a very useful tool that can greatly assist your day-to-day interactions with Dynamics CRM and ultimately, help to make your system and users more efficient.