As my partner Geoff wrote in this blog, we use dashboards very heavily internally, and since that article was written (early 2012), we have since extended our systems even further and expanded our set of core metrics and KPIs to be about 12-15 charts and graphs (depending on special events we may have, etc.). If you have used CRM 2011 Dashboards with CRM Online, you know that there is a maximum of 6 components that can be put on any given dashboard. If you are using CRM 2011 on-premise, stay with me, because adding more dashboards that require scrolling to display is not always the best (or most usable) solution. And…for those of you that have CRM 2011 and are not using the dashboards - what are you waiting for?!
The purpose of this post is to tell you about a fairly quick way to create rotating dashboards with SharePoint. Why SharePoint? 1) Because our teams live in CRM and SharePoint every day and 2) We didn't want add yet another web application to our list of solutions, just to host this. SharePoint was a perfect solution for our needs and solved the problem, while allowing us to stay within our core systems and leverage the platform.
First, we used CRM to build the core set of dashboards to show our metrics and KPIs. As mentioned above, we have about 12-15 components, so we spread this over 3 dashboards, which in theory would give us the ability to show 18 components (6 components per dashboard x 3 dashboards). Below are the 3 dashboards we have.
Next, we needed a way to be able to see all of these dashboards in a rotating fashion. As mentioned in the blog above, Geoff showed how we have our dashboards on the large LCD monitors in our lobby and back offices. Showing 1 dashboard was great, but we had a need to rotate between all 3 of these dashboards so we could consume all of the data that we needed to show. To do this, we created 3 pages in SharePoint as seen below. These pages used our standard master page and the page layout was a single web part zone where we added a single Page Viewer Web Part (PVWP) to the page. This is essentially an iFrame in SharePoint that allows you to show any URL inside of SharePoint. The URL we entered for the PVWP was the direct URL to the CRM dashboard. To keep this short, I won't go into details on that, but you can easily Google how to get this URL from CRM.
This is how one of our dashboards looked inside of SharePoint. As you'll notice, we removed all of the "chrome" from the pages - in other words the ribbon, navigation, etc.
Lastly, now that we had 3 pages that would each show one of our dashboards from CRM, we needed to rotate between these. The first thought was to simply add what's called a META REFRESH tag to the page. This has been around in the HTML world for a very long time, but because SharePoint uses the concept of master pages, you would either need to a) Create a custom master page just for these 3 pages, or b) Add the META REFRESH to our primary master page, which would then rotate or refresh every page in SharePoint. Definitely not what you would want. In our case, we chose not to create custom master pages, but instead opted for a small bit of JavaScript to rotate our pages. In essence, dashboard 1 redirects to dashboard 2 after 30 seconds, dashboard 2 redirects to dashboard 3 after 30 seconds, and dashboard 3 redirects back to dashboard 1 after 30 seconds. This creates an endless loop of our 3 dashboards.
Once implemented, the short video below is a rough idea of how this turned-out. It is a very nice and elegant solution to allow us to have