Dynamics 365 Customer Self-Service PowerApps Portals – Creating a Case on Behalf of Another Account

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.

Dynamics 365 Customer Self Service PowerApps Portal

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.

Creating a new Case

If a portal user would click on the Customer lookup, they would only see their own account;

Account Lookup

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)

Partner Attributes added to Case Entity

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.

Managed Accounts

We would also need to assign particular contacts who are also being managed by the partner.

Managed Contacts

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)

Account Partner Entity Permission

We also would need to configure Contact Entity permissions based on the Account -> Managed Contacts relationship. (msa_contact_managingpartner)

Contact Partner Entity Permission

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.

Assign Web Role to both newly created Entity Permission records

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.

Managed Account Lookup
Managed Contact Lookup
Case created on Behalf of Customer

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.

Summary

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.

Photo by Wil Stewart on Unsplash

Nick Doelman is Micrsoft Business Applications MVP and focused on training on the Power Platform and PowerApps Portals.

3 thoughts on “Dynamics 365 Customer Self-Service PowerApps Portals – Creating a Case on Behalf of Another Account

  1. Hi Nick,
    I have made a portal for a customer of mine.
    It’s for their customers so they can log in and buy their products.

    One requirement is that their sales staff can log in and place an order on behalf of one of their customers.
    I tried to follow the guide above but i doesn’t work the way i intended.

    Do you know if there is a way for an internal employee to log in as a customer and only see the customer specific products?

    Like

    1. This can definitely be done. Its hard to describe in a comment section of a post and you would need to design it out properly. At very least, the sales people would need to setup as contacts with some kind of relationship to the accounts (customers) so the could view the customer data (ideally using parent-child entity permissions). What I suggest is you spin up a trial and look at the Partner Portal template as it is configured to manage a customer channel (partners would log in and manage only their own customers).

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s