James Downey’s CRM Blog
Thoughts on the technology and business of CRM

Silicon Valley Code Camp

Monday, 31 August 2009 11:36 by James Downey

The Silicon Valley Code Camp is a free event by developers for developers that will take place during the weekend of October 3rd and 4th at Foothill College in Los Altos, CA. Regardless of your language and platform of choice, this is the place to be for developers interested in learning new skills and keeping up with the latest technologies.

I will be giving a presentations on Workflow Foundation (WF4) in .Net 4.0. I'll go over the basic concepts, what's new, and run through a few demos in Visual Studio 2010. WF4 will be an important topic for SharePoint and Dynamics CRM developers as new versions of these products will be built on this foundation. The powerful combination of WF and WCF made possible by a new application server, currently code-named Dublin, will make this an enticing technology for all .Net developers.

My colleage, Joseph Ackerman, will be giving presentations on SharePoint development, which will be based on a great deal of real world experience.

I hope to see you in Los Altos.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories:  
Actions:   E-mail | del.icio.us | Permalink | Comments (882) | Comment RSSRSS comment feed

Pulling Attribute Values into Variables from FetchXML Result

Friday, 26 June 2009 06:39 by James Downey

Over the years, I've recieved several emails from users of FetchXML Builder about how to pull the data retreived by CrmService Fetch method into variables. When you use FetchXML Builder, you will see rather quickly that the results are returned as XML so it makes sense to use the XmlDocument class to manipulate this data. So start by placing a "using System.Xml;" clause at the top of your C# file and modify the code below to fit your needs.

string result = service.Fetch(fetchXML);
string attributevalue;

XmlDocument doc = new XmlDocument();
doc.LoadXml(result);

foreach(XmlNode node in doc.DocumentElement.ChildNodes)
{
     attributevalue = node.SelectSingleNode("mycrmattribute").InnerText;
}

Currently rated 5.0 by 5 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories:   FetchXML
Actions:   E-mail | del.icio.us | Permalink | Comments (686) | Comment RSSRSS comment feed

XRM versus Packaged Applications

Friday, 26 June 2009 06:10 by James Downey

Whenever business users make a request to IT for a new business application, the traditional choice has been to build or buy. Cloud computing added a variation on the theme, to buy or build in the cloud. Line-of-business application platforms like Dynamics CRM provide a third choice, which falls someplace between buying and building. It is like buying in that there are licenses and some out-of-the-box functionality. It is like building in that you will need to define new entities, attributes and relationships, new workflow processes, and new user interfaces.

The advantages that Dynamics CRM has over building an LOB application from scratch using a programming framework like Java or .Net is that it makes it possible for business analysts, or other non-programmers, to build basic applications on their own and enables developers to build applications in dramatically less time. I listed many of the features that make this possible in an earlier post on XRM.

While Dynamics CRM cannot in all cases effectively substitute for specialized LOB applications, it does offer quite compelling advantages that make it worth considering.

Licensing
Licensing is the first obvious advantage. Rather than paying licensing fees per user per application, each user requires only a license to Dynamics CRM. No matter how many additional applications an organization builds on top of Dynamics CRM, no additional licenses are required.

Maintenance
Building applications on top of Dynamics CRM as opposed to buying multiple proprietary systems dramatically reduces maintenance costs. It removes the need for staffing a help desk with expertise on each specific application, following the upgrade schedule of multiple vendors, meeting the specific infrastructure requirements for each application, and provisioning accounts and managing permissions across applications. The consistency of the user experience across Dynamics CRM apps also reduces training costs. Just train users in Advanced Find once and they can query data across any application and build their own reports all without calling the IT department. The seamless integration with the ubiquitous Office products further enhances usability.

Customization
Because each business has its own unique business model and processes, there is almost always a need to customize LOB applications, even applications built for very specific purposes such as project management and time sheet entry. IT departments are often frustrated when trying to customize proprietary systems because of a lack of documentation and dependence on specialized consultants hired out at a high price by the software vendor. In some cases, a vendor will inform IT that the customization is simply not possible and that they will have to wait until the next release, which might include the requested customization as a feature. Dynamics CRM was designed to make customization easy, it is well documented and the work can be performed a power user. More extensive customizations require a .Net programming but this skill is more generally available than are the skills required to customize most proprietary applications.

Integration
There are few challenges in IT more frustrating than integrating applications that were never intended to play nicely together. Despite years of hype over XML, web services, and service oriented architectures, integration remains painstaking and expensive. The more LOB applications an organization installs, the greater the cost of integration. Dynamics CRM offers a simple answer. Create all of those applications within Dynamics CRM and they are integrated from the get go.  Just use the web interface to create relationships between new entities and existing entities and you have instant integration. This integration ties together the user interface, reporting, business logic and workflow.

