Thursday, October 27, 2011

2 Series Chart with CRM 2011

With the availablity of the CRM 2011 Update Rollup 5 there are some nifty changes to the product. The focus of this post is the capability of multi-series charting. To clarify, multi series charting was always available in crm2011. It required you to download the chart as an xml, make a few simple changes, and re-import it back in. But with the rollup update, we can do one step better - get it all done from the UI! I love it!

Let us create a 2 series chart, which will give us the Estimated revenue and Actual Revenue for each potential customer.

Monday, October 24, 2011

Quick Select records from Form - Display Field

The one thing that I noticed while playing around with CRM 2011 is the emphasis that has been paid to a smooth user experience. Specifically, you will notice that there are short cuts to open/ create records that will save you extra clicks. This post will focus on the quick select feature in a record, and the field that is displayed, and how that can be changed.

If you are in the Account record, you can get to other account records by selecting the Accounts drop down, at the top right hand corner, just below the ribbon. For Account, the display field is the Account Name. What if you want to see the Account Number instead of the Account Name?
























Before we get to making any changes, you will notice that the Account Name is the Primary Field for the Account entity. That is the reason for field Account Name to show up in the quick select drop down.

Thursday, October 13, 2011

User Experience

How important is a smooth user experience when it comes to enterprise software?

User adoption (and implicitly a great user experience) is key to a sucessful project. A CRM customer rollout could have all the features that the sales department could ever want, but it is doomed if the user keeps using the old system (excel, or an older crm system) for the daily tasks.

We are creatures of habit, and thus a complex system that is familiar is sometimes easier to navigate, than a new system that is simple.

So, get end users familiar with the new system (through good training, incremental rollouts, soliciting feedback) and provide them with a smooth user experience.

Here are a few methods to keep in mind when it comes to designing a solution:

1. Less clutter, less pain
When I am filling out a form for an online purchase, nothing annoys me more than multiple extraneous fields, all over the form. Along those lines, when looking at an existing entity form or a new entity form, spend some time figuring out what is necessary and what can be done without.
Another great way to streamline the form input is to create separate form views for different security roles. For example, a sales rep might not need all the fields in an opportunity form that a Sales manager would (Keep in mind that required fields are necessary in all forms you create).

2. Automate the process
The most common example is creating/updating records when status value changes. Workflows are an easy way to accomplish automation, resulting in lesser data entry for the user. If workflows do not do the trick, it would be worthwhile to research plugins (which require C# coding skills).

3. Intelligently fill values in a form
Lets say you have a customer lookup, and an address section with street, city, state, country etc. When an user selects an account/ contact, have the address from the lookup auto populate in the address section. This can be done using java script on the event onchange() of the lookup.
Even if the user has to override the values 20% of the time, 80% of the time manual data entry is eliminated!

4. Fill form using related entity Field Mapping
When you have a Many to 1 relationship created, leverage the mappings feature in Dynamics CRM to pre-populate fields in a form. For example, lets say we have a N:1 relation between Account and Contact. When creating a new Contact in the context of the Account, I could have all the address information carried over to the new Contact form.
A couple of things to make sure while creating the mapping:
i) The fields mapped must be of the same data type
ii) The target field length cannot be smaller than the source field (which can cause truncation of data)

5. Use custom charts and reports to understand data
Visual data representation is light years better than a list of rows.
One great feature of the custom chart is inline visualization. that means that if you have a bar chart of accounts based on industry, and you select one industry(bar) in the chart, the list view is automatically updated to reflect the selection. You can also drill down to details of that specific industry.
Reports provide visual and/or list representation of data. You can quickly export it to a pdf document, and save it for later.
OOB entities like case, account etc has good built in reports that you can leverage. For custom entities, consider creating custom reports

6. Enforce business logic on the fly
An example would be to make a field required base on previous data entry. In a deal, if your revenue field exceeds $1,000, a manager needs to approve the deal. Make the manager lookup a required field only if the revenue field exceeds $1,000. Your system must be nimble enough to enforce this requirement, with the least amount of work.

During the course of the blog, I will try to provide step by step examples for some of the points listed above.

Tuesday, October 4, 2011

CRM 2011 Online Reports with FetchXML

One of the great benifits of CRM 2011 is the ability to create custom reports in SSRS using FetchXML. You have much more control over formatting and grouping. Additionally, you can add custom logos to your report! Who woudn't want that! :)

Before you start, you need to have BIDS installed. BIDS is available as part of SQL Server Install, and is not available free.
Secondly, install Microsoft Dynamics CRM 2011 Report Authoring Extension.


Once you have the above completed, you are ready for building your custom report. The use case is to create a report for an entity that tracks orders that have been shipped in the last x months, and greater than X dollars. We want to group it by Account, and by revenue.

Here are the steps: