Enter your email address:

Delivered by FeedBurner

August 26, 2014

Add Microsoft Dynamics CRM Shortcuts in Outlook in Windows 8

This is one of those little issues related to CRM usability that is probably easier solved by a CRM newbie than someone who has been working with CRM for a while. In order to add CRM folders to Outlook Favorites in previous versions of Outlook and Windows, it was sometimes necessary to modify the registry. Details about that can be found here: http://blog.customereffective.com/blog/2011/03/adding-crm-2011-entities-to-favorites-in-the-outlook-client-.html This scared some people and the registry would sometimes reset so you would lose your shortcuts.

Unfortunately, that trick does not work with Windows 8; dragging and dropping non-Outlook items to Favorites is not allowed. So we had to come up with another method to put commonly used CRM items in a designated, easy-to-access folder. The following process is specifically related to Outlook 2013.

Continue reading "Add Microsoft Dynamics CRM Shortcuts in Outlook in Windows 8" »

August 22, 2014

Overcoming Challenges When Using CRM IFD and ADFS

We had an interesting occurrence with a client this week.  Like many security conscious clients, they have limited ability for their servers to access the internet.  In this client's case, they had a proxy that was required for access.

Fairly typical CRM setup with an IFD CRM, leveraging an ADFS internal server, with an ADFS proxy supplying the gatekeeping for the outside.  CRM was using a standard SSL certificate from a public provider.

Continue reading "Overcoming Challenges When Using CRM IFD and ADFS" »

August 20, 2014

Microsoft Dynamics CRM 2013 - How to Change the Tiles on the Menu

When Microsoft released CRM 2013 with its new look and feel, one of the biggest changes was how to navigate around the product.  The left navigation pane was replaced by the menu/tile user interface.  This menu, designed to take full advantage of touchscreens and tablets, takes a bit of getting used to when using a mouse.  I’m still amazed by the learning curve difference between clients using a table or Surface Pro versus those with a full laptop or desktop.  Touch screen users seem to find the menu navigation very intuitive and easy to advance to and from forms.  Mouse users, seem to be playing catch-up.

Although this blog is not about how or why the new menu UI exists, it is about how to change it.  Before I jump into that, I do want to add a quick tip to all those legacy mouse users:

Useful Tip: Use the wheel on your mouse to ease the navigation through the tiles that span more than a screen width.  Scrolling the wheel up and down has the effect of swiping the tiles left and right.

Let’s a take a look at a vanilla CRM 2013 menu:

Continue reading "Microsoft Dynamics CRM 2013 - How to Change the Tiles on the Menu" »

August 18, 2014

Lessons Learned Using Business Rules in CRM 2013

By now, you are probably familiar with Business Rules in CRM 2013. If not, check out this post for a nice introduction. Using Business Rules is a great way for CRM administrators to customize Form logic without having to know any JavaScript. They are extremely useful in many situations, but administrators should also know when to use a Business Rule and when to reach for another tool instead.

There are tons of conditions that I can evaluate using a Business Rule before performing certain actions. I can evaluate a field’s value (or multiple fields’ values) and I can evaluate calculated conditions like whether or Field A is greater than the sum of Field B and Field C. I could even multiply a field’s value by a static number as a part of a condition, like shown. Pretty nice feature.


Continue reading "Lessons Learned Using Business Rules in CRM 2013" »

August 15, 2014

Dynamics CRM Cross-Entity Business Process Flow

Microsoft Dynamics CRM 2013 introduced cross-entity business process flows. Up to five different entities can be combined in the same process flow.

Dynamics CRM includes an example cross-entity process flow called “Lead to Opportunity Sales Process”


In this process flow, the Qualify stage is on the Lead entity, while the develop, propose, and close stages are on the Opportunity entity.

Before a lead is qualified, the opportunity level stages are unavailable to be clicked.


After the lead is qualified, the next stages become available. When you click on the qualify stage, it toggles back to the lead form, when you click on “Develop,” it toggles to the Opportunity form.



So cross-entity process flows enable some really exciting user experiences:

  • They link multiple records together in one process, providing a smooth user experience, as if they were the same record.
  • They make moving between records in a process very easy (easier than popping up another window or drilling through).

Now that you are excited about cross-entity process flows, what about using them with custom entities or other system entities. What is the user experience?

Continue reading "Dynamics CRM Cross-Entity Business Process Flow" »

August 11, 2014

CRM 2013 Quickstart Excerpt: Dynamics CRM Quick View Forms

I recently had the opportunity to collaborate with some of my MVP friends on a new book called CRM 2013 Quickstart. This book is a follow up to the CRM Field Guide and is designed for someone who is familiar with earlier versions of Microsoft Dynamics CRM and wants to get familiar with the new features of CRM 2013. See the table of contents here.

You can buy the book at http://www.crm2013quickstart.com. Enter code JoelLindstromQuickStartBook for a discount at purchase.

The following is an excerpt from chapter 3—customizing CRM forms. this chapter covers the new form types and form layout, with best practices for configuring good looking forms.

Continue reading "CRM 2013 Quickstart Excerpt: Dynamics CRM Quick View Forms" »

July 25, 2014

Accessing Controls within Composite Control Flyouts Using Javascript

