“Mind the gap” to make your CRM charts look better

Supercar

In the supercar and racing industries, the key question for all major design decisions is “does it make the car go faster?” This can be interpreted fairly loosely, for example better brakes or gripper tyres make it possible to drive the car faster without compromising safety. And beyond that, there is still room for creativity and the aesthetics of beautiful design, but in the end, the question still reveals a single-minded focus that we can learn from in other disciplines too.

When designing charts, I aim for functionality first and foremost. I want the end result help people to understand their data better, see patterns and trends, identify outliers and gain insights that support better decisions. But as with the design of a desirable sports car, we can still spend some time on making data visualisations pleasing to look at, and make the best use of the space we have available on a range of devices from small tablets to widescreen monitors.

Charts shrink and stretch depending on the space available

When you view a dashboard, charts are always the same height, regardless of the size of the window, whereas the width will reduce proportionally as the window width decreases. Using CRM 2013 or 2015, dashboards use a responsive design, so the layout will change and components will be pushed down so they don’t just become ridiculously narrow. The only time the height of a chart will be reduced significantly is when you use a view combined with the chart pane above it, with CRM in a window that is already not very high.

For the purposes of this article, I am going to focus on column charts, because they will more often be displayed at a variable width. This means that your design should take account of what they will look like in very narrow windows, but also how they might appear when stretched very wide or viewed on their own. Everything discussed applies in exactly the same way to row charts, but is less likely to be an issue in reality.

Manage column widths versus white space

There are two key properties for a series in a column chart that manage the column widths and white space: PointWidth and MaxPixelPointWidth. These are both contained within the CustomProperties, which is a comma-separated set of properties, as seen in this XML snippet from a simple chart built in CRM and exported:

<Series ChartType="Column" CustomProperties="PointWidth=0.75, MaxPixelPointWidth=40"...>

These same properties can be used with Column, StackedColumn, StackedColumn100, and the equivalent row chart types.

PointWidth

if you have ever played around with changing these properties, you may have found that they don’t always seem to do very much, so let’s figure out what they are each supposed to do and how they relate to one another.

Let’s take a look at PointWidth first. This is a decimal value from 0 to 1, and simply represents how much of the chart is taken up by the columns, relative to the white space. A setting of 0.75 means that the columns should take up 75% of the space, So when your charts are relatively narrow, the columns and gaps are both resized so that if you measure from the left side of one category column to the left side of the next category, the columns take up 75% of that width.To put it another way, taking the inverse of the PointWidth, the gaps will take up 25% of the available space. Whether you have a single column, or multiple clustered columns in each category, the gaps will be 25% of the chart width, and the columns together will take up 75%.

The example below shows two charts of the same two series of data, one using stacked columns, one using normal (clustered) columns. In both cases the PointWidth is set to 0.5 for both series. You can see the gaps are 50% of the available space in both charts, so the PointWidth is the value for all series together, not each one.

Two charts with PointWidth 0.5 cropped

Personally, I prefer to make the columns a bit wider than the OOB setting; I find around 0.85 works well for single or stacked columns, and 0.8 for multi-column charts. You should be wary of using a value of 1 for PointWidth

If there is more space available, charts expand to use it, so in reality if your chart has plenty of room, the columns will be spread out and the gaps between them will be considerably more than the 25% you might expect. So you should take the PointWidth, figure out the inverse of it, and think of this as a the minimum space for the gaps, remembering that it can be larger.

Comparing PointWidth to Excel’s Gap Width

Excel handles the relative widths of columns and gaps quite differently. For a series in an Excel chart you can specify the gap width from 0 to 500%. This is a measure of the width of the gaps relative to the width of a column. By default this is set to 150%. If you plot only a single column or stacked column, this is definitely excessive in my view. However, if you have two or more “clustered” columns, higher values for this setting start to make a bit more sense because it measures the size of the gap relative to one of the columns, not the group. So for a single column a setting of 20-30% could be fine, but if you have four clustered series for example then 70-100% might be more suitable, as this is equivalent to 15-20% gaps overall.

In the example below, a gap width of 100% means that the gap is the same width as one of the clustered columns.

Excel gap width 100 percent highlighted

Also notice that Excel always scales both the columns and the gaps to retain the selected proportions all the time, regardless of the size of the chart. So in Excel the gap width is always used, rather than being a minimum as it is in CRM.

MaxPixelPointWidth

This setting is in contrast to PointWidth, and is used to manage the opposite problem – when a chart is stretched out sideways, you might not want to have columns that are are too wide. As a general rule, if the column widths exceed the heights, the sheer amount of “ink” visible can make it much harder to focus on subtle differences in height. Conversely, if the gaps between columns are too wide, it can be difficult to compare column heights to one another accurately.

If you have a column chart with only a few categories that is likely to be displayed fairly wide, such as half the width of a dashboard on a widescreen monitor, you should test this with some different values for this property. I find that the default 40 pixels is a bit narrow most of the time, so I generally go for about 80 to 100 pixels here. Don’t forget, this does not mean your columns will normally be this wide, this is setting a maximum that you will only ever see if the chart is displayed very wide, or has very few categories. If the columns reach the maximum width, the chart is plotted with increasingly large gaps to make up the space.

As an example, if you are looking at a chart of “My Cases resolved per month”, this might look fine most if the time, combined with a view of Cases resolved in the last 12 months. But someone who just joined the organisation would only have one month showing up, so the columns would be much wider than usual and this maximum width can prevent the chart looking awful. This scenario would of course be avoided if you instead plot all the data for everyone in the business (so there are always records for every month), and highlight the current user’s contribution by filtering the chart to produce a “conditional formatting” effect.

In the final example of this article, exactly the same stacked chart shown above is displayed across the full screen. Notice that the PointWidth of 0.5 is now ignored, and instead the MaxPointWidth of 100 pixels is being used to limit how wide the columns appear (click for full size version).

Stacked chart with PointWidth 0.5 wide display

Now that you know how these two properties control the display of your charts, you can start to use these to make your charts look a bit more polished and professional, and possibly more attractive and “easy on the eye”, no matter what size they are displayed at.

Highlighting contribution using conditional formatting in CRM charts

Following on from my previous about conditional formatting in Dynamics CRM leaderboard charts I thought I would take a look at another use for this approach, this time in relation to customer service rather than sales.

You will often be asked to produce charts to help managers see the amount of work being done by a department, such as the number of Cases being resolved per month. While this is useful in itself, an individual user might like to see how they have contributed to the overall effort, using a chart such as this:

Resolved Cases with contribution highlighted

Steps to build this chart

Create the basic chart using the UI tools

Start off by creating a chart of Cases, and add a series to count them. In order to count the records you still have to choose a field. I always recommend to choose the field that has the same name as the entity. This is the internal primary key field that has the record’s GUID, so it is absolutely guaranteed to be filled in every time. I know there are other system fields such as Created On or Modified By that are also reliably populated, but I find it is much simpler for someone to interpret your intentions if you do Case > Count:All than Modified By > Count:All. In the second example I am distracted by the choice of field and start to wonder what the user who modified the record has to do with the way the chart works.

So, select the Case field, and select Count:Non-empty for the aggregation. We will come back to this point later. Add a second series exactly the same.Make sure both of these series are set as stacked column charts.

Add a category – use Modified On, since we don’t really have a “resolved on” date, but we know that Cases cannot be updated after they are resolved, so Modified On can be used as a substitute, or “proxy” for this. Select Month as the date grouping level. So your chart creation dialog box should look like this:
Create chart for resolved Cases by month