So whenever you face that buy or build decision, give Dynamics CRM serious consideration.

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories:   xRM
Actions:   E-mail | del.icio.us | Permalink | Comments (239) | Comment RSSRSS comment feed

Ben Riga's Blog

Thursday, 25 June 2009 11:40 by James Downey
I met Ben Riga yesterday evening when he presented on Dynamics CRM at the SDForum in Mountain View, which is a short drive from where I'm working in Sunnyvale. The crowd of .Net developers were quite open to the platform and had a lot of questions. Check out Ben's blog and his many great presentations on Dynamics CRM as a platform.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories:  
Actions:   E-mail | del.icio.us | Permalink | Comments (0) | Comment RSSRSS comment feed

XRM User Group

Thursday, 25 June 2009 11:33 by James Downey
I'd encourage CRM developers to follow the events at the XRM Virtual User Group. It is a great way to keep up with what other developers are doing with Dynamics CRM such as extending it with Silverlight and SharePoint.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories:  
Actions:   E-mail | del.icio.us | Permalink | Comments (0) | Comment RSSRSS comment feed

CRM and XRM

Thursday, 25 June 2009 11:19 by James Downey

The Dynamics CRM team at Microsoft have been busy promoting the XRM theme. xRM means using CRM as a platform for line-of-business applications that either extend the traditional functionality of CRM or add new functionality completely unrelated to sales, marketing and service.

Whether we call it CRM or XRM, Dynamics CRM is an ideal platform for line-of-business for two fundamental reasons.

First, LOB applications are intended to make business processes more efficient. Because the primary business processes of an organization are those that serve its customers, it makes sense to build those processes into a tool that already contains customer data. I’m now working on a project that incorporates certain project management information into CRM. Building the functionality in CRM saves time because it is easy to relate the data to customers and opportunities. It also enhances the value of CRM because the CRM system can display more of a 360 degree view of the customer.

Second, Dynamics CRM offers tremendous technical advantages as a development platform for LOB applications.  I find the easiest way to think of the difference between what you get when you create a custom entity without any custom development.

  • Consistent user interface
  • Data model with SQL views filtered for security
  • Web Services Interface (both strongly typed and dynamic)
  • Event framework
  • Workflow Workflow Framework with easy-to-use interface and monitoring
  • End-user search and reporting with Advanced Find and a Reporting Wizard
  • Office integration (Outlook, Excel, Word)
  • Offline synchronization
  • Notes and Activities easily associated with records
  • Role-based Security
  • Import wizard for user's to easily import data from .csv files

Just click a button to create a new entity and the platform automatically generates what would have taken several months of development. And Dynamics CRM provides all of these additional features without limiting the developer’s ability to extend the solution through .Net coding.

So whether you call it CRM or XRM, the key point is not to limit the potential of the platform by staying with the traditional bounds of marketing, sales and service.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories:   xRM
Actions:   E-mail | del.icio.us | Permalink | Comments (767) | Comment RSSRSS comment feed

Great Press about Dynamics CRM

Tuesday, 13 January 2009 05:27 by James Downey

Paul Greenberg has posted a great blog entry about the amazing power of Dynamics CRM as a platform. Paul does a great job of explaining how five different companies were able to develop applications on top of Dynamics CRM in just five days. He was clearly blown away.

The research giants Forrester and Gartner have also stepped up their praise. Forrester has given Dynamics CRM very high rankings (above Salesforce.com) for the midmarket and enterprise and Gartner has ranked Dynamics CRM highly (above Salesforce) in its magic quadrant for contact centers.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories:  
Actions:   E-mail | del.icio.us | Permalink | Comments (398) | Comment RSSRSS comment feed

Dell Acquires Allin Consulting and Expands into Microsoft Services

Monday, 12 January 2009 18:13 by James Downey

Dell has acquired my employer Allin Consulting, a Microsoft Gold Partner and Microsoft Northwest Partner of the Year for 2008. Through the acquisition, Dell has expanded its consulting capabilities and now offers customers complete solutions from hardware to unified communications, collaboration, business intelligence, and business software – including Dynamics CRM.

Dell is committed to simplify IT. By offering customers complete solutions on the Microsoft platform with the promise of excellence and efficiency inherent in the Dell brand, customers gain the simplicity of a single vendor for hardware, software, and service.

Visit Dell's website for more information on the Microsoft Consulting Practice.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories:   Simplify IT
Actions:   E-mail | del.icio.us | Permalink | Comments (790) | Comment RSSRSS comment feed