One great new feature in Dynamics CRM 2013 is that certain fields are displayed as a composite control with a flyout to edit the individual parts of the composite field. This blog post on the Microsoft Dynamics CRM Blog gives details on how they work.

Controls within the flyout require special consideration when dealing with them in javascript. For example, imagine a scenario where address fields on some contacts are integrated with another system and shouldn't be edited in CRM. Instead of being able to write


you need to find the controlid for the address 1 line 1 field inside of the flyout. The format for these controls appears to be "CONTROLNAME_compositionLinkControl_ATTRIBUTENAME" In this case, the composite control's id is "address1_composite" so the "address1_line1" control in the flyout's id is "address1_composite_compositionLinkControl_address1_line1" so you'd need to use


One easy way to access the flyout control without dealing with the cumbersome control id is to iterate through the controls of the attribute instead of going to the control directly using the id. This can also be handy when you have an attribute that is bound to several controls and you want to manipulate all of the controls for that attribute at once.

Xrm.Page.getAttribute('address1_line1').controls.forEach(function(c) {


July 23, 2014

Editing the size of the Social Pane Notes control on a form

The Notes control in CRM 2013 is now specialized to display Notes, Activities, and Posts in one control to preserve real estate on the form. I have encountered instances where customers would like to resize the Social Pane area that contains the Notes control (highlighted in yellow below). The size of the Social Pane section is dictated by the Notes control in that section which is usually already on the form.


Typically, you can set the Number of Rows the control consumes on the Formatting tab of the Properties dialog. In the screenshot below, you see that the area below “Layout” is blank and that is where you typically see the “Row Layout” section which allows you to set the number of rows value.


To solve this issue, one needs to remove the existing Notes control from the form and add the Notes control back to the form and that option will appear.

First select the Social Pane control and the border of it will turn blue (highlighted in yellow below). Note that the form may automatically scroll so you will only see the blue outlined box.


Now click the “Remove” button in the ribbon and the Notes control will be removed from the form.


Now make sure that same Social Pane section is selected (outlined in blue) and click the “Insert” tab in the ribbon. Both are highlighted below.


With the Social Pane section selected, double click the “Notes” control in the controls area of the Insert tab in the ribbon.


This will now add the Notes control to that section. We are close to being done but there is still some clean up to do as you will notice the label is on the left (see below). We also need to set the size of the control which is why we started on this journey!

Click the Home tab in the ribbon (see below).


With the new Notes control selected (outlined in blue), click the “Change Properties” button in the ribbon.


The properties dialog will appear as seen below. Uncheck the box next to “Display label on the form” to hide the label for the control. You can also set the default tab that gets displayed.


NOTE: If you wish to keep the label of the control displayed but move it above the control, that setting is determined by the section the control resides in. You would need to select the Social Pane section and choose properties and change the setting of where to display the labels of the controls.

Now click the “Formatting” tab and you will see that you can now change the number of rows the control consumes on the form.


Be sure to “Save” the form and “Publish” the form. Now you are all set.

Please be aware that while you can set the “Number of rows” value to to low single digits, such as 4 or 5, this will have an adverse effect on your users.  Using too few rows causes the buttons on the Notes and Activities forms to not be readily visible and you need to scroll to see them.  That can confuse your users.  If you are only showing Notes with this control, I have found that 8 is the lowest number you can use and still see the Attach and Done buttons for notes.  If you are using Activities as well, I have found that 13 is the lowest number where you can still see the OK and Cancel buttons.

July 22, 2014

Naming Records Using Real-Time Workflow in Dynamics CRM 2013

If you are a Microsoft Dynamics CRM user, there is a good chance you have come across a view that looks a lot like this:


There are records in the view, but no indication of what the data represents because the records are not named, and the only other column in the view is the Created On column. Dynamics CRM 2013 (and previous versions) use these two columns by default – and sometimes administrators neglect to update these views which can make them pretty meaningless to the average user.

Continue reading "Naming Records Using Real-Time Workflow in Dynamics CRM 2013" »

July 21, 2014

From a Cocktail Napkin to Global Recognition: Hitachi Solutions Honored at Microsoft’s Worldwide Partner Conference

The Hitachi Solutions team is very proud to announce that we have been recognized by Microsoft as the Global Dynamics Partner of the year in addition to our Global Dynamics CRM Partner of the Year Award we received in June. As a Global Systems Integrator, we are excited to also announce that Hitachi Solutions was also named the Dynamics Partner of the Year for Japan and we also received Microsoft IMPACT Awards for ERP and Business Intelligence in Canada.

Additionally we are in the Microsoft Dynamics Inner Circle which is comprised of the top 60 partners worldwide, and the Microsoft Dynamics President's Club in the United States (US), United Kingdom (UK), Canada and Japan.

Finally, we also received the US Professional Services Partner of the Year and the US Financial Services Partner of the Year Awards.

“As I walked up to the stage to receive these awards I was overcome by emotion and a vivid recollection of the 2003 Partner Awards Ceremony in New Orleans where I was captivated by Orlando Ayala’s passion for partners and customers as he announced the winners. In 2003, I was evaluating the business opportunity available and the products that would eventually become Dynamics AX and Dynamics CRM. I listened intently and wrote frantically capturing Orlando’s words on the back of a cocktail napkin. Orlando described each partner, their accomplishments, and their focus on successful customer adoption. I was ‘inspired’ and I wanted to be a part of creating a company that would embody the spirit that Orlando described that night. Soon after, Gary Peterson, Greg Carter and I created Iteration2 as an entrepreneurial venture with its vision written on that cocktail napkin. A year or so later, I saw Orlando and I showed him that napkin and told him how that night inspired the creation of Iteration2. That vision lives today in the hearts of each of the 1,300 people that share our cause at Hitachi Solutions. Whether someone has joined our team more recently as Hitachi Solutions or as part of an acquired company like Iteration2, Edenbrook, Hitachi Consulting, Ideaca, or most recently Customer Effective – we share a common passion for customers,” says Mike Gillis, Chief Operations Officer for Hitachi Solutions, “Oh, and by the way, I still have the napkin.”  

How to work around the Web Resource file type restriction in Microsoft CRM

Have you ever been developing a custom HTML/JavaScript/CSS page in CRM 2013 using Web Resources and come across the need to use a file type that doesn’t seem to be supported by CRM? Ever felt hampered and restricted to only use file types from the following list of explicit Web Resource content types when developing any type of custom HTML Web Resource page?

Web resource types

Well if so, fear not! We have unlocked the potential to do more with custom Web Resource development by utilizing the following work around when trying to upload and use files that do not seem to be supported by Web Resources in CRM.

Continue reading "How to work around the Web Resource file type restriction in Microsoft CRM" »

July 18, 2014

Sending Text Message Alerts from CRM 2013

I often find users are looking for ways to alleviate the email overload.  Sometimes important emails are missed due to a hectic day.  In some situations a remedy I like to incorporate is the ability to text message a user for events or status changes the user really cares about.  Leveraging Microsoft CRM and cell phone carriers' email feature, we can offer users the ability to receive critical alerts via text messaging in addition to normal email.


Continue reading "Sending Text Message Alerts from CRM 2013" »

July 07, 2014

New Shoes and Dynamics CRM Upgrades

So as I mentioned in my previous blog, there is so much going on and so many new features for Dynamics CRM that it can be hard to keep up. So I have put together a cheat sheet with descriptions of the majority of the new features and enhancements (some more technical or smaller ones were left out). But before we dive in, let’s talk about the upgrading process in general and why upgrading and the concerns involved is like buying the newer version of your favorite pair of shoes.

In the last year, I have invested in a new version of an old pair of favorite designer shoes that I absolutely love, but the process was not as easy or as simple as just “shopping”, much like the decision to upgrade to the new CRM isn’t as simple as just “deciding”.

Continue reading "New Shoes and Dynamics CRM Upgrades" »

July 03, 2014

Microsoft - SFDC Announcement: This Cloud Has a Silver Lining

It's been one month since the announcement of the Microsoft and Salesforce.com partnership agreement. It was understandably shocking to most of the Microsoft CRM community. Benioff was our foil, and now he was literally next to our new CEO, smiling and extolling the virtues of the Microsoft cloud. And because of the ExactTarget acquisition, Salesforce.com, like our company Hitachi Solutions, is now a global Microsoft partner (more on that below).  It was odd, some of the press releases seemed cryptic, but time has given some clarity and some silver lining is shining through.

  • Further validation the MS Cloud. Benioff and his minions can no longer question Microsoft's commitment to the cloud. Benioff spends a good portion of his public speaking time knocking his competitors. In the announcement, Benioff said (among other niceties) that Microsoft is "doing a lot of the right things" in relation to the cloud. He also admitted that they have been using Microsoft products successfully since SFDC's inception. With Benioff no longer knocking Microsoft, the channel will have one less layer of FUD.

Continue reading "Microsoft - SFDC Announcement: This Cloud Has a Silver Lining" »

July 01, 2014

Keeping up with the ever growing Dynamics CRM roadmap and more

Microsoft has been consistently offering new technologies and amazing upgrades to existing ones. Their product team has done an excellent job filling in the gaps and identifying areas to expand on current products to make them even more functional, and the CRM Spring 2014 upgrade is no exception. But with all the new products and or services they are bringing to the table and some names changes,  it’s easy to lose your place. In order to help keep it straight, in this blog I am going to share some info from my cheat sheet for Microsoft Dynamics products, and in a follow up blog I am going to share my cheat sheet specifically for CRM versions and new features.

Continue reading "Keeping up with the ever growing Dynamics CRM roadmap and more" »

June 27, 2014

Microsoft Dynamics CRM Business Process Flow Lessons Learned

I’ve had the pleasure of completing multiple upgrades to Microsoft Dynamics CRM 2013, and one of the most popular new features for our clients is Business Process Flow. BPF is a great way to see where you are in a process, and it gives users a helpful guide for what needs to happen to close a sale, resolve a case, or complete many other types of processes.

In the “process” of implementing BPF, I’ve seen many areas where process flows work great, but I’ve also seen some situations where certain configuration choices may not be optimal for Business Process Flow.

Benefits of business process flow

  • Provides visual indication of where we are in a process.
  • Gives users a guide to what should be done at each stage.
  • Works consistently across all interfaces, including tablet app.
  • Can provide actions that are required to complete before the process can be moved to next stage—good for things like approvals.
  • Can tie two or more entities in the same process together—for example, the Lead to Opportunity process flow connects a lead with its converted opportunity. Users can toggle between the lead and opportunity, making a previously disconnected process seamlessly connected. This is one of my favorite things about BPF.
  • Allows users to indicate what phase the record is “in” currently, while also looking ahead to see what needs to be done in future phases, or what was done in previous stages. This behavior may be confusing to some—they think “if I click the close stage, it should move to close stage.” However, I appreciate the design choice of having a definite action to move the phase ahead by hitting the next phase button, because it allows me to plan for what I need to do in the future without moving the current phase.

Continue reading "Microsoft Dynamics CRM Business Process Flow Lessons Learned" »

June 26, 2014

CRM 2013 – Outlook Synchronization by choice, not by ownership

Earlier this year, my colleague and Microsoft CRM MVP, Joel Lindstrom, blogged about A Better Way to Control User Synchronization Settings In Microsoft Dynamics CRM.  In his blog, he discussed how the use of the (free and fully supported) XrmToolBox for CRM can be used to help enhance the Outlook synchronization capabilities within CRM.  I’d like to build upon his blog with some experience I had with a recent project.

Several months ago, I was wrapping up a CRM 2013 project with a large private insurance company.  The project was focused on Sales and I was working closely with the Sales Director and Team Leaders.  One of the Team Leaders and a Senior Sales Rep. had worked there for a pretty long time.  Since part of this project included a pretty massive data migration, having their perspective and experience dating back to the last time they migrated from an old (non-Microsoft) CRM system to MS CRM 3.0 proved to be useful.  This time, they were moving to (the more enterprise-worthy and dramatically enhanced) Microsoft Dynamics CRM 2013.

Continue reading "CRM 2013 – Outlook Synchronization by choice, not by ownership" »

June 24, 2014

Querying Report Definitions

Have you ever been in the process of replacing or modifying a field and wondered what reports will be impacted? It is possible to run a query that lists out reports that contain certain text in their definition using the attribute BodyText which has the definitions for both Report Wizard Reports and SSRS RDL file reports.

For example, say that my entity new_asset has a field called new_value. We are planning on splitting out cei_value into two fields for different methods of measuring the value of the asset and want to review reports that may need to be updated.

Continue reading "Querying Report Definitions" »

June 16, 2014

Dynamics CRM Spring ‘14: Email to Case

To get ready for CRM Online Spring ‘14 update, we are highlighting some of the enhancements in the new update.

Considering that e-mail is one of the primary methods used by customers to report issues, it is a surprise that Dynamics CRM hasn’t had this feature already. In some ways it feels like it has. Back in CRM 4.0, there was a good codeplex solution called CRM queue manager that worked well, and there have been many third party tools that could convert emails to cases.

CRM 2011 and 2013 workflow came close, because you could have a workflow fire on create of an email and create a case, but without some kind of custom code, there was no easy way to match the sender to a customer.

Continue reading "Dynamics CRM Spring ‘14: Email to Case" »

June 11, 2014

Retrieving a Record's GUID in Microsoft Dynamics CRM 2013

In past versions of CRM, retrieving a record's ID (GUID) was possible through a number of methods.  In CRM 2013 these methods are somewhat limited and a work-around is necessary in order to easily obtain the GUID.  I found that I primarily wanted to quickly copy the GUID of the record I was viewing.  Based on my preference I researched a method which would allow me to easily find the GUID and also copy the value to the clipboard.

My solution involved creating a javascript bookmarklet.  If you aren't familiar with javascript bookmarklets they are essentially bookmarks which contain jscript which will execute on the page you are viewing.  A javascript bookmarklet can be created in IE, Chrome, or another browser of your choice.

  1. Create a new bookmark.  I like to add the bookmark to my Favorites Bar in IE so that it is accessible.
    Add bookmark
  2. Find the newly created bookmark then right click and select Properties.  On the General Tab rename the bookmark and call it "Retrieve GUID".
  3. Navigate to the Web Document Tab and delete the existing data in the URL field.
  4. Paste the following into the URL portion of the new bookmark:
    javascript:var guid=frames[1].Xrm.Page.data.entity.getId();var str1=guid.replace(/{/g,""); var copy=str1.replace(/}/g,"");(function(){window.prompt("Copy to clipboard: Ctrl+C, Enter", copy);})();

    Bookmark url properties
  5. Save your bookmark.

To test your new javascript bookmarklet, navigate to a single record in CRM and simply click your newly created Retrieve GUID bookmark.  The following window will display when the bookmark is clicked while viewing a record in CRM:

Copy guid


June 09, 2014

Using SSRS To Show Dynamics CRM Business Unit Hierarchy Part 2

I recently wrote a blog on how to use SSRS to show the hierarchy of reports and their sub-reports .    I strongly recommend reading that blog first as that will show the mechanics of this exercise in more detail (I hope!).  I actually used that same SSRS report as a template for this business unit report.  I merely changed the FetchXML, updated the fields in the table, and updated the grouping in that report.  It will probably take me longer to write this blog post than it did to make those changes.  And I did add one feature which I think is important to show in a report on business units, the count of underlying business units at each level.


Why Would One Need This?

If you use business units, are thinking about changing your business units or just need to audit periodically how your business units are stacked up then this is important.  And much like with reports, you can’t see this represented in the front end.  This blog isn’t about how business units are used, but they are an integral part of CRM security.

Again, Cart First

Just like last time, we’ll show the finished product. Fans of my last blog (please stop with the letters) will note the same delightful color scheme, indentation, and collapsibility of the hierarchy.  I’ve also highlighted a new column I added which as you will see is counting the number of underlying business units at each level.  Go ahead and count for yourself.  Note also that the business units at the bottom of the totem pole have zero underlying business units.  Finally, I added a  hyperlink to the business unit record in this report, which doesn’t make sense on my last example.   I’ll be explaining how the count feature works in this blog, but not the hyperlink feature.  Searching the Customer Effective/Hitachi blog will no doubt find an example of this, possibly even written by myself. More likely though, it was written by my esteemed colleague, Microsoft CRM MVP, and great dancer Joel Lindstrom.  It’s best that you don’t ask.



Quickly Getting Back To The Subject…

I mentioned that it’s going to take longer to write this blog then to make the changes to the report.  The first report took a bit, but this one was much faster as I could make a connection in terms of how to set up the grouping, the details, and the recursive parent.  I merely swapped out businessunitid for reportid, and parentbusinessunitid for parentreportid.  The two entities have one thing in common: the parent record is contained as an attribute of each entity (parentbusinessunitid, parentreportid).  That is key in order for this to work.  For good measure I added in a third column, if only to experiment, but that didn’t take all that much effort.

The Recursive Count

In order to make this work I added another column and used the Count expression as follows:


This is jibberish which essentially means: “Computer, count all the occurrences of the businessunitid within the Details group and within this level of the hierarchy.  And then subtract one, so you don’t include the top level of whatever point in the hierarchy.”  I derive two points from this:  (1) It is fun to say this in the voice of Scotty from Star Trek, a la the scene from the Star Trek movie with the whales in it.  Ahh, the eighties. (2) It took the computer a lot less characters to get the point across than it did for me.

The Takeaways Here…

First, this whole exercise was made tremendously easier by countless people I’ll never know who contributed on the web.  Consider this a thanks and an homage to you.  Second, this gets easier each time and the principles of one hierarchical dataset can translate pretty easily to another.  Third, a lot of peculiar things came out of Hollywood in the eighties. Fourth, while I used the Count function in this case, other aggregate functions come in handy and bring to mind other applications, such as a report showing the total potential sales by opportunity by the accounts in a hierarchy. Finally, recursion, while scary as a theory and practice, seems pretty digestible with SSRS.  Now in the grand scheme of things these are simple datasets, but the reporting mechanism made it simple to get out as well.  I wanted to challenge myself to just use FetchXML for portability purposes, and unlike SQL one can’t build hierarchies natively in that language.  Enter SSRS to save the day.

I hope you’ve enjoyed reading this and that you find it helpful.  If you need help with your own Microsoft Dynamics CRM environment, please drop us a line at info@customereffective.com.

June 05, 2014

Hitachi Solutions recognized as winner for 2014 Microsoft CRM Partner of the Year Award

Hitachi Solutions is thrilled to announce that we have been named the 2014 Microsoft CRM Partner of the Year Award. We were honored among a global field of top Microsoft partners for demonstrating excellence in innovation and implementation of customer solutions based on Microsoft technology.

"With the maturity of Microsoft Dynamics CRM and its partner ecosystem, the competition was much more difficult today than it was in 2011 when we last won CRM Partner of the Year Award. Although the competition is much stronger this year, so are we," said Mike Gillis, President and Global Chief Operating Officer, Hitachi Solutions America.

The CRM Partner of the Year Award recognizes a partner that has excelled in providing innovative sales, services, solutions, and/or support based on Microsoft Dynamics CRM. The winner of this award demonstrates business leadership and success with strong growth in new customer additions and revenue while maintaining and growing their existing customer base.

"This year’s award winners were among some of the best and brightest our partner ecosystem has to offer, so it came as no surprise that Hitachi Solutions was included in that group as this year’s winner of the 2014 Microsoft CRM Partner of the Year Award," said Phil Sorgen, Corporate Vice President, Worldwide Partner Group, Microsoft Corp. "We congratulate Hitachi Solutions on this amazing achievement and its continued dedication to providing innovative solutions that drive results for our mutual customers."

Click here to Read the Full Press Release

Dynamics CRM Online Spring '14: What's New With Queue

To get ready for CRM Online Spring ‘14 update, we are highlighting some of the enhancements in the new update.

The Queue feature in Microsoft Dynamics CRM is similar to an inbox on your desk. When a record, such as a case, is created, it can go into a queue. One or more people can monitor the queue, see what is being worked on, and grab an available item and work on it.

Queues are frequently used for for customer service and support scenarios, where multiple people are monitoring a shared inbox of support items.

But queues are also useful for any type of process where a record can be worked on by multiple people.

Continue reading "Dynamics CRM Online Spring '14: What's New With Queue" »

June 04, 2014

All In The Family: Using SSRS To Show The Report Hierarchy

A long, long time ago in a blog far away, I discussed how to report on reports using the FilteredReports entity.  Today’s blog takes that further in order to show how to use SSRS to show the relationships amongst parent reports and sub-reports using, gulp, recursion.  The intended audience for this blog is as follows:

1. They understand the television reference in the title.  If not, please put down your Surface and go turn on the TV. 

2. They have experience with report writing and maintenance.

3. They saw the word recursion but still pressed on.

Why Is This Useful?

The story behind the story here is that I walked into a situation where I needed to know what reports related to what.  There were a lot of custom reports, and these custom reports had parents and children and grand-children.  It was a very fruitful set of reports, and they were left unattended.  And as the saying goes from report developer to business person: “Reports beget reports”. But I digress.

In addition to knowing these relationships to solve a particular problem, the other reason why this is useful is because it is an easy way to document reports.  For turning over the keys to the reports which you might create but others will maintain, it is a first step in understanding the report package.  It answers questions like “ what report does this jump to? “.

Cart Then Horse

Since a picture is worth a thousand words, this is the finished product:



What I’m showing here primarily by indentation and pretty colors (thank you for that compliment, khaki isn’t just for pants), are the family of reports starting with the top level.  I’ve highlighted using the Campaign Performance report which goes 4 levels deep.  If this were a custom report with drilldown after drilldown and I needed to understand what reports are needed to build a project in Visual Studio, this is invaluable.  The standard view of reports in CRM will show you Name and Parent Report, but not the hierarchy.  Nor will it show you the filename field.  So by necessity I had to use a report to bring this all together.  From a documentation perspective this shows everything that a report developer might need to update reports, and understand the relationships.  And as these reports are updated, this report can be re-run to keep system documentation current.

There’s a best practice here which applies to fields, entities, and reports which everyone should follow: put a description on any of these.  This description should tell the purpose of the any of those so that people can answer the question, “So why is that in here?”   Plus documenting field and entity descriptions helps in exercises such as documenting your data dictionary.    I speak from experience where in using CRM in a large multi-national conglomerate going through this, CRM looked like a rock star over the myriad of custom applications because so much of this was part of the metadata.  And also because it was so much easier to extract as well.

And Now for the Horse

So  how did this all come together?  I started by binging “SSRS recursion” as I do whenever I need to write a report of this nature, which isn’t all that frequently.  This is not a new problem for one, in this case the application was new to me.  This solution is typically applied to the problem of displaying manager-employee relationships, but it is very relevant here.

The dataset was simple.  There are no joins or even common table expressions.  This was all a combination of FetchXML to get the data, and the built-in features of SSRS.  (Note that FetchXML is merely a detail.  This same solution could have just as easily been done with SQL, but I wrote it using FetchXML so that it would work in either online or on-premise Microsoft CRM environments.  In SQL-speak I did the equivalent of SELECT field a, field b FROM FilteredReports).  In SSRS, I used a simple table with one grouping level.  Here’s a screenshot from Visual Studio 2008 as to where the magic happens:




And that’s it.  SSRS does the heavy lifting, which I don’t always recommend by any means, but it was sufficient given the simplicity of the dataset.  The hierarchical relationship between all the records is established within the group.  Now it’s a matter of properly displaying the data.

Magic Part Deux

The three pieces behind displaying the data are dynamically changing the colors, adjusting the indent based on the level in the hierarchy, and toggling the display (the nifty plus sign you see).

  • To dynamically change the colors, I used the SWITCH function from my Microsoft Access days on the Background Color property:  =Switch(Level()=0,"White",Level()=1,"LightGrey",Level()=2,"Khaki",Level()=3,"Pink",True,"LightSteelBlue"). 
  • The indentation was effected by adding a formula to the Padding (Left) property: =20 * Level() & “pt”
  • To collapse the hierarchy, I merely toggled Visibility of the group based on the name field.  I prefer to have only the top level show initially.


A Final Note

I’ll be posting the RDL file of this report separately.  If you plan to use it, test first.  This worked for my specific situation but I don’t pretend to think it is a silver bullet or that its stress tested.  This same principle could be applied to business units as well, which can become very nested in their own right.  Look for a future blog on that front after I take this for a spin.

If you have other reporting questions or are in need CRM assistance please don’t hesitate to drop us a line at info@customereffective.com.

June 03, 2014

Dynamics CRM Online Spring '14: Top 5 Features You Might Not Know About

To get ready for CRM Online Spring ‘14 update, we are highlighting some of the enhancements in the new update.

1. More links in the Command Bar

Dynamics CRM 2013 is designed to simplify the user experience. The busy ribbon of CRM 2011 was replaced with the simplified Command Bar in CRM 2013. in the RTM release, the Cammand Bar limited visible links to the first five, additional links were hidden under the “more options” (…) button.

Many users found this limitation to be too limiting, so Spring ’14 increases the number of visible buttons to 7 (a 40% increase).



2. Cases are mobile

In CRM 2013 RTM, you could access cases on the tablet app, but they were read only. In Spring ’14, Cases can now be created and edited in the tablet app. Just in time for those nifty new Case features.



3. Choose your version when you export solutions

Now that CRM 2013 is at the first Service Pack, you may find that you need to create a solution to be imported into an organization that is still on the RTM release. For example, if you set up a CRM Online organization now, you will get a Spring ’14 organization, but if you also have an on premise RTM organization, you need to be able to move customizations between the organizations.

When you export a solution from CRM 2013 Spring ’14, you will have the option to export as a 6.0 (RTM) or 6.1 (SP1/Spring ’14) solution. If you choose 6.0, the solution will remove any SP1 features and fields from the solution, leaving you with a solution that can be cleanly imported into your RTM organization.



4. Embed reports (again)

Shortly after the release of CRM 2013, Microsoft updated the CRM ReportViewer control for Internet Explorer. While this fixed some issues, one byproduct was that reports embedded in an iFrame no longer rendered correctly. With the Spring ’14 update, reports once again work in iframes.


5. Duplicate Detection: It’s back

SP1 brings back form-level duplicate detection notifications on create and update of records. Duplicate detection rules and duplicate detection job functionality was included in CRM 2013, but the form duplicate detection pop-up was not included in CRM 2013 RTM. By popular demand, it is back. If you have published duplicate detection rules in your environment, you should once again begin to see duplicate detection notifications when an insert or update triggers a duplicate detection rule.



Microsoft is listening

Microsoft Dynamics CRM 2013 was a bold move for Microsoft, making many major changes to reimagine the CRM interface. This update builds on that foundation and shows that while Microsoft is moving forward very quickly, they are still listening to users and giving them what they want.

June 02, 2014

2014 Hitachi Customer Conference Dates Set for Sepember 2014

We are excited to announce that our Customer Conference will continue for the 7th straight year in 2014. The combination of the former Customer Effective and Ideaca teams with the Hitachi Solutions team is sure to make this year's event the best yet.

Industry Roundtables, Customer Awards and Keynotes and new features in Microsoft Dynamics CRM 2013 will be some of the highlights of the Agenda. As well as sessions from our top sponsors, including Silverpop, and IBM Company.

Visit www.hitachicustomerconference.com to learn more about this year's event.


May 30, 2014

Dynamics CRM Online Spring ‘14: Server-Based Sharepoint Integration

To get ready for CRM Online Spring ‘14 update, we are highlighting some of the enhancements in the new update.

SharePoint document integration was introduced in CRM 2011, allowing users to manage documents in a Sharepoint Document library associated with an account, opportunity, or virtually any other entity.

Traditionally the SharePoint integration was client-side, meaning that when a user clicked the documents link on an account, the related document library was displayed in an iframe via a special grid control.

This worked well, but a recent change in SharePoint Online made this approach work less than optimally for CRM Online customers. For the grid control to display, the user had to be logged in to SharePoint first. Not a problem if your SharePoint is on premises, but if you have SharePoint as part of Office 365, you had to first go log in to SharePoint. While this worked in the web client, it basically meant that users of the Outlook Client were unable to use the document integration.

The new server side SharePoint integration answers this challenge for CRM Online users. Since the integration now happens at the server level, it resolves the single sign on issues with the client-side integration.


It also simplifies the deployment of SharePoint integration, as no grid control installation is required. Simply enable the server side document integration and set up the document integration.


Differences between client-side and server-based integration

Server-based integration displays SharePoint documents in a standard CRM grid. The most common commands like Check Out are available right from the command bar.


The client-side integration grid includes links for Alert Me, Download a Copy, Copy Shortcut, Send Shortcut, View Properties, and Version History actions. Since the server side integration does not use the grid control, these options are not available from the document grid in CRM; however, the server integration grid includes a link to Open SharePoint, which will open the library in SharePoint in a new window. From there, all these commands will be available.

Since the server-based Sharepoint uses a native CRM grid, you also gain some functionality to create and save customizable views of the documents list, something not available from the client side integration grid.

Upgrading to server side SharePoint integration

Once your organization has been upgraded, you should see a link to enable server side SharePoint integration


This will take you to the document integration screen, where you can click the link to enable server-side SharePoint integration





The wizard will then validate your SharePoint sites.


Once complete, you will continue to enable entities for document integration in the same manner as you did for the client side integration.

May 29, 2014

Getting Ready for Microsoft Dynamics CRM Online Spring '14

CRM Online Spring ‘14 (also known as Service Pack 1 for On Premises) is here, or will be here soon. Some Online environments are already upgraded, others will be soon.

How do I know if I have the update?

Spring ‘14 is a soft rollout for CRM Online. This means that, unlike the major updates like the Fall ‘13 update, this update will be installed automatically. There is no need to schedule the update.

Log in to CRM in a web browser. Click on the options gear in the upper right hand corner, then select “about.”


If you see this, your organization has not been updated.


If you see this, your organization has been updated.


Notice there are two numbers in parenthesis under “Microsoft Dynamics.” The first set of numbers indicates the version of the application, the second indicates the version of the database. You may see a brief time when these don’t match—this means that the server where the org is installed is updated, but your organization database has not been updated.

Dynamics CRM trivia: The first digit indicates the application version, the second digit indicates the service pack level, and the third digit indicates the update rollup. So the first image is from an organization on RTM 2013 update rollup 2, the second image is from 2013 SP1.

Update rollups will continue for both RTM and SP1, but they will be different update rollups. The next update rollup for CRM 2013 RTM will be UR3, the next update rollup for 2013 SP1 will be UR1.


Installing new features

Once your environment has been updated, you will receive the bug fixes automatically, but the new functionality (such as the updates to case management, SLA, new service area) is not enabled until you elect to install the new features.


To install the updates after your organization has been updated, go to Settings—>Administration—>System Settings and you should see a link to install product updates.

This will give you the new settings area for service management, the new SLA, entitlement, and case features.

Note, you don’t need to install product updates to get the other benefits of SP1. Things like bug fixes are enabled automatically, and new functionality enhancements to SharePoint and server synchronization are enabled without installing the updates.

Things to do before you are updated

Before your organization is updated, I recommend that you do the following:

  • Back up your sitemap. The update makes changes to the application menus. Some users have reported that some links were missing from their sitemaps after the update. Backing up a solution with your sitemap now will make it easy to restore should the update make any unwanted modifications.
  • Back up your case customization. Create a solution with the case entity and export. The case form is not updated before you install the product updates, but when you do, it will insert some new fields and sections in to the form. You will want to test the new form prior to deploying in your production environment.

An exciting time

Spring ‘14 is a fantastic update to an already great platform. it really makes Dynamics CRM best in class for case management. Get ready, it’s here.

May 28, 2014

CRM Report Scheduler

Reports are a huge part of the business cycle. One of the most valuable tools that CRM provides is the ability to report on data points that matter to users on various levels, as well as cut down the time it takes to assemble those reports. But what is the point of spending time and effort in building a report if your desired audience never takes the time to go into CRM and view it? Let’s face it, training and documentation can only do so much in order to influence user adoption and change user behavior. Some users need things handed to them on a plate for them to take the time to consume it.

The report scheduler can help to fix this ‘consumption’ problem. The idea behind this example is simple:

  • There is a report that is assembled every month and reviewed by the same people.
  • Rather than have those people come into CRM and run the report every month, why not have the report sent to them automatically?


The first thing which must be done is to define when you want the report to run and pull the data which you want to send. CRM then creates what is called a ‘report snapshot’, which is a view of the data as it exists at a certain point in time. To do that:

  • Within CRM, select the report which you want to schedule, and then click on ‘Schedule Report’ in the ribbon. In this case, we are going to schedule a report which we prebuilt using the report wizard that shows all opportunities that were lost last month.


  • Select ‘On a schedule’, and then click Next
  • Here is where we select the schedule of the snapshot. Since this is a monthly report, we will want a snapshot of the data as it exists at the end of each month. Since each month can potentially end on a different ‘number’ day (February 28th vs. July 31st), we will set the snapshot to be created on the 1st. Then click Next.


  • The start date defaults to today’s date, which we will leave alone. If you wish to have the report stop running at a certain date, choose that in the End on: field. If not, leave it at the default of ‘No End Date’ (which is what I typically do, as you can simply delete the snapshot if you want it to quit running). Once you have made your choices, click Next.
  • Here you can fill out any parameters of your report (if you have them). Out of the box (OOTB) report parameters can be defined here similar to advanced find selections. More complex reports loose the ability to have dynamic parameters defined here. More on that in lessons learned. Once you have defined any parameters of your report, click Next.
  • Here you can review your selections before finally creating your snapshot. If everything looks good, go ahead and click ‘Create’.



Once you have defined the data that will be sent out and set up the snapshot, we will define when we will send it out as well as who we will send it to.

  • Navigate to the report manager (http://reportservername/reports)
    • TIP: If you are unsure of your report server name, you can get this information from the Deployment Manager which is located on the application server. Double click on your organization, and the SQL Server Reporting Services URL is listed here. It will end in ‘reportserver’. Simply edit the URL to end in ‘reports’.
  • First, in the upper right hand corner of the window, click on ‘Details View’. Then click on the folder for your CRM organization, then on the folder for ‘CustomReports’.
  • Locate the snapshot created in step 1 above. One easy way to locate this is to sort by modified date. Once you have located it, hover over the ‘name’ of the report, click on the dropdown menu and select ‘Manage’


  • First, rename the report. By default the system sets the GUID of the report as the ‘name’. We want to clean this up and put a clean name here, as this name will be passed into the email subscription. Then click Apply.


  • Navigate to ‘Subscriptions’ on the left of the window, and click ‘New Subscription’
  • Here, define who we want to send the email to, as well as when we want it to be sent out. Input your email addresses, separated by semicolons.
    • TIP: if you are emailing the report out to anyone who is not a user in CRM, be sure to uncheck the ‘Include Link’ box, as this will cause errors.


  • For scheduling the email, there are the following options:
    • When the report content is refreshed
      • The idea behind this option is, as soon as the report snapshot is run (which is defined in step 1, and for our example was the 1st of the month at 12:30 am), the email will automatically be sent out. Since we may not want to send emails out in the middle of the night, this is not the option I’d like to go with for this specific example.
    • A defined schedule time
      • For this option, we would click ‘Select Schedule’ and define when exactly we would wish to send this out. For this report, I’d like to send it out on the 1st of the month at 9 AM


  • Once we have input the WHO and set up the WHEN, we can then click OK, and you are finished!


  • For more complicated reports that need to be built using SSRS instead of the OOTB report wizard in CRM, if you are going to use date parameters for your dataset, be sure to code those parameters within the SQL instead of setting up actual parameters that need to be defined. The scheduler isn’t ‘smart enough’ to choose dynamic values for SSRS based parameters, so they are best defined in the code itself.
  • When sending report subscriptions to more than just a handful of users, or when sending to a list of users which may need to be edited from time to time, it may be best to set up a distribution list. This way you can maintain the list from there, rather than having to edit your subscription settings each time you need to add/remove someone from the mailing.

Twitter Updates

    follow me on Twitter