Save the chart and export the XML, so we can get to work on filtering the series to produce our conditional formatting effect.

Filtering the records

We filter the series just like we did in the previous conditional formatting chart example, by adding link-entity sections to the chart XML that refer back to the same entity. Note I have also changed the aliases used to something I can easily read and understand. The code below highlights the first link-entity clause and corresponding measure alias..

<datadefinition>
<fetchcollection>
<fetch mapping="logical" aggregate="true">
<entity name="incident">
 <attribute groupby="true" alias="MonthResolved" dategrouping="month" name="modifiedon" />
 <link-entity name="incident" from="incidentid" to="incidentid" link-type="outer">
  <attribute alias="CountMine" name="incidentid" aggregate="countcolumn" />
  <filter type="and">
    <condition attribute="ownerid" operator="eq-userid" />
  </filter>
 </link-entity>
 <link-entity name="incident" from="incidentid" to="incidentid" link-type="outer">
  <attribute alias="CountNotMine" name="incidentid" aggregate="countcolumn" />
  <filter type="and">
    <condition attribute="ownerid" operator="ne-userid" />
  </filter>
 </link-entity>
</entity>
</fetch>
</fetchcollection>
<categorycollection>
 <category alias="MonthResolved">
  <measurecollection>
    <measure alias="CountMine" />
  </measurecollection>
  <measurecollection>
    <measure alias="CountNotMine" />
  </measurecollection>
 </category>
</categorycollection>
</datadefinition>

Notice the use of the special FetchXML operators for the ownerid of eq-userid and ne-userid, as well as how the aggregate type shows up as countcolumn rather than just count. This is essential, because otherwise both series will actually count all the records and ignore the filters, instead of only counting the rows that have a value in that column because they match the filters. (This weird behaviour is a borderline bug, but at least the workaround for it is easy).

Change the overall layout

We also have the same problem as before, in that we have the two series being drawn against two separate Y axes. Since each axis will automatically adjust its own scale, this won’t work, and also means the two columns will not be stacked on top of each other, since they are on independent axes.

However, for time-based charts like this one, I find that people are often most interested in the most recent data, so if they are going to try and read any value off the chart, it will be from the last column, at the right hand side. So, rather than rushing to remove the second Y axis like we did last time, this time we will leave that alone, and instead configure the first series to also be plotted on the second axis by adding YAxisType=”Secondary”. Let’s also change the palette colours and hide both series in the legend at the same time (so the legend disappears) using IsVisibleInLegend=”False”:

<presentationdescription>
<Chart Palette="None" PaletteCustomColors="210,96,18; 241,151,90;">
<Series>
 <Series ChartType="StackedColumn" YAxisType="Secondary" IsVisibleInLegend="False"
   Font="{0}, 9.5px" LabelForeColor="59, 59, 59" CustomProperties="PointWidth=0.75, MaxPixelPointWidth=40"  >
 </Series>
 <Series ChartType="StackedColumn" YAxisType="Secondary" IsVisibleInLegend="False"
   Font="{0}, 9.5px" LabelForeColor="59, 59, 59" CustomProperties="PointWidth=0.75, MaxPixelPointWidth=40"  >
 </Series>
</Series>

Reduce the clutter on the axes

Now we can tidy up the axes a little bit too, to reduce the visual distractions. Some things you should always consider here:

  • Do you need tick marks on the category axis?
  • Can you make the axis line colour lighter?
  • Will it help to remove the margin on one or other axis, to use more of the space?
  • Do you need titles on either axis, and if so, should you add a custom title rather than the default one?

When it comes to this last point, a good option can be to use a tooltip rather than a title. Labelling a chart clearly is obviously important so that people can be sure of what they are looking at. But once someone has been using the same chart every day for weeks, a title such as “Count of Cases” can be an unnecessary distraction, especially if it is clearly implied by the chart’s name anyway. A tooltip can be a good way to get the right balance – add a description for those who need it, avoid any ambiguity about scaling and generally make sure people know how to interpret the chart.

