Tag Archives: user experience

CRM 2011 New Features: Embedded Charts

I’ve been playing with some of the new sub grid and chart features in CRM and was able to configure something quite cool, we can now embed a visualisation on the CRM form right next to the data entry fields to provide instant visibility of key data.  

In my example I wanted the Opportunity Pipeline for an Account to be displayed whenever I look at an Account record and this is what I was able to configure, no code required:


I made use of a few new features to get to this end result:

  • Display sub grids on CRM forms
  • Display field labels above fields (gives me more real estate across the page)
  • Display sub grids with a chart
  • Hide the sub grid, display only the chart

Very, very cool!   I’m going to have fun designing solutions on 2011, that’s for sure!

Adding a button to the CRM toolbar to launch a CRM view

I have found that frequently there will be one key entity in CRM that users spend most of their time on.  Sometimes its Cases, other times its Opportunities.  No matter which entity it is you can improve the user experience by providing faster access to that entity by adding a toolbar button via CRM’s ISV config settings.  Here’s how…

Firstly, this is how it looks.   I’ve added a “My Opportunities” button to the CRM toolbar.  When clicked, a new Internet Explorer window is launched displaying the Opportunity entity, and specifically, displaying the My Open Opportunities view.  Not only have I given my users a 1-click navigation solution but I have also given them a way of launching this key view in a separate window where it can remain open and easily accessible whilst they jump around between other entities back in the main CRM window.    This works in the Outlook client and the web client, but the gains are probably felt more when using the Outlook client as you no longer ‘lose your place’ as you flick back to your Inbox or over to your Calendar.

Here’s what the ISV config entry looks like:

This sits under the <ToolBar> node.

The Button Icon attribute defines the relative path to the button’s image file.   You can create you own image files and point to those but I find you can normally find something useful in the _imgs folder on the CRM server.

The URL attribute is where we specify the URL of the view.   Easiest way to determine the URL of a view is:

– Navigate to the view in CRM

– From the More Actions menu, select Copy Shortcut Of Current View…

– Paste this into Notepad

Quick and easy, but makes CRM just that little bit more enjoyable to work with.

Suppressing CRM Menu Items Based on Privileges

Your first step to simplifying your CRM menu for your users should be to configure security roles that grant READ access to only those entities your users will be working with.  

e.g.. take away their permissions to the CASE entity and like magic no more CASE menu item…

Now, this approach only gets you so far.  For example you will find you have to give users READ permission to Users and Business Units and as a result the Settings and Administration menus remains visible to them.   And you might find you don’t want something like Competitors showing on the menu but you do want users to be able to specify against their Opportunities when they are closing them.

Microsoft have given us a a tool that helps us here – in the Sitemap definition we can add privilege checks to individual menu items.   The privilege check looks like this:

I have highlighted in yellow the section of the Sitemap that defines the Competitor menu item.   Inside the red box is the privilege check.  The addition of this line instructs CRM:  “hide the above menu item unless the user is assigned a security role that gives them CREATE permission on the COMPETITOR entity”.

So, once you’ve trimmed back security roles have a look at what your users are left with and where you want something visible only to your super users ask yourself “what permission do my super users have that my normal users don’t?” and add the corresponding privilege check.

Some examples:

– If Queues are used for Case assignment by team leaders, and your standard user does not have permission to assign Cases then add a privilege check to the Queues menu item based on the ASSIGN permission to the CASE entity.

– If you don’t want the SETTINGS menu to appear then you can hide it using this approach but you will need to add the privilege check to each menu item that is appearing under the SETTINGS menu.  Consider adding a privilege check to each menu item that references the CREATE permission on the USER entity.  This will hide the entire Settings area from everyone except those users who are allowed to create new users.

– In the below example Marketing menu items are each given a privilege check:

Now, if you are struggling to pick a permissions test that will work for you, consider creating custom entities just to support this approach.  For example, create a new entity called HiddenMenu and ensure the security role your senior management users are assigned includes READ permission to this entity.  Then, in your Sitemap file go to each menu item that you want available only to those senior management users and add a privilege check that requires the user has the READ permission to the HiddenMenu entity.   Easy 🙂

Flattening the CRM menu

CRM ships with Sales, Service and Marketing menus to provide a bit of structure and organisation to the menu.  This helps the user experience when your users work across major functional areas and need to be able to work with a wide range of CRM entities.

However, if your use of CRM is focussed on a handful of key entities then you might find this menu design a little cumbersome.   You might find that you mainly work in Sales but there are somethings you have to go to the Workplace.   Jumping between menus can get a bit tiresome and users can get a bit annoyed by not knowing where to look. 

I’ve found that the user experience can be significantly improved by flattening the CRM menu.  In simple terms, you do away with Sales, Service and Markeing and place the menu items that are relevant to your organisation all in the Workplace menu.    One menu, all your screens, your users will love it.

Take the CRM menu from:


Here’s how…

1. Open your exported Sitemap file in a text editor

2. Comment out whichever of the Sales, Service and Marketing areas you don’t want displayed

a. Hint: to comment out XML content you add <!– to start suppressing lines and end the suppression with –>.

