A common question I get about using Dynamics 365 Portals (aka Dynamics 365 Customer Service PowerApps Portal) is the ability to create cases on behalf of other customers or accounts.
A typical use case would be if a partner needs to open a support incident on behalf of their customer on the portal. Consider if I bring my widget to a repair shop and the repair shop needs to open a support ticket with the manufacter.
Note the I will be referring to Portals as “PowerApps Portals”, even if they refer to the Dynamics 365 CE Starter Portals, because, at the end of the day, these are all now PowerApps.
Dynamics 365 CE Self Service Portal
This is very easily achieved in the out of the box Dynamics 365 Customer Service 1st party app and the corresponding Dynamics 365 Customer Self-Service Portal using Entity Permissions.
Using the standard functionality, if I login to the Customer Service Portal I can create a new case linked either to myself as a Contact or to my related company as an Account (assuming that the Account is specificed on my contact record in Dynamics 365 CE). Note that if my contact record is not associated to an account it will only pre-fill my contact to the Customer lookup.
If a portal user would click on the Customer lookup, they would only see their own account;
The contact lookup would only show themselves as the logged in user.
Once the case is created it would be listed under the Account in the Dynamics 365 CE Customer Service App.
Managed Partner Accounts
When the any of the Portals solutions are installed on a Dynamics 365 CE CDS instance, there are a number of solutions installed. One of these solutions is the Dynamics 365 Portals – Portal Dependencies solution. It will add two lookups to the Case entity; Partner Account and Partner Contact. These will get added regardless of what Portal is chosen during provisioning (Custom, Customer Self Service, Community, Partner, etc)
These attributes will provide “Managed Partner” capability to customer service. While designed specifically for the Partner Portal, they can be utilized for other portals or Dynamics 365 CE apps as well.
Looking at an Account record in the CRM Hub App (or any other Dynamics 365 CE app) we can click on the related tab and locate “Managed Accounts” and assign Accounts that are managed by this particular partner Account.
We would also need to assign particular contacts who are also being managed by the partner.
In order to enable the ability for a partner account to create support cases on behalf of their customers, we need to setup the appropriate Entity Permissions.
We need to setup Entity Permissions to both Accounts and Contacts based on the Partner relationship. (msa_account_managingpartner)
We also would need to configure Contact Entity permissions based on the Account -> Managed Contacts relationship. (msa_contact_managingpartner)
Once the entity permissions are in place, a Web Role would need to be assigned. In my example, I have used the Authenticated Users web role but in a production situation you would likely want to setup a custom Web Role.
Now when a partner contact creates a case on the Customer Self-Service portal, they will be able to choose one of their managed Accounts and Contacts on the support case.
The screen shots in the example show the basics. There would be other modification required based on your situations, such as:
- Use Entity Metadata to assign the Partner Account and Partner Contact to the Case when it gets created.
- Create specific Entity Lists to show Managed Account Cases
- Add the Partner Contact lookup to the Case entity form as the partner may be main point of contact.
Even with the release of PowerApps Portals, there will still many use cases for using the starter Dynamics 365 CE portals, with the Customer Self-Service portal being a popular choice. Many unique requirements can be easily met using configuration as opposed to deep customization.
Nick Doelman is Micrsoft Business Applications MVP and focused on training on the Power Platform and PowerApps Portals.