Sunday, 10 September 2017

Using App Designer to change the end user experience with Dynamics 365

In my last blog post I shared customization and configuration tips for Dynamics 365 where the last tip I shared was to use the App Designer to change the end user experience. The App Designer was introduced towards the end of last year (I think) and it's a step up from what we previously knew about configuring Site Maps. It's one of those features that has made me appreciate how far Dynamics CRM has come as it's a neat way of reducing the noise and distraction for end users without having to resort to code.

One of the recurring themes I had in my last post was to minimize "clutter" for end users, hide anything that is not of use to them when they're interacting with Dynamics 365. When they log in, they should only see what they need to see when navigating within the menu and only have access to entity forms, views and charts that are relevant to them. This can be achieved using the App Designer.

Tell me more...

Previously if we wanted to change the default menu that comes with Dynamics 365, we would turn to the Sitemap Editor in XrmToolBox. The Sitemap Editor was our best friend for those who weren't familiar with editing the raw FetchXML. However if we go back to the principles of Dynamics CRM, the sitemap is a "global" function - it applies to all end users. A change you make such as removing the Service tile from the menu/site map means any end user when they log in will only see Sales, Marketing, Settings and Help. You're not able to show and hide the Service tile and it's respective records based on an end user's security role. You could add a privilege node for the entity that needs to be displayed or hidden but 
  1. You'd have to be confident in doing this with the Sitemap Editor in XrmToolbox.
  2. It can be confusing if you're not familiar with the security role privileges and is hard to maintain in the long term as the configuration resides within XrmToolbox. It's not something you can see within Dynamics 365 administration or customization settings.
  3. This is a risky configuration option and I have not worked with a customer who has chosen to go down this path as once I've explained it to them, they are confused and prefer to display the entity in the menu but restrict the Read access through the security role privileges. Plus you can also hide an entity from the menu within the customization settings of the entity.
This is where the App Designer comes in handy as
  1. It's configurable within Dynamics 365 which means the customer can update it themselves in the future post go-live.
  2. It's simple for end users to configure. They simply click or drag and drop to configure the Site Map.
  3. You can create many Site Maps through the concept of an "App" and assign security roles to the App. No need to create privilege nodes and be in fear of whether you correctly configured the privilege node in alignment to the security roles. You're no longer tied to a single Site Map and can restrict the Apps to certain security roles.
BUT... you can do more than Site Map configuration with the App Designer. This is what I cover in my vlog. Check it out by watching my vlog below.

How to create a new Dynamics 365 App

What you need prior to creating a new App
  1. An unmanaged solution to create the App in.
  2. System Administrator or System Customizer security role.
  3. A plan of what entities you would like displayed in the menu, as well as the what other entity components you would like the end user to have access to.
  4. A plan of the security roles that are permitted to use the App.

Creating the App

Open your unmanaged solution and on the left hand side you'll see a new component called Apps.
Click on New.

A new window will appear where you can
  1. Enter a Name for the App. This is what the end users will see.
  2. Unique Name is the schema name for the App.
  3. Select an icon. By default, there will be a default icon that is used. However if you have uploaded a web resource with a .png that is to be used as the icon, simply untick the box and a dropdown field will appear where you can select the web resource.
  4. Enter in a suffix for the url of the App.


Once you're happy with the details, click Done. You'll have a new window appear where you can configure a Site Map for the App.


Click on the arrow icon to configure the Site Map. You'll now be able to add 
  1. Area which is a menu tile (eg. Sales).
  2. Group which is the heading or category of what will sit underneath it.
  3. Subarea with is either a dashboard, entity, web resource or URL.


To add the components, you can either
  1. Click on Add and select what component you want to add.
  2. Drag and drop the component from the right.


For each component you add in, enter in the details on the right hand side. 

When adding a new Area, you enter in a Title and select an icon. Icons are web resources so if you have a custom icon, make sure it's a web resource within the unmanaged solution the App resides in.


For a Group, all you need is a Title.


For a Sub Area, this is where you can pick what type you would like to be displayed. A majority of the time it will be an entity but there are other options that can be selected. If the entity has an icon associated to it, it will automatically load by default.



Once you're done with configuring the Site Map, it should look something like this:


Save and Publish your Site Map. When it has completed, you'll see the buttons disabled as per the above.

Click Save and Close. You'll be directed back to the App Designer where you can do extra configuration on top of the Site Map.

Do tell me more...

Remember earlier when I mentioned you can do more than configure the Site Map the App Designer? You can also hide other elements to minimize clutter for end users #winning