b. For example: the entire highlighted section below has been commented out. Note the <!— on the first line and the –> on the last line.

3. Find the menu items from within the Sale, Service and Marketing areas that you want relocated to the Workplace menu and copy and paste those lines to that menu area. Keep in mind these features of the sitemap:

a. Each menu item is listed in the SiteMap as a SubArea node.

b. Subarea nodes may be one liners in the SiteMap or if they have a privilege check specified against them they will span more than one line. Be careful when you copy and paste to make sure you copy the entire node

c. When pasting into the Workplace pick carefully where you will place the menu item

· The Workplace menu (perhaps a little confusingly) has Sales, Service and Marketing sub-menus underneath it.

· Users’ can choose to have these display in their Workplace or not (via their personal options).

· If you want to this option away from your users you can do so by removing the IsProfile=”true” setting. Or, create your own menu groups and place your menu items in those groups.

Adding menu items for specific views

Here’s how to add a menu item in CRM to a specific view – e.g. a “Closed Opportunities” menu item that when clicked takes the user to the Opportunity view has the Closed Opportunities view displayed rather than the default view.

Here’s a screenshot where I’ve added a new menu item to a custom view of Hot Opportunities for my sales managers:

1. Determine the URL of the view you want a menu item for, by using CRM’s Copy Link feature. E.g. If you want the URL of the Closed Opportunities view:

a. Go to the Opportunities list view and select the Closed Opportunities view from the View dropdown

b. From the More Actions menu select: Copy Shortcut à Of Current View

c. Open Word or Notepad and from the Edit menu select Paste

d. This will give you something like this:

Closed Opportunities


Note: there are 3 ‘layers’ to this URL:

– The first section of the URL provides the address to your CRM system,

e.g.: http://gtapp3/CRMArchitects/_root/homepage.aspx?etc=3&viewid=%7b00000000-0000-0000-00AA-000010003006%7d

– If we just launched this URL then CRM would open and the default entity view would appear.

– We don’t actually need this part of the URL, the Sitemap will add this for us if it is not present and it is better to do this as the sitemap will then be able to deployed to other environments.

– The second part is the URL provides the address to a specific entity’s list view,

e.g.: http://gtapp3/CRMArchitects/_root/homepage.aspx?etc=3&viewid=%7b00000000-0000-0000-00AA-000010003006%7d

– If we launch this URL then CRM would open and the entity specified by the ‘etc’ parameter would be displayed. The default view of that entity would be displayed.

– The 3rd part is an optional parameter that will allow a specific view to be displayed (it refers to the unique GUID assigned to the view):

e.g.: http://gtapp3/CRMArchitects/_root/homepage.aspx?etc=3&viewid=%7b00000000-0000-0000-00AA-000010003006%7d

– This is what we wanted. Now we have a URL that once pinned behind a menu item in the SiteMap will allow our users to have one-click access to a specific view.

– Given we don’t need the first part of the URL, the URL that we want is:


But there’s a trick required here, because our URL has a & in it we have to do one little fiddle. Replace that & with &amp;

e.g.:  /_root/homepage.aspx?etc=3&amp;viewid=%7b00000000-0000-0000-00AA-000010003006%7d

Now you may have hit an issue back when you tried to copy the shortcut to the view.

– CRM does not always let you copy the shortcut of a view, sometimes you will be told “Shortcut for the selected view is not available”. I think you get this on the ‘My’ views – e.g. “My Opportunities”, “My Appointments”.

– I’m not sure if you can get around this by having a look in the database and determining the GUID of the view and then building the URL up from that.  That might be a solution.

– When I hit this limitation, I was able to get around it by making the view I wanted the default view for the entity. I then used a less specific URL, e.g. http://gtapp3/CRMArchitects/_root/homepage.aspx?etc=3 which would just takes the user to the entity’s list view, where my view shows by default. Of course you won’t always be able to solve this limitation this way.

Back to the sitemap…

2. Add a new SubArea node for your new menu item, e.g.:

<SubArea Id="nav_closedopps" Entity="opportunity" Title="Closed Opportunities" Url="/_root/homepage.aspx?etc=3&viewid=%7b00000000-0000-0000-00AA-000010003006%7d " />


– The SubArea ID is something you make up. It must be unique in your sitemap file.

– The Title is whatever you want displayed on the navigation menu.

– The URL is where you paste your URL (remember to drop off the prefix)

4. That’s it! Now, import your sitemap and then refresh your browser and you should see your new menu item.

Modifying the CRM Navigation Menu

The CRM navigation menu is customised via editing the SiteMap XML file that is stored in CRM. To access this file you export the SiteMap via: Settings – Customisation – Export Customisation


Once exported you can edit the SiteMap in Notepad, or an XML editor or better still in Visual Studio. But Notepad will do the trick.

There’s already plenty of useful instructions out there for editing the SiteMap so if this is all new to you then you should start there. I recommend: http://msdn.microsoft.com/en-us/library/dd393294.aspx

The end result can be a personalised, streamlined menu with instant access to key functionality and no clutter.   Here’s a few tweaks that might give you some ideas:

In my next few blogs I’ll show you how to achieve some of the above customisations.