I have chosen to make the following changes, highlighted in the code below:

  • remove the margins on the horizontal axis to make the chart fill more of the space across the screen
  • remove the titles on both axes (by making them transparent and 3 pixels in size
  • remove the X axis tick marks
  • added a tooltip to the Y axis (Note: ToolTip with two capital Ts – properties must be entered in the correct case)
  • set a fixed interval for the Y axis so there is a label for every 100 Cases – there were too many numbers being shown by default, and they were entirely unnecessary.
  • made the tick marks on the Y axis a little lighter in colour
<AxisX IsMarginVisible="False" LabelAutoFitMinFontSize="8"
TitleForeColor="Transparent" TitleFont="{0}, 3px"
LineColor="165, 172, 181" IntervalAutoMode="VariableCount">
<MajorGrid LineColor="Transparent" />
<MajorTickMark LineColor="Transparent" />
<LabelStyle Font="{0}, 12px" ForeColor="59, 59, 59" />
</AxisX>
<AxisY2 LabelAutoFitMinFontSize="8"
TitleForeColor="Transparent" TitleFont="{0}, 3px"
ToolTip="Count of resolved Cases, highlighting your own contribution"
LineColor="165, 172, 181" Interval="100" IntervalAutoMode="VariableCount">
<MajorGrid LineColor="239, 242, 246" />
<MajorTickMark LineColor="204,204,204" />
<LabelStyle Font="{0}, 10.5px" ForeColor="59, 59, 59" />
</AxisY2>

Further thoughts

There are of course lots of different ways you could present this chart. If the timeframe was very long, it might make sense to use a line chart to show the filtered series for “my” Cases, and a second line for an unfiltered series of all Cases.

If you want to emphasise “my” performance and only show the whole team / business for comparison, you could use a column for mine (much bolder and highly visible) and a line or point chart for the overall team results.

If you want to emphasise the level of contribution, you could use a 100% stacked chart. This means that in months with more or fewer Cases being logged and resolved, the viewer remains focussed on the proportion of those that they have dealt with, rather than the actual number. To change this simply requires a change of chart type to StackedColumn100, and some thought about the interval for the Y axis, a custom number format, and a different tooltip to explain to the user what they are looking at. An example of this same chart as a 100% stack is shown below. It is obvious in both versions of the chart that this user contributed less in March (perhaps because of an absence). In December their contribution appears to be lower than usual in the normal stacked chart, but we can see from this one that as a proportion it actually remained pretty level, in a month when there was simply less work to be done (perhaps because everyone is off at the same time during the holidays).

Resolved Cases with contribution 100% stacked

In a follow up post I will look at some other options and settings used in this chart to manage the width of the columns, and demonstrate how you could display the Y axis on both the left and right hand sides without them being scaled differently.

Conditional formatting in Dynamics CRM Leaderboard Charts

When you plan a data visualisation, the primary defining factor is always “what relationship am I trying to show?”, or to put it another way, “what question should this chart answer?”. For example, if you are displaying a chart of recent sales you might break this down by month or by salesperson, depending on whether you are trying to show how sales are changing over time, or how the members of the sales team compare to one another.

If you are comparing sales performance then you might decide to sort according to the sales revenue to produce a ranked chart or “leaderboard” showing best to worst sales performance (or maybe just top ten, for example). It might look something like this:

Sales ranked by owner - single series stacked bar chart

Me me me me me, it’s all about me

This sort of display tends to lead to another question almost immediately in the minds of the sales people who see this chart – “where am I in the rankings?” What you really want to be able to do is produce a chart that displays the same data for everyone, but highlights the most relevant data, usually the data belonging to the current user. For this, you need to customise your chart to do conditional formatting, to get something that looks more like this:

Sales ranked by owner - reformatted axes

The problem is, there is no such thing as conditional formatting for Dynamics CRM charts. So what we need to do is to out-think the system and configure a chart that gives the result we want, using magic.

“Any sufficiently advanced technology is indistinguishable from magic” – Arthur C. Clarke

Remember – there is no spoon, it is your mind that bends

ThereIsNoSpoon

I have been doing some pretty strange things with data visualisation for more years than I care to remember. Before getting involved with CRM I did a lot of advanced Excel stuff for clients, and the same sort of approaches I would have used there still stand me in good stead. In general, if you want to display something in more than one way, such as in different colours, or selectively displaying data values, or highlighting high and low points, the way to go about it is to cheat. I recently wrote an article about where I learned to cheat at charts from some great sources.

Usually this involves splitting the data into parts, to display these as multiple series, each formatted as you want, but then put back together. The laws of Gestalt psychology tell us that our brains are wired in such a way that we will usually see things very strongly as belonging together. So while we might change the colour of some data points, we will still see them as part of an overall single continuum, even though the inner workings of the chart structure are actually using two or more series.

Building our sales leaderboard chart with conditional formatting

Let’s start out the easy way, building as much as possible using the UI before exporting the XML and editing it. So create a chart showing sales opportunities by owner, with a sum of the Actual Revenue. Change the chart style to a stacked bar chart. A bar chart will make the labels easier to read compared to using a column layout.

Add a “Top X” rule – this will sort the bars according to their values to produce a ranked leaderboard, and will filter so that you are showing only the best performing sales people. The top 10 or 20 might be good; or you can use any number up to the maximum of 100. If you choose a number higher than the number of salespeople you need to include then you will get the ranking without any filtering effect.

Add the Actual Revenue field a second time and make sure that this one is a stacked bar too. Use a suitable view for the chart preview, such as Completed Opportunities this Fiscal Year while you are doing this, to make sure it looks right, then save your chart. You should get something that has the revenue doubled up, like this:

Sales ranked by owner - two series stacked bar chart

Unfortunately, despite telling CRM to use stacked charts, it still shows these side by side, and plots the second series on a secondary axis instead, which you will need to remove. However, by choosing stacked charts at this stage this saves having to change the chart type later, and stacked charts by default do not show values on the data points, so this helps reduce the chart junk already.

Export the chart and open the XML file with a suitable editor, such as Notepad++.

Sort out the aliases

The first thing I always do at this point is to change the auto-generated aliases into something more human readable. In this case I have three aliases to replace in multiple places as highlighted below:

<datadefinition>
<fetchcollection>
<fetch mapping="logical" aggregate="true" count="5">
<entity name="opportunity">
<order alias="_CRMAutoGen_aggregate_column_Num_0" descending="true" />
<attribute groupby="true" alias="_CRMAutoGen_groupby_column_Num_0" name="ownerid" />
<attribute alias="_CRMAutoGen_aggregate_column_Num_0" name="actualvalue" aggregate="sum" />
<attribute alias="_CRMAutoGen_aggregate_column_Num_14" name="actualvalue" aggregate="sum" />
</entity>
</fetch>
</fetchcollection>
<categorycollection>
  <category alias="_CRMAutoGen_groupby_column_Num_0">
    <measurecollection><measure alias="_CRMAutoGen_aggregate_column_Num_0" /></measurecollection>
    <measurecollection><measure alias="_CRMAutoGen_aggregate_column_Num_14" /></measurecollection>
  </category>
</categorycollection>
</datadefinition>

The first one is used to aggregate Actual Revenue for all records, which is also used to sort the bars. The second is the category – the Owner of the Opportunity in this case. The third will be for the first series which will later be filtered, so for now I will use the alias ActualMine for this one. I have also rearranged the lines in the fetch collection – I sometimes find it easier to make sense of the XML quickly if I keep things in the same order, so I have the category (groupby) attribute(s) first, then the series measures in order. I also prefer to specify an attribute and alias before using it, such as for the order property here, even though these will work if they are the other way round.

<datadefinition>
  <fetchcollection>
    <fetch mapping="logical" aggregate="true" count="5">
      <entity name="opportunity">
        <attribute groupby="true" alias="Owner" name="ownerid" />
        <attribute alias="ActualSales" name="actualvalue" aggregate="sum" />
        <order alias="ActualSales" descending="true" />
        <attribute alias="ActualMine" name="actualvalue" aggregate="sum" />
      </entity>
    </fetch>
  </fetchcollection>
  <categorycollection>
    <category alias="Owner">
      <measurecollection><measure alias="ActualMine" /></measurecollection>
      <measurecollection><measure alias="ActualSales" /></measurecollection>
    </category>
  </categorycollection>
</datadefinition>
</datadescription>

Get rid of the secondary Y axis

Next you should delete the references to this second Y axis from the chart XML. Remember, that the X axis is always the category axis, and the Y axis is always the values axis, regardless of the orientation (bar or column). There are two places you need to get rid of this: in the second series definition you need to delete the reference to the YAxisType

<Series ... YAxisType="Secondary">

and then also delete the secondary axis definition, that is everything from

<AxisY2 ...>
  [through to]
</AxisY2>

Choose better colours

I then changed the PaletteCustomColours to two shades of the same hue. Since both series represent actual sales revenue, it is generally best for them to be in the same colour, whereas if this were a chart comparing sales forecast to actual, then different colours might be a better choice. In this case I chose a dark and light green, mainly so we can see the clear distinction from the original colours. In reality, I would tend to stick to a specific palette for a project, for example where sales are green, customer service is blue, marketing is purple, or whatever makes sense. Keeping to a theme like this so that a given colour always has a similar meaning can really help users to understand their data more intuitively.

<Chart Palette="None" PaletteCustomColors="45, 126, 45; 102, 204, 102;">

You need to make sure you get the colours in the right order relative to the series. The alternative would be to specify the colour directly in each series instead.

Add custom legend text

I have also added a LegendText property to each series at this stage, so I can easily see which series is which. This will replace the default “Sum (Actual Revenue) (£)”. I also removed the from both series.

<Series...LegendText="Mine">
<Series...LegendText="Not Mine">

By now, having made quite a few changes already, we should reimport the chart to take a look. You should now have something that looks like this:
Sales ranked by owner - two series stacked bar chart single Y axis new colours

Configure the series filtering

So far we have still ended up plotting the same values twice over. Now we need to split those so that one series is plotted only for the current user, and the other is drawn for everyone who is not the current user. Because the charts are stacked, we will have one value plotted with a zero value invisible on top of it, and then a whole series with one gap, plotted on top of a load of zeroes. The effect will look like one complete series, with a single bar being highlighted by using a darker colour.

The general approach here is to use a link-entity, just as you would to get an attribute from a parent entity record, but in this case link to the original entity, get the attribute you need and filter the records. Then do a second link to the original entity, get the necessary attribute, and apply a different, mutually exclusive, filter. For our leaderboard, we need to get the Actual Revenue value in both cases, whereas for other charts you might need different attributes – such as Estimated Revenue for Open Opportunities, and Actual Revenue for closed ones. Set up the two link-entity clauses, one of which will re-define the previous ActualMine alias, the second will define a new alias ActualNotMine. We still need the original ActualSales alias to use for the sorting to keep the ranked chart in the right order. So the data definition now looks like this, with the changed alias rows highlighted:

<datadefinition>
<fetchcollection>
<fetch mapping="logical" aggregate="true" count="5">
<entity name="opportunity">
<attribute groupby="true" alias="Owner" name="ownerid" />
<attribute alias="ActualSales" name="actualvalue" aggregate="sum" />
<order alias="ActualSales" descending="true" />
<link-entity name="opportunity" from="opportunityid" to="opportunityid" link-type="outer">
<attribute name="actualvalue" aggregate="sum" alias="ActualMine" />
<filter type="and">
<condition attribute="ownerid" operator="eq-userid" />
</filter>
</link-entity>
<link-entity name="opportunity" from="opportunityid" to="opportunityid" link-type="outer">
<attribute name="actualvalue" aggregate="sum" alias="ActualNotMine" />
<filter type="and">
<condition attribute="ownerid" operator="ne-userid" />
</filter>
</link-entity>
</entity>
</fetch>
</fetchcollection>
<categorycollection>
  <category alias="Owner">
    <measurecollection><measure alias="ActualMine" /></measurecollection>
    <measurecollection><measure alias="ActualNotMine" /></measurecollection>
  </category>
</categorycollection>
</datadefinition>

Now for each record in the dataset, it is linked to itself, compared against the filters and if it matches, the attribute value is included in the aggregate (sum, count, etc).

Tidying up the axis format

The axis has a lot of annoying digits displayed, which just add to the visual clutter, so it will help to apply a custom number format to reduce this. Getting rid of the decimal places would be a good start, but I chose to display these values as “thousands” to reduce them even further. To help make this clear to the reader, I included a different format for the zero on the axis as “0 K”.

I have also added a title for the axis to describe what is being displayed and reinforce the scale, and configured this to be shown at the far end of the axis where it is less distracting. So our Y axis looks like this:

<AxisY Title="Actual Revenue ('000)" TitleAlignment="Far" ...>
    ...
    <LabelStyle Format="#,;-#,;0 K" .../>
</AxisY>

Reducing wasteful white space

I also find that for a lot of charts, we don’t need so much white space, and we can draw things closer to the edges of the chart area. This makes an even bigger difference if you are using a chart like this one with very few bars in the chart pane, or if you click to enlarge the chart from a dashboard. The white spaces are “margins”, and you can hide these by setting IsMarginVisible to False. Note again that the X axis here is the category axis, displayed vertically because we have a bar chart. Hiding the margins on the X axis will spread out the bars along the category axis. If you also hide the margins on the Y axis, then the longest bar will very nearly reach the edge of the chart area, rather than leaving a significant gap before the end of the axis. The amount of gap on the Y axis varies, and depends on the size of the intervals between axis tick marks and labels, amd as you can see in the screenshots on this page, it can be as little as about 5% and as high as nearly 20% wasted. I left the Y axis alone here, and just modified the X axis.

<AxisX IsMarginVisible="False" ...>

Removing more chart junk on the X axis

There are a couple more things you can do to improve this chart by reducing visual clutter. The X axis has clear categories with labels that fit and align neatly with the bars, so there is really no need for tick marks along this axis. Also, the name of the chart and the names of the categories should make it obvious to anyone what this axis represents – salespeople (owner), so the title is also pretty unnecessary. There is no way to actually remove those elements, but you can make them transparent so they disappear, and you can make the title font smaller to reduce the blank space it takes up. 3 pixels seems to be the smallest font size you can specify here.

<AxisX IsMarginVisible="False" TitleForeColor="Transparent" TitleFont="{0}, 3px" ...>
<MajorTickMark LineColor="Transparent" />

Sales ranked by owner - reformatted axes

Adding some final touches

We have a pretty good chart now, certainly a step up from the original one or out-of-the-box Sales Leaderboard chart, but there are still some things we can do to make this even better.

Firstly, we don’t really need that legend. To be honest, I only put it there so you could see what was going on for this article. So let’s hide that first. The odd thing is that you can’t hide the legend directly, what you do is configure each series to not be visible in the legend, and CRM very sensibly hides the legend completely if you do this for all series, since there is nothing left to show.

<Series ChartType="StackedBar" IsVisibleInLegend="False" ...>
<Series ChartType="StackedBar" IsVisibleInLegend="False" ...>

I also wanted to emphasise the idea of rising to the top of the leaderboard, by putting the best performer at the top, not the bottom. As the CRM Chart Guy points out, if you reverse the sort order, this also means you will get a bottom 10 (or 50, or whatever) instead of top 10. So rather than reverse the sort, you need to configure the X axis to be reversed.

<AxisX IsReversed="True" ...>

This also moves the Y axis to the top of the chart. If you prefer the axis to remain at the bottom, simply add back in those references to YAxisType=”Secondary” in both series, and copy and paste the Y axis section, add in a 2 to make it and republish. Personally I like it there in this case, so I left it alone.

I have also added a value label to the ActualMine series by adding IsValueShownAsLabel=”True” and made the font for this white and fairly large.

The number format for this data label is similar to the Y axis, but you will need to make a couple of small adjustments. Firstly, you need to suppress the zero format, otherwise all those “invisible” zero bars will show up these labels. Unlike Excel, you can’t just leave it blank after a final semicolon, you actually need to add a space to be displayed. Of course, you could use various different formats, to show more precision for example, since it will be just for the current user, so not very cluttered.

The position of the label is controlled by adding BarLabelStyle to the comma-separated  CustomProperties I found I needed to add a couple of spaces in front of the number format to push the label into the bar a little so it did not run up against the axis.

I’ve removed the legend by adding IsVisibleInLegend=”False” to both series, but I have left in the LegendText property. It has no effect on the chart but makes it easier for anyone else to figure out which series is which for any later troubleshooting, and means that if I enable the legend again later, it already has a useful label. I have increased the PointWidth property to 0.8 from 0.75, to close the gaps between bars slightly, and increased the MaxPixelPointWidth to 100. You won’t see any change from this second property except when viewing the chart in the chart pane or with plenty of vertical space on a dashboard.

With all these changes, each series should look something like this:

<Series ChartType="StackedBar" IsVisibleInLegend="False" LegendText="Mine"
IsValueShownAsLabel="True" LabelFormat="  # K,; -# K,; " Font="{0}, 24px" LabelForeColor="255, 255, 255"
CustomProperties="BarLabelStyle=Left, PointWidth=0.8, MaxPixelPointWidth=100"></Series>

So this is what my final version looks like, with the original single series chart shown below for comparison.

Sales ranked by owner - reversed order and added label

Sales-ranked-by-owner-single-series-stacked-bar-chart.png

The xml for my final version is below, for reference.

<visualization>
<visualizationid>{817D8B1D-B7E9-E411-80FB-FC15B4263E1C}</visualizationid>
<name>Sales Leaderboard Final</name>
<primaryentitytypecode>opportunity</primaryentitytypecode>
<datadescription>
<datadefinition>
<fetchcollection>
<fetch mapping="logical" aggregate="true" count="5">
<entity name="opportunity">
<attribute groupby="true" alias="Owner" name="ownerid" />
<attribute alias="ActualSales" name="actualvalue" aggregate="sum" />
<order alias="ActualSales" descending="true" />
<link-entity name="opportunity" from="opportunityid" to="opportunityid" link-type="outer">
<attribute name="actualvalue" aggregate="sum" alias="ActualMine" />
<filter type="and">
<condition attribute="ownerid" operator="eq-userid" />
</filter>
</link-entity>
<link-entity name="opportunity" from="opportunityid" to="opportunityid" link-type="outer">
<attribute name="actualvalue" aggregate="sum" alias="ActualNotMine" />
<filter type="and">
<condition attribute="ownerid" operator="ne-userid" />
</filter>
</link-entity>
</entity>
</fetch>
</fetchcollection>
<categorycollection>
<category alias="Owner">
<measurecollection><measure alias="ActualMine" /></measurecollection>
<measurecollection><measure alias="ActualNotMine" /></measurecollection>
</category>
</categorycollection>
</datadefinition>
</datadescription>
<presentationdescription>
<Chart Palette="None" PaletteCustomColors="45, 126, 45; 102, 204, 102;">
<Series>
<Series ChartType="StackedBar" IsVisibleInLegend="False" LegendText="Mine" IsValueShownAsLabel="True" LabelFormat="  # K,; -# K,; " Font="{0}, 24px" LabelForeColor="255, 255, 255" CustomProperties="BarLabelStyle=Left, PointWidth=0.8, MaxPixelPointWidth=100"></Series>
<Series ChartType="StackedBar" IsVisibleInLegend="False" Font="{0}, 9.5px" LabelForeColor="59, 59, 59" CustomProperties="PointWidth=0.8, MaxPixelPointWidth=100" LegendText="Not Mine"></Series>
</Series>
<ChartAreas>
<ChartArea BorderColor="White" BorderDashStyle="Solid">
<AxisY Title="Actual Revenue ('000)" TitleAlignment="Far" LabelAutoFitMinFontSize="10" TitleForeColor="59, 59, 59" TitleFont="{0}, 12px" LineColor="165, 172, 181" IntervalAutoMode="VariableCount">
<MajorGrid LineColor="239, 242, 246" />
<MajorTickMark LineColor="165, 172, 181" />
<LabelStyle Format="#,;-#,;0 K" Font="{0}, 10.5px" ForeColor="59, 59, 59" />
</AxisY>
<AxisX IsMarginVisible="False" IsReversed="True" LabelAutoFitMinFontSize="8" TitleForeColor="Transparent" TitleFont="{0}, 3px" LineColor="165, 172, 181" IntervalAutoMode="VariableCount">
<MajorTickMark LineColor="Transparent" />
<MajorGrid LineColor="Transparent" />
<LabelStyle Font="{0}, 10.5px" ForeColor="59, 59, 59" />
</AxisX>
</ChartArea>
</ChartAreas>
<Titles>
<Title Alignment="TopLeft" DockingOffset="-3" Font="{0}, 13px" ForeColor="59, 59, 59"></Title>
</Titles>
<Legends>
<Legend Alignment="Center" LegendStyle="Table" Docking="right" IsEquallySpacedItems="True" Font="{0}, 11px" ShadowColor="0, 0, 0, 0" ForeColor="59, 59, 59" />
</Legends>
</Chart>
</presentationdescription>
<isdefault>false</isdefault>
</visualization>

Where to learn about data visualisation and building better charts

I’m working on a series of posts about charting in Dynamics CRM at the moment. Some are longer articles with fully worked examples of how to achieve common scenarios my clients request, or that I see people asking about in the Dynamics Community and other forums. Others will be shorter pieces with quick tips or documenting some of the little quirks of the chart production process.

I could not start to publish these articles in good conscience without first acknowledging where I learned my charting skills over the years, especially figuring out how to do things that at first seem impossible “out of the box”.

Jon Peltier, MVP for Excel

Almost everything I ever learned about how to fool Microsoft software into displaying charts that seem impossible to create, I learned from MVP Jon Peltier and his excellent Excel blog at Peltiertech.com. His step-by-step examples of how to produce practical advanced charts are really easy to follow and get straight to some really great results. All of his advanced charts are also great examples of  applied best practices in visualisation design.

More than anything, I have learned from Jon’s approach to tackling chart problems by breaking them down into things that the chart engine can do (whether Excel or CRM), and then using interim calculations or whatever else is needed to build the “impossible” desired result.

In particular, Jon takes a firm stand against ever drawing anything on a chart, (such as a target or threshold line) or changing the colour of a data point by hand, or selectively adding labels. You should always try to build a chart that works today, and then produces exactly the same effect with more or different data, automatically and without needing to be “tweaked”. This stance is invaluable when dealing with the CRM chart rendering engine, where you cannot “hand tint” things after the fact – all your work needs to go into the way the chart is built in the first place.

I still use (and teach) many principles I first learned in the last ten years of reading Jon’s work, and I am sure I will continue to learn much more from him. Definitely top of my list for a reason.

CRM Chart Guy

I also want to signpost the fantastic CRM Chart Guy blog by Ulrik Carlsson. His articles show great walk-throughs of mini projects to create more advanced charts for Dynamics CRM, as well as providing lots of references for the ChartXML syntax which is (in my opinion at least) fairly poorly documented. I often point people to CRM Chart Guy posts in response to questions in forums, as well as using it as my own go-to reference for things like syntax for options I use less frequently.

What I like most about Ulrik’s style of articles is that he often shows the intermediate stages, when a chart looks completely wrong. This gives reassurance to the reader hat if yours looks like this, it is right, not wrong, and that it will all come together in the end. Combined with lots of downloadable XML ready to use, practical real-world examples, and detailed reference lists this is another showcase of skill and good practice.

If your focus is on charting in CRM rather than other tools, this should be top of your bookmarks and RSS feed, or you can follow the CRM Chart Guy for updates.

Stephen Few of Perceptual Edge

Stephen Few is a very well-known figure in the field of data visualisation, as a consultant, author of multiple books, MBA professor, international speaker and educator and inventor of the bullet graph. Stephen’s area of expertise is data visualisation as a science in itself (with a bit of art thrown in), blending cognitive psychology and practical experience in a completely results-oriented way. Not focussing on any particular software, or tool, or technology (although he has experience of many of these), but rather on what you should be doing with those tools to achieve useful results.

I was fortunate enough to be able to attend a three-day workshop taught by Stephen in London a few years ago, each day based around his (then) three main books. His down-to-earth conversational style made for a great learning experience, and the shared ideas from all the participants added even more. If you are serious about developing your skills as a “data sense maker”, then you really should try to get on one of Stephen Few’s courses.

If you cant get to an in-person workshop, his books are a great alternative source of information. What I found most interesting about Show Me the Numbers was that this dealt not only with charts, but also with tables, which are often given almost no consideration by comparison. I did sometimes feel that much of what I read in this book was really obvious – but only once it had been pointed out. i still apply many of the principles I learned from this book in my daily data visualisation work, now almost without thinking about it.

Information Dashboard Design is also a very valuable reference – much of the book deals with highlighting bad practices to avoid and better alternatives to use. This is particularly valuable “ammunition” to have when trying to turn around existing dashboard designs that have become entrenched and embedded in an organisation, in order to help enlighten people and show them a brighter future. Both of these first two books are on on their second editions, with additional content to reflect changing usage patterns, particularly in areas such as interactive displays (where tooltips can reduce labels and chart junk for example)  and mobile content (especially for live dashboards). I don’t use his third book Now You See It quite as much, dealing as it does with deeper data analysis and exploration, which are areas that don’t come up quite as often in my day-to-day work with clients.

Edward Tufte

Stephen Few is often mentioned in the same breath as Edward Tufte, and although I have read much of Tufte’s work and taken some useful ideas from it, I find their styles very different.

I find Tufte can sometimes be very prescriptive, and a little bit too “academic” in his aesthetic goal of minimalist purity. Stephen, on the other hand, applies the same scientific knowledge of how we process visual information to practical problems. His tone tends towards that of a trusted advisor rather than of a strict parent. As an example of the difference in approach, I am sure that both of them would agree that you should try to improve the data:ink ratio (a term coined by Tufte) by reducing clutter on charts. I feel that Edward Tufte would argue this almost as a goal in itself, whereas Stephen Few would do this only insofar as it helps to achieve better results.

Having said that, Tufte has made many very valuable contributions to the field of practical data visualisation, including promoting and giving a name to sparklines, which have become very popular for dense data-rich displays.

As I write this, I find myself wanting to refer to them as “Tufte” and “Stephen” – perhaps this is a reflection of the difference between formality and approachableness that I sense in their writing styles.

And there’s more…

I could not possibly mention everyone whose blog I follow, books I have read or tweets that signpost great content on a daily basis. So I have put together a twitter list of data visualisation experts who share useful information on a regular basis about all aspects of making better sense of data, business intelligence, chart and dashboard design, the cognitive psychology aspects of data visualisation, or ways to use the tools we have available to us.

Who have you learned most from about data visualisation and charting? What are your go-to resources when you need to figure out a better way to display your data? Share your thoughts in the comments, please!

Special privileges in CRM Security Roles

There are several privileges in Dynamics CRM that control access to things like settings and user personalisation features, rather than data records. If users are missing some of these then they might not be able to sign in to CRM at all, or might not be able to use it properly. In particular, there are six privileges that can only be set at User level

Privileges that can be set at “User” Level only

There are a few privileges that you can only set to User level or None in any security role. Five of the entities for which this is true are on the Core Records tab, and you can easily find out which they are by looking at the System Administrator security role (shown below). Even this “super user” does not have global rights to these items so they stand out as the only rows not covered in green circles:

System Administrator Security Role

(Minor note: the above screenshot was taken from CRM 2015. In CRM 2013 and earlier, you will see that UserEntityInstanceData is written as one word with no spaces, and appears below User Entity UI Settings.)
Find out what these 5 settings are for, and how to configure them »

CRM 2015 Customization Exam MB2-707

Last week I took and passed the newly released exam MB2-707 Microsoft Dynamics CRM Customization and Configuration. The exam title does not mention CRM 2015, although that is clearly the version it is aimed at.

I guess this is because Microsoft don’t want to confuse things when the exam covers how to customise Dynamics CRM 2015 on-premises or CRM Online, which does not really include the version number as such a prominent part of the branding. If you pass this exam it should be clear that you have the skills to customise CRM 2015 on-premise or CRM online equally.

Looking at the skills measured, the only new areas covered compared to the CRM 2013 Customisation exam MB2-703 are calculated and rollup fields. There is no mention of hierarchical security, or configuring sales or service modules such as SLAs and Entitlements or the Product Catalog.
Read my thoughts and tips for passing exam MB2-707 »

Microsoft Dynamics CRM 2015 Exams

Some of the details of exams for Dynamics CRM 2015 are now available.

Take careful note of the “Skills measured” sections for these, as they are not exactly aligned to the equivalent 2013 exams in all cases. Courses for these are all e-learning, available via the Dynamics Learning Portal (DLP) for customers and partners signed up to appropriate support plans. Some learning providers may also offer these as a “blended learning” experience, with a classroom instructor to walk you through the course and address areas of difficulty and answer questions. It remains to be seen whether this is a popular option for many people or not.

MB2-704 Microsoft Dynamics CRM Application

Slightly strange title on this one. Watch out for the fact that this includes some aspects of social listening, so if you are not using that in your organisation you need to do some good reading on the subject.

MB2-707 Microsoft Dynamics CRM Customization and Configuration

Looking at the skills measured, it seems that the only new areas covered are calculated and rollup fields. There seems to be no mention of hierarchical security, or configuring sales or service modules (arguably the right choice, as those are possibly business area manager tasks, rather than initial customisations).

MB2-706 – Microsoft Dynamics CRM Online Deployment

Strangely the skills measured for this exam (as of 28th Jan) have lots of overlap with MB2-708, including knowledge about installing the server.roles, SSRS and ADFS for example (I get that ADFS can be used for authentication with online, using federation, but the description sounds more like normal IFD config to me). You will also need to know about online admin of users in the Office365 platform, or Microsoft Online Services as they prefer us to call it these days.Integration with Exchange, Lync and Yammer are included too.

Upgrades, troubleshooting, VSS and data encryption all seem to include topics that would only apply to on-premises environments. This is a truly confusing exam outline, it will be interesting to see what it is like in reality.

MB2-708 Microsoft Dynamics CRM Installation

This one is aimed at skills needed to implement and manage CRM On-Premises deployments, including things like configuring IFD, high-availability options and troubleshooting.

MB2-720 Functional Application in Microsoft Dynamics Marketing

Focussed entirely on MDM rather than the limited marketing functionality in CRM itself.

I’ll update this post with details of other exams as they become available.

CRMUG UK Scotland and North of England Inaugural Meeting

This post has been moved to the official CRMUG UK blog at: CRMUG.UK/20141120 (this page uses the meeting date in YYYYMMDD format as a permanent short URL).

Happy Birthday to me – 2 years as a CRMUG member

Today I am at the first CRMUG event in the UK “North of the border”. Yes, we have our first chapter meeting in Edinburgh, for members from Scotland and the north of England, on November 20th.

I travelled up here by train yesterday and took the opportunity to go through my slides for a quick intro session telling people all the great reasons to become full members of CRMUG (rather than Basic members, or “Subscribers” as they are now called). I wanted to mention how long I had been involved with CRMUG, and a quick look back in my Outlook calendar revealed the strange coincidence that it has been exactly two years to the day!

Back in the mists of time…

On 20th November 2012 I attended my first CRM User Group meeting at Microsoft’s UK headquarters in Reading. I had been meaning to go for a while but something (usually work) always got in the way. The meeting included a roadmap presentation from Microsoft – I think there must have been some stuff about the Polaris release in that one. There were also a couple of customer showcases, including a particularly memorable one from Mersey Travel who were using CRM with a portal built on ADX Studio to manage HR and training for about 4,500 employees of the various transport companies that come under their umbrella in the Liverpool metropolitan area and surroundings.

I won’t mention the name of the other customer showcase, but what stood out in my mind was they had loads of custom entities (many dozens, possibly over 100) – and none of them had a custom icon. A very complex system with some very clever automation and difficult reporting, but it must have been a nightmare for users to navigate.

We even got to meet the amazingly energetic and inimitable CRMUG Director Tony Stein, who flew in specially – he wrote about his take on the event on the CRMUG UK Community forum. When he asked if anyone could pitch in to help out with organising future events, I put up my hand – I don’t know if it was just Tony’s infectious enthusiasm for building a community or some kind of Jedi mind trick, but it worked!

Read about all the things I have had the opportunity to do in two years as a CRMUG member »

More Dynamics CRM 2015 videos from the MS Product Team

As a follow up to my previous post showcasing some of the YouTube videos that Microsoft have posted about CRM 2015, here are some more about various features that have recently been added.

Farrukh Ghaffar talks about the update process for CRM Online customers when CRM 2015 gets released.
 

 
There are also some great run-throughs of new features such as “Rollup and Calculated Fields in Microsoft Dynamics CRM 2015″ from Brandon Simons, and “Tablet Productivity Enhancements in Microsoft Dynamics CRM 2015″ presented by Tony Schmidt.

 

 
Daniel Dallala gives a useful overview of some of the enhancements to the product catalog features for product families, related products and bundles
 

Finally Narinder Singh talks about the possibilities for self service reporting using Power BI.
 

Modify Dashboard properties in CRM 2015

In CRM 2011 you could create system and personal Dashboards. You could start from scratch using one of the predefined layout templates, or copy an existing one using “Save As”. Choose a name, give it a description and away you go.

If you changed your mind about the purpose of the dashboard you could simply open it back up and change the name of the dashboard, and you could click the “Properties” button on the Ribbon to change the description.

With CRM 2013 there was a big change – although you could change the name of a dashboard, there was no “Properties” button on the command bar to change the description, so if you got it wrong when you first created and saved it – tough, you could not go back and fix it later. And “Dashboard” is not an entity you can add to a Solution to work on the command bar RibbonXML using Ribbon Workbench, for example.

Dashboard 2013 no properties button

Despite reporting this as a suggestion that needed fixing by using the Connect site, nothing happened for the last year. The workaround of making a further copy of the dashboard and setting the correct properties is all very well, but could mean having to change the default dashboards for each module in the SIteMap, and for users to have to set a new default if they were using the existing one.

Anyone using CRM for Tablets could only use the “out of the box” Sales dashboard, but if you wanted to change this you could modify every aspect of it (including the display name) to use it for non-sales purposes but you still could not change the description. Read what is changing in CRM 2015»

CRM User Group Social Evening November 2014

CRMUG LogoThe next UK CRM User Group meeting is on November 13th in Reading. Because so many attendees travel down the night before, it makes sense for us to get together for a social evening of networking, chit-chat and generally getting to know one another a bit better..

November 12th from 18:30 onwards, Pitcher and Piano, Reading

This will take place at the same venue as last March, the Pitcher and Piano, 18 Friar Street, Reading, RG1 1DB which is in central Reading within easy walking distance from railway station, TVP shuttle routes and plenty of hotels.

Join us from 18:30 onwards for a few drinks and maybe a bite to eat (especially for those of you staying overnight in Reading). Try to get there before 8pm to take advantage of various 2 for 1 offers on cocktails and selected bottled beers, or glasses of house wine and pints of beer or cider for £2.50.

Add to calendar  Click to add the social event to your Outlook calendar

Sponsorship opportunity

If any partners who are attending the CRMUG meeting with their customer(s) would like to fund a light buffet to keep people from starving, or a few drinks to get the evening started that would be greatly appreciated. We would make sure people knew who to thank the next day! If you are interested, please get in touch with me directly CRMUG@meteorit.co.uk.

Dynamics CRM 2015 YouTube Videos

The Dynamics CRM team have been busy preparing a series of videos about CRM 2015 to make sure people are ready for some of the great new features in this next release. I am sure they will add more to this as time goes on and the release date gets closer.

First up it’s Matthew Barbour talking about Upgrading from Microsoft Dynamics CRM 2013 to 2015 (previously known as “Vega”). Note some of the key points, such as the path from CRM 2011 (with UR6 or UR14+) to CRM 2013, then SP1, then upgrade to CRM 2015 (ideally via migration rather than in-place upgrade).

Upgrading from Microsoft Dynamics CRM 2013 to 2015

Next – did you know that in CRM 2015 you can now use Field Security on out-of-the-box fields, rather than only custom fields? This quick video walks you through this excellent step forward.

Field Level Security in Microsoft Dynamics CRM 2015

Business Process Flows (BPF) also have some key improvements compared to their first outing in Polaris and later update in CRM 2013. Branching logic and more access via the client API are the main points. Find out abut using BPF in this short video.

Business Process in Microsoft Dynamics CRM 2015

I hope you find these useful and instructive, and help to prepare you for some of the things that are just around the corner with the new release of Dynamics CRM 2015.

CRMUG UK User Group – TWO Meetings in Reading and Edinburgh

CRMUG LogoThis post has been moved to the official CRMUG UK blog at crmug.uk/2014/11/03/crmug-uk-user-group-two-meetings-in-reading-and-edinburgh

CRMUG UK Social Evening July 16th

The next CRMUG UK Meeting will be at Microsoft’s Customer Centre in Cardinal Place in London on July 17th. We have ten sessions across three tracks for a day packed with content for everyone involved in Dynamics CRM from project owners, business managers, administrators and consultants through to customisers and developers.

Full details of the agenda and session outlines are in my previous article CRM User Group CRMUG UK meeting in July 2014 which also includes links to the registration page.

As we have done before, we will be having a social evening the night before the main event, very kindly organised by Andrew Bibby on our behalf this time.

Jugged Hare, Victoria, July 16th 7pm onwards

The Jugged Hare is a Fullers’ pub at 172 Vauxhall Bridge Rd, Victoria, Greater London SW1V 1DX (map).

Join us from about 7pm in the upstairs gallery area for a few drinks and some food if you want to (served until 10pm so OK for later arrivals).

Add to calendar  Click to add the social event to your Outlook calendar

There are loads of options for accommodation in the local area, all only a short walk to get to Cardinal Place for the actual CRMUG meeting in the morning. Or you could easily commute there and back via Victoria or Pimlico tube stations.

Workflow OR conditions in CRM 2013 SP1

Everyone is writing about all the big changes in Dynamics CRM 2013 Service Pack 1 (aka Spring ‘14 Release for CRM Online, previously codenamed “Leo”). There are tons of great features around Service management, new tools for developers, improved tablet support and so on.

If you want to find out all about the new service management functionality, how to enable and take advantage of the SLAs, entitlements, Case routing and related features, sign up for our in-person classroom training course What’s new in Dynamics CRM 2013 Spring ’14. In one day of accelerated training you will learn all about configuring new service features, as well as high-level coverage of other items such as tablet support, server-side synchronisation, status transition controls, and more!

At the CRMUG UK Meeting in July we are also focussing on “Service” and will have plenty of time to hear from Microsoft about the new release, as well as a session from Wael Hamze of Barclays for developers, including some of the new things in the SDK.

In all the kerfuffle there has not been much mention of a little feature that I have been waiting on for a long time, that will make a small but important difference to the development of Workflows. You can now create conditions and group clauses using OR and AND conditions. Read how to use OR conditions in Dynamics CRM 2013 Workflows with SP1 »

Why Use Access Teams in Dynamics CRM 2013

It seems to be “Access Teams Week”.

Larry Lentz wrote an article CRM 2013 Access Teams in a Nutshell which is a great introduction to what Access Teams are and what they do. Ben Hosking wrote a post in his series about preparing for the CRM Customization exam MB2-703: Access Teams and Access Team Templates how to use them and key facts.

Both of these are really good primers on the mechanics of using Access Teams but I think they miss addressing one really big question – why would you want to use Access Teams in the first place?

I think there are several reasons to use Access Team Templates, some in terms of usability, others from a more technical or performance perspective, and some cases for using manually-created Access Teams.

Read 4 key reasons to consider using Access Teams in Dynamics CRM 2013 »

CRM Masters Spring Special Offer

CRM Masters logo small

 

We have a limited time special offer discount on our Dynamics CRM training at CRM Masters.

Book on one of our June or July courses now and get £45 off

Register for any of our scheduled Dynamics CRM training courses before the end of May for the special early bird price of only £350 per person per course.

You can book as many people on as many courses as you want, and get the discount for each person.

In order to give you the best possible training, seats on our custom CRM training courses are strictly limited, so hurry to book your place while they are still available.

This offer applies to four of our courses: Update Your Skills to Microsoft Dynamics CRM 2013, Managing Business Processes with Microsoft Dynamics CRM 2013, Visualizing Microsoft Dynamics CRM Data and What’s New in the Leo Release of Microsoft Dynamics CRM 2013

CRM User Group CRMUG UK meeting in July 2014

CRMUG LogoThe next UK CRM User Group is in London in less than two months, on Thursday 17th July, and we will be focussing on using Dynamics CRM for managing services.

These might be traditional customer support services, fulfilment or project services, local government services to residents and businesses, or internal process management. The meeting is free to attend for all CRMUG members – and you can sign up for a Basic membership at no cost.

CRMUG UK Q2 Meeting Thursday 17th July 2014, London

Join 100 or more fellow CRM users for the next UK CRM User Group Meeting at Microsoft Customer Centre at Cardinal Place, London (Victoria). Coffee and Reception start at 9:00 am. Don’t miss this opportunity to experience what the CRMUG has to offer you and other Dynamics CRM users!

Registration is now open for this event. Click here to register for this event for FREE

Add to calendar Click to add the CRMUG UK July 2014 meeting to your Outlook calendar

Agenda

We will have multiple tracks for the middle part of the day, so you can choose the session that is of most interest and relevance. We will have a wide range of topics for everyone from business managers and project owners through administrators and functional consultants to the most technical system customisers and developers.

This agenda is subject to change (edit: updated 24th June with latest information), and we do expect to add one or two additional optional sessions to those described below. Also note our CRMUG UK Social Evening on July 16th.

09:30 Welcome & CRMUG News
09:45 What’s New in CRM 2013 Spring’14 release
(aka Service Pack 1, formerly "Leo").
Microsoft UK
11:00 Coffee and Networking
11:15
3 Tracks

Supporting a Changing Business
Skills Development Scotland is Scotland’s national skills body, combining careers, skills, training and funding services. SDS has over 800 CRM users across 50 sites providing services to in excess of 185,000 customers per annum.
SDS has undergone significant changes to its service offering in the last 2 years. This session will describe how a small internal team has supported the changes to the CRM system to support this.
Martin O’Neill, Skills Development Scotland

One-Click Dynamics CRM Deployments
Find out how you can automate the build and deployment processes for your CRM solutions. The session will demonstrate how the latest tools from the CRM SDK, TFS 2013, Visual Studio Release Management & xRM CI Framework can work together to implement end to end one-click deployments of your enterprise Dynamics CRM Solutions across all your environments. This will allow you to deliver CRM more frequently in a consistent and reliable way.
Wael Hamze, CRM Centre of Excellence, Barclays Investment Bank

Round Table – Using CRM for Public Sector services
Local and regional Government, Councils, Social Housing, healthcare, QUANGOs, and many other organisations use CRM in a similar way to provide services to a huge audience of citizens, residents, or businesses. These might be free at the point of use, so the sales module might be entirely ignored, but the service area is likely to be highly customised to suit this type of work. Often there are significant considerations about record security and segmenting access according to type, particularly around data considered "sensitive" under DPA such as physical or mental health, or criminal offences.
Please join your peers to share you experiences of using CRM to meet these challenges and manage public services in a cost effective manner.
Chair TBC

12:15 5 minutes to swap rooms
12:20
3 Tracks

Data Visualisation – Art or Science?
Best practices for designing charts to help people understand their business data effortlessly.
This will cover the "what should I do?" and "why?" rather than the technical ins-and-outs of how to achieve this with a specific piece of software. The main focus will be on Dynamics CRM charts and dashboards, but the approaches are just as valid using Excel, PowerPivot, SSRS or big analytics products.
Adam Vero, CRM Masters

CRM & BPM – Better Together!

Dynamics CRM 2013 is fuelling interest in the potential to deliver new and innovative customer services from CRM.  But without resorting to complex and costly XRM based coding projects, the scope is often limited. Business Process Management (BPM) tools such as PNMsoft Sequence, organisations can realise the full potential of CRM. 
When South West Water migrated to Dynamics CRM, a requirement to deliver critical Service Management functionality in short time was achieved through a BPM approach.
In this session, you will see how to quickly and easily create powerful workflow-driven CRM functionality with zero coding; connect your CRM activities with your existing ERP, SharePoint and other platforms and easily adapt, change and deploy CRM processes in line with changing business needs.
James Luxford, CTO PNMsoft (CRMUG Partner Member)

Round Table – Charity Management using Dynamics CRM
Many charities use CRM for similar things, such as tracking private and corporate donations; organising events, volunteers and regional groups of supporters; and managing services to the community. Are you also using CRM to manage your digital marketing, using built in functionality or third party solutions? If you are using or considering Microsoft Dynamics CRM to manage a charity, come and share your experiences with your peers.
Chaired by Seemant Rajvanshi, Macmillan Cancer Support

13:20 Lunch and Networking
14:00
2 tracks

Stop, Collaborate and Listen!
How to get support from your peers through various online channels
Joel Abbott, XRM Consultant

Demystifying CTI for the common good.
Have you thought about Computer Telephony Integration (CTI) but saw it as black magic? Do the words VOIP, PSDN, IVR, PBX, CLI mean anything?
What about Preview dialling, predictive dialling, power dialling, screen popping…  and now Microsoft has added USD!
This session aims to demystify the area of integrating CRM with telephony. CTI is not just for call centres and can improve any telephone-based customer interactions, so CTI can be a key factor in improving customer service in any organisation.
Rowland Dexter, QGate

15:00 Ask the Experts
A chance for more Q&A with today’s speakers and MVPs
16:00 Close

Location

This meeting will be at Microsoft’s Customer Centre in London

Cardinal Place
80-100 Victoria Street
London
SW1E 5JL

That’s a 2 minute walk from Victoria tube station, serviced by the Victoria, Circle and District Lines.

Who should attend?

All Dynamics CRM users are welcome. We also encourage you to invite your colleagues and other users – email to colleagues, tweet about it, mention it in your LinkedIn groups and other sites..

Partners are welcome to attend provided they are accompanied by a customer. Partners please bear in mind that the objective of regional events such as this is to exchange knowledge and Dynamics CRM experience. Partner personnel should possess deep CRM expertise and refrain from sales activities.

Hope to see you there!

Save the Date – November Meeting

Planning ahead, our next meeting will be on Thursday November 13th, at Microsoft’s UK HQ in Thames Valley Park, Reading.

Add to calendar Click to add the CRMUG UK November 2014 meeting to your Outlook calendar

We hope to have some more great content to share, including some possible encore sessions from CRMUG Summit 2014 which takes place in St Louis, Missouri. Members get $200 discount per person on their Summit passes, and staggered Early Bird rates also apply – for the best prices, register before the end of June.

Training for Dynamics CRM from CRM Masters

CRM Masters logo small

I’m excited to announce that I’ve partnered with Feridun Kadir to set up a new Dynamics CRM training business, CRM Masters Ltd.

We have a schedule of training courses that will give you the practical knowledge that you need to implement, customize and maintain CRM 2011 and 2013.

Our courses are designed to give you highly-focused instructor-led training to cover topics you won’t find on other courses.

Please review our list of Dynamics CRM courses and if there is an area that you feel you would like training in that you don’t see please let us know.

Follow

Get every new post delivered to your Inbox.

Join 82 other followers