Thursday, February 23, 2012

Display Full-Screen Dashboards with Auto-Refresh in CRM 2011

CRM dashboards are great visualizations of what’s going on in the business. Sometimes we would just want to have a huge plasma screen displaying specific dashboards and refreshing the data automatically and regularly. This post will show you how simple that is!

When you want to permanently display a dashboard in a screen, these are the usual requirements:
  • Strip down the dashboard to exclude ribbon, navigation menu, etc.
  • Automatically refresh the page every X minutes
The solution is to create an HTML web resource which will embed the stripped-down dashboard in a new HTML page with refreshes automatically. These are the steps to do so:


1. Identify the dashboard you want to display on a screen
Click on the arrow to the right of “Dashboards” on the sitemap, then right click on the dashboard you select and click “Copy a Link” (and allow access to clipboard)

image

When you paste the link, it will look something like this: Customer Service Performance Dashboard <https://avanade45.crm.dynamics.com/workplace/home_dashboards.aspx?dashboardId=%7b2e3d0841-fa6d-df11-986c-00155d2e3002%7d&dashboardType=1030&sitemappath=Workplace%7cMyWork%7cnav_dashboards>
You need to copy the URL (in blue for the example above).



2. Create your HTML Web Resource to host the dashboard
Create a new web resource in your solution as follows
image



3. Edit the HTML to embed your dashboard and auto-refresh
Click on the “Text Editor” button and then click on the “Source” tab to enter your HTML code. This is the HTML I used:

<HTML>
  <HEAD>
    <TITLE>Customer Service Performance Dashboard</TITLE>
    <META content="300" http-equiv="REFRESH">
      <META charset="utf-8">
  </HEAD>
  <FRAMESET contentEditable="true" frameSpacing="0" border="0" frameBorder="0" rows=""*>
    <FRAME noResize="" src="/workplace/home_dashboards.aspx?dashboardId=%7b2e3d0841-fa6d-df11-986c-00155d2e3002%7d&dashboardType=1030&sitemappath=Workplace%7cMyWork%7cnav_dashboards" name="top" scrolling="no">
  </FRAMESET>
</HTML>


The highlighted values are the refresh rate (in seconds) and the relative URL to your dashboard (taken from step 1). Note that the relative URL above works for CRM Online, but for OnPremise you might need to modify the path slightly.
The HTML above is basically an embedded frame to your dashboard with a META tag to refresh the content every 300 seconds (5 minutes). It should work on most (or all) browser versions supported by MSCRM.



4. Navigate to your dashboard and make it full-screen.
There is a URL link from the web resource which you can click to navigate to your dashboard:

image

Now to make it full screen you need to hit F11 in your keyboard, and voila! This is all you will see on the screen:

image

Note that there is a dropdown control to update the dashboard; however, if you update the dashboard here, each time your window refreshes it will revert back to the original dashboard. So you might need to follow these steps for each dashboard that you want to display on a screen and never change the dashboard from the dropdown menu. Now you can also bookmark these URLs so you can directly access your dashboard screen anytime. Note that the same authentication as to access CRM will be required to access these HTML pages.

13 comments:

  1. Sweet... Just what I was looking for! :)

    ReplyDelete
  2. I agree to your word,It is really simple and very interesting to use.

    ReplyDelete
  3. Now that the dashboard is on the plasma screen, not long before we know it, the screen now shows "You are logged out".
    How do we prevent that?

    The intended display is setup on our LAN, browsing to CRM using internal address. Can the timeout be avoided?

    ReplyDelete
  4. What kind of authentication do you have, is it CRM Online or ADFS?
    With single sing-on, that should not be an issue.

    ReplyDelete
  5. One could actually expect the auto-refresh to be a standard functionality of the dashboards. But thanks to Gonzalo here's a pretty cool supported solution of the problem.

    Still I am facing a small problem: when loading the dashboard as a web resource the ribbons and buttons (i.e. "Route", "Work On" etc. for queue items) are not working. Any ideas for that?

    ReplyDelete
  6. Very nice! Thank you!
    Question: the dashboard I set up in this fashion does not allow actually opening the records from the dashboard grid. Is that a limitation of this approach or am I missing a setting?

    ReplyDelete
  7. Hi Gonz,
    Good post. but do this work in crm 2011 on permise (ur13)
    i used the same steps you mentioned above but it seems the dashboard is not refreshing..

    any help would greatly be appreciated.

    gary

    ReplyDelete
  8. Helo Gonzalo,
    This flow didnt work in crm 2011
    Do you have any Suggestions ?

    Benny

    ReplyDelete
  9. Love the solution! thanks!

    ReplyDelete
  10. cool!
    but really need it in crm 2011!!!

    ReplyDelete
  11. This is great! Do you know of a way it could rotate through multiple dashboards at set intervals?

    ReplyDelete
  12. Hello Gonzalo, When I view a dashboard I can go to the ribbon, click on Chart, select Right, and a chart appears. However, each time I open the dashboard I must repeat the process. What I need is to link a chart to a list in a dashboard so as I apply filters to the list and the chart updates automatically after refresh. I am using crm 2011.

    ReplyDelete