Displaying dashboards

If you click on dashboards, it will display the list of dashboards available within the Dynamics 365 instance on the right hand side. You can select what dashboards you want to be visible for the App. Continuing with the last screen shot, I've created an app for the Service Desk team. I only want them to see dashboards related to Cases. I simply tick the check boxes for the dashboards I want the end users to see.


Displaying Business Process Flows

Same applies to Business Process Flows, it will display the list of Business Process Flows available within the Dynamics 365 instance on the right hand side. You can select what Business Process Flows you want to be visible for the App. 

Displaying entity level components

This one is my personal favourite :) 

You can hide and show Forms, Views and Charts for each entity! Why am I excited about this? Because I get asked to hide Views all the times by customers. Now you can do it with the App Designer.


You can also hide the Forms as well within the App Designer. You can also still use the existing configuration feature of hiding it based on security roles (you do this with the form customization). 


Side note: hiding Forms is something I come across more frequently in my projects these days as I work with customers who are also implementing Dynamics Portals. In Dynamics Portal, you do create new entity forms for the purpose of displaying them on the portal. These forms often don't need to be seen by end users.

Same with Charts, you can select which charts you want to be displayed to end users.


When you're done selecting what you want to be displayed, save and Publish the App. Exit out of the App and you're good to go :)

Enabling security roles to access Apps

The next thing you will need to do is enable security roles for any Apps that have been configured.

Normally you browse to Settings and you see Apps under Applications. However I have found that in the latest version of Dynamics 365 it's not appearing where it should be.


Fear not, Benitez is here! You can view your list of Apps by browsing to https://<instancename>.crm6.dynamics.com/apps. Simply end apps as a suffix your Dynamics 365 instance URL.

You'll see a list of Apps and to enable security roles for an App that has been created, click on the ellipsis and select manage roles.


You can then select the security roles that you would like to have access to the App. Select the security roles and then hit Save.


Time to test. Log in as an end user with the security role and they will now have access to the App.


Check out your components that you configured to display certain records such as Views. In my example, I restricted the Case Views for the Service Desk app.


Bonus Tip

Before you export your unmanaged solution, you need to add the sitemap component to your solution. It's not obvious the first time you create an App and you only find out when you do a deployment for the unmanaged solution. You'll get a prompt that it's missing from your solution.

Simply go to Components in the unmanaged solution and select Site Map.


Select the Site Map for the App and it will be added to the unmanaged solution.


My learnings

Copying and restoring Production

I found that if you copy and restore the Production instance into a Sandbox instance, the App URL's will point to Production. I'm not sure if the Dynamics 365 Product team is aware of this behaviour but I came across this when working with a customer earlier this year.

Apps simply hide components on the surface

If a entity is not displayed on the Site Map of an App, the end user can still get to the entity through Advanced Find. So don't think this will prevent the end user in accessing entities they 100% should not be allowed to access. You still need to work with security roles in removing access to entities.

More analysis and customization time required

Don't get me wrong, I love the App Designer. However there is something all consultants and customers need to be aware of. Due to the App Designer allowing more than one App to be created, more time and effort is required here. The customer needs to invest in planning what Apps are to be created and what end users will have access to these Apps. 

If there is a desire by the customer to have "regional" based Apps, this requires careful considerations. A customer I have worked with here in Australia wanted Apps based on the State and Territories such as an App for Victoria based end users. I advised the customer that they need to put more thought into this as this will require a number of views across Dynamics 365 entities to be created that will fit the requirement of State based Apps. For example, when viewing Contacts what constitutes a Contact as being in the Victoria region? Is it by the Territory record associated to the CRM User record that is the Owner of the Contact? Or is it the Address 1: State/Province field where it equals "VIC" or "VICTORIA?"

Regional Apps can be created but need to think about how the views will be impacted. Plus the maintenance of the views can be cumbersome long term as you'll have to update all the regional views that have been created.

Summary

The App Designer allows the configuration of the Site Map and the visibility of components for the end users when navigating in Dynamics 365. The best bit is that no code is required. It is also available within the Dynamics 365 interface which is good for the customer as they can go to one place to edit any Apps.

By displaying Areas and Sub Areas tailored to specific security roles changes the end user experience. You can make end users focus on what they need to see to do their job or daily tasks within Dynamics 365 by removing any unnecessary noise. Keeping it clutter free makes their experience with Dynamics 365 much smoother.

Till next time, toodles.