Add by Business Days Workflow Activity

Sunday, 14 December 2008 17:31 by James Downey

Out of the box, Dynamics CRM workflows give users the ability to add and subtract days in order to dynamically populate attribute values. If you wanted to set a task due in two days, you could use the dynamic value editor below and click Add. Simple enough but what if you wanted to set the task due within two business days. Unfortunately, the out-of-the-box CRM workflow tool does not provide this functionality. When it adds by days it does not skip weekends and holidays.


 
Because I don’t care to work on holidays and weekends, I’ve created custom workflow activities that can add and subtract business days. After compiling the code and registering the assembly and activities with CRM, just add a step to a workflow and under Date Utilities select Add Business Days.


 
Enter the starting date for the calculation and the number of business days to add.


 
Make sure to give the step a meaningful name such as Calculate Due Date. 


 
You can then use this date to populate a date field in a following workflow step. For example, add a Create Record step and select Task. With the Due field selected, select the Calculate Due Date step and then select the Output Date from the drop down list below. 


 
And that’s it. Now just publish the workflow and try it out.

In order to add the date utilities to the CRM workflow tool, download the assembly and register it with CRM. Learn how to register a plugin on MSDN and then download the plugin registration tool.

Download Assembly

Download Code

(Code is a free download with no warranty and no support. If you send me a question by email, I’ll try to answer when I find time.)

If you prefer to compile the code yourself, create a Workflow Activity Library project in Visual Studio, add the three code files in the download, and add references to the Microsoft.crm.sdk.dll and Microsoft.crm.sdktypeproxy.dll.

I’m a big fan of custom workflow activities for Dynamics CRM. It is the ultimate in code reuse. Just write a custom activity and register it with CRM and then power users can use it as a building block to create powerful workflows.

 

Currently rated 4.7 by 3 people

  • Currently 4.666667/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Improving Sales Forecasts, Part 2

Saturday, 13 December 2008 05:19 by James Downey

Share knowledge and collaborate. Salespeople and others involved in forecasting will make better decisions if they have more knowledge available to them. The information may include the factors that went into the quantitative forecasts; information on relevant economic data such as leading indicators; industry trends; market research; and information on past forecasting accuracy including the rationale that led to errors. Marketers may have information to share on plans for pricing and promotions that would influence sales. Operations and logistics may have information available on problems that could limit availability and sales. Clearly, there is much to be gained in forecast accuracy when information is shared.

Document decisions. Requiring documentation for every qualitative adjustment to forecasts services two purposes. First, forecasters will give more thought to a forecast whenever they need to write out a rationale. Second, reviewing the rationales of past forecasts is a great way to learn how to improve forecasting. It is important not to request that a forecaster adjust so many forecasts that they would not have time to explain their decisions at least briefly. When a forecaster has too many forecasts to adjust, they will not be able to devote sufficient focus to each and will start to just enter numbers to get done with it.

Train the forecasters.  The analysts who perform the quantitative analysis obviously need training in quantitative techniques if they do not already have those skills and ongoing training is always helpful to refine skills. It is also beneficial to train salespeople in forecasting so that they better understand the basis for the quantitative forecasts, how best to interpret information that is provided to them, and what to consider when adjusting forecasts.

Include forecasting in job descriptions and performance reviews. Most people involved in forecasting do not consider forecasting an important part of their job and it is generally not part of performance reviews or compensation. Most salespeople consider forecasting an unpleasant distraction from their real work. Obviously, forecasts are unlikely to improve if the work is not taken seriously. That which is measured is rewarded and that which is rewarded gets done.

Integrate systems. Much forecasting and business analysis is performed in spreadsheets. Although convenient, spreadsheets can make collaboration difficult and result in islands of analysis and data inconsistencies.  An enterprise system for performance management such as Microsoft PerformancePoint Server can combine the convenience of spreadsheets with the power of centralized data storage and data warehousing. A CRM system would work well for collecting qualitative adjustments to quantitative forecasts and presenting forecasters with data drawn from an enterprise performance management system.
 
Measure, learn, and improve. To improvement forecasting, measure how well you are doing, learn from mistakes, and continuously refine the process. Learning to improve forecasts not only improves business efficiency but also encourages everybody in the organization to better understand the market environment and why products and services are selling or not. Forecasting is a key to operational excellence and greater insight into the business.

For additional resources on sales forecasting, I recommend the following two titles:

Sales Forecasting Management: A Demand Management Approach by John Tom Mentzer and Mark A. Moon

Excel Sales Forecasting for Dummies by Conrad Carlberg

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5