Sonoma Partners Microsoft CRM and Salesforce Blog

CRM Tips and Tricks from Recent Denver CRMUG

Our project management and quality assurance teams meet on a weekly basis to showcase what we have built for customers and share any insights that we have learned. I was recently given the opportunity to share some of these "tips and tricks" with the Denver CRMUG. I've received a lot of good feedback from these items at the meeting so I thought I would share them with a broader audience. Hopefully you all will find them useful as well.

Issue #1:

You receive errors on security permissions which don’t seem logical



  • ALWAYS, ALWAYS, ALWAYS create new security roles by copying an out of the box role and then remove permissions from there.
  • Check the Privileges by Message documentation on MSDN to make sure everything is covered (Mike previously blogged about this issue back in CRM 3.0, but I included the CRM 4.0 link and I figured a gentle reminder wouldn't hurt)

Issue #2:

Want to make changes to the site map



Issue #3:

You need to include date fields on mail merges but don’t want to include time stamps



1. Add date field added to the xml document (for example, «Created_On»)

2. Highlight the field, right click and select Toggle Field Codes:

 Word 1

 3. Add the formatting switch to the  field:

 Word 2 

Formatting will display in the mail merge document:

 Word 3 

4. For a list of all formatting options:

Managing CRM Outlook Contacts

One huge strength of Microsoft Dynamics CRM is the ability to synchronize your CRM contacts with Microsoft Outlook.  This native integration allows you and your team to make changes to CRM contacts and have that data flow down to Outlook and ultimately your mobile phone device (Windows Phone, iPhone, BlackBerry, Android etc.).  Traditionally, most Microsoft Dynamics CRM users will manage the their Outlook contacts using the local data groups within the CRM for Outlook client.  They will add groups for specific contacts by account or other business logic.  While this is the full intention of managing local data groups I have found that an even easier solution for ongoing management of contacts is a combination of creating 1 local data group rule with a custom entity within CRM.  Here’s how it works:

Create a new Custom Entity within CRM and call it “Outlook Contacts.”


Next, create a 1:N relationship between the Outlook Contact and native Contact entity in the CRM database.  No other fields are required.


Add the Contact lookup attribute to the Outlook Contact form (and you are almost finished).


Publish your entity and you are now ready to setup your Local Data Group.  Simply create a local data group that subscribes to your My Active Outlook Contacts and make sure that your local data group is active.  The final step is to add contacts to your new Outlook Contacts entity.  You will manage all the contacts you wish to synchronize to Outlook through this new custom entity. 


This is a great way to manage the contacts you wish to synchronize to Outlook and rather than going back into Local Data Groups you can simply use the native entity forms within CRM to manage your data.

Thanks to my fellow Sonoman’s for implementing this concept at Sonoma Partners!


Updated Microsoft Dynamics CRM Statement of Direction – April 2010

While checking out various blogs this morning, I noticed that a Microsoft Australia blog posted an updated Statement of Direction document for Microsoft CRM. I couldn’t find this new version on the Microsoft PartnerSource website but it does appear to be legit (UPDATE: I did receive a copy of this document from official non-blog MSFT sources). The Statement of Direction document outlines the future direction of Microsoft Dynamics CRM through to the next major release. Microsoft released new versions of this document for CRM at the following times:

While of course the April 2010 document contents are very interesting (at least for a CRM geek like me!), it is just as interesting to see what Microsoft changed from version to version. I took a look at the April 2010 document and compared it to the August 2009 document to see what changed, and there are some big changes! Just look at the differences between the table of contents when comparing the new version to the pervious version:

August 2009 Statement of Direction April 2010 Statement of Direction

Microsoft Dynamics CRM 4.0 Roadmap

  • Microsoft Dynamics CRM Mobility
    • Mobile Express for Microsoft Dynamics CRM 4.0
    • Ten Digits Alliance
  • Accelerators for Microsoft Dynamics CRM 4.0
    • What are Accelerators?
    • Accelerators Update
      • Analytics
      • Business Productivity Newsfeed
      • Business Productivity Workflow Tools
      • Business Data Auditing
      • Miller Heiman® Sales Methodology
      • Sales Performance International (SPI) Sales Methodology
      • Target Account Selling (TAS) Sales Methodology
      • Accelerators Localization
    • Accelerators Wave 2
      • Social Networking
      • Portal Integration
      • Partner Relationship Management (PRM)
      • eService 2.0
      • Event Management 2.0
  • BizTalk® Server Integration
  • List Web Part for Microsoft Dynamics CRM 4.0
  • Microsoft Dynamics CRM 4.0 for Microsoft Outlook
  • Microsoft Dynamics CRM 4.0, Windows 7 and Windows Server 2008 R2
  • Microsoft Dynamics CRM Adapter for Microsoft Dynamics GP

On-Demand Microsoft Dynamics CRM

  • Microsoft Dynamics CRM Online
    • Microsoft Dynamics CRM Online March 2009 Service Update
    • Microsoft Dynamics CRM Future Service Updates


Microsoft Dynamics CRM “VNext”

  • “VNext” to deliver a new level of user productivity and collaboration capabilities
    • Continue to improve the end-user experience
    • Increase accessibility through the Microsoft Office “ribbon” interface
    • Improve productivity through a streamlined user interface
    • Drive user adoption through personalization
    • Facilitate collaboration with SharePoint® integration
    • Enrich business insight through improved business intelligence
    • Balanced workload management for more efficient use of resources
  • “VNext” to deliver continued enrichment of the core CRM Capabilities
    • Contact and Account Management
    • Team-Based Collaboration
    • Call Center and Unified Communications Support
    • Extended Sales Territory Management
    • Knowledge Management
    • Other areas
  • “VNext” to provide a Best-of-Breed Business Solution Platform
    • Solution Management
    • Secure Code on the Server
    • Integration and connectivity
    • Service-Oriented Architecture
    • Native Windows Communication Foundation (WCF) connectivity
    • Scalable, Federated security
    • Extended Event Pipeline
    • Other areas

Microsoft Dynamics CRM 4.0 Roadmap

  • Accelerators
    • Social Networking – Available
    • Partner Relationship Management (PRM) Accelerator – Available
    • Portal Accelerators – Q2 2010
    • Customer Care Accelerator (CCA) – Q2 2010
  • Solutions
    • Non-Profit Solution for Microsoft Dynamics CRM – April 2010
  • Integration Tools
    • Microsoft Dynamics CRM Adapter for Microsoft Dynamics GP – May 2010
    • Microsoft Dynamics CRM Adapter for Microsoft Dynamics AX6 - 2011
    • Microsoft Dynamics CRM Adapter for Microsoft Dynamics NAV2009 – 2011
  • Developer Tools
    • Microsoft Dynamics CRM SDK Update – May 2010

On-Demand Microsoft Dynamics CRM Roadmap

  • Microsoft Dynamics CRM Online
    • Microsoft Dynamics CRM Online May 2010 Service Update
    • Microsoft Dynamics CRM Online “H2” 2010 Service Update
    • CRM Online International Market Expansion – Aligned with CRM “5”

Microsoft Dynamics CRM “5” Roadmap

  • User Productivity and Collaboration
  • CRM Capabilities
  • Best-of-Breed Business Solution Framework

A few things jumped out at me while reviewing the differences:

  • The April 2010 document states Microsoft Dynamics CRM “5” is targeted for “release in the second half of 2010”, which lines up with the “targeted for release in 2010” guidance MSFT gave back in August. It appears to be on schedule for release, and that is great news.

  • Where did XRM go?!?! If you were at Convergence 2010, you couldn’t swing a dead cat without hearing the phrase XRM. It was EVERYWHERE. Now Microsoft removed the XRM section from the April 2010 Statement of Direction (although it does get one or two mentions throughout). While of course XRM is more of a concept than specific features or functionality, the removal of XRM as its own section from the April 2010 is interesting to note.

  • Microsoft now refers to “VNext” as “5”. Of course this isn’t a huge surprise and it’s no guarantee that Microsoft Dynamics CRM 5.0 will be the official product name but I have been calling it “5” for a while.

  • No mention of the TenDigits mobile alliance anymore, it appears they are no longer part of the official mobility story. Actually Microsoft removed all of the mobility information from the April 2010 Statement of Direction. Weird.

  • See ya BizTalk integration! Microsoft is shifting their integration focus to the new Microsoft Dynamics CRM Adapter, and they even announced release timings for AX6 and NAV2009. Very cool. However, in BizTalk’s defense Microsoft did state that there will be “An updated Microsoft BizTalk Server adaptor for Microsoft Dynamics CRM 5”.

  • The table of contents in April 2010 for V5 functionality now has three bullets, much less than compared to the 25 bullets from August 2009. However this is strictly a formatting change because the sub-bullets in the April 2010 match almost identically with the August 2009 version. I did notice that “Knowledge Management” was removed from the April 2010 document but they added “Performance Management” in its place.

  • There is a new version of the Microsoft CRM SDK coming in May 2010 (this month!). It will include lots of great new functionality such as:
    • An enhanced code generation tool called CrmSvcUtil.exe which generates .NET classes based on the unique schema and relational structure of each CRM database. Developers can then code against Microsoft Dynamics CRM APIs using these strongly-typed classes.
    • These generated classes simplify the creation of queries and optimizes returned data from both CRM Online and CRM on-premises. Queries that require data from related entities can now be simplified to a single line of code, where previously it required multiple lines of code.
    • Classes generated by CrmSvcUtil.exe enable developers to streamline integration and connectivity with 3rd party applications (mash-ups, portals, etc.) that need access to Dynamics CRM data through the CRM APIs
    • LINQ for Dynamics CRM translates a LINQ query expression into a CRM SDK Query. This introduces standardized and consistent patterns to easily query and update CRM data. LINQ is a Microsoft .NET Framework component that provides a standardized way to query across many different data sources. LINQ is a standard .NET universal query mechanism that can be extended to support any type of data store.
    • A Portal Integration toolkit which provides a scenario-based set of resources for developers to improve portal integration efforts. This toolkit enables developers to create integration services between external portals and Dynamics CRM more efficiently.
    • Connectivity & Caching management which provides improved scalability and application efficiency for portal applications connecting to CRM Online. Developers can now specify a single-line connection string to connect to the CRM API whether that is CRM Online, On-Premises or Partner Hosted.
    • The Portal Integration toolkit also provides sample code and guidance on how to best connect portals with Microsoft Dynamics CRM.
    • Portal accelerators provide complete reference sample applications to get you up and running quickly.
Topics: Microsoft Dynamics CRM 2011

Visually Differentiate Your CRM Environments

One of the questions in my Convergence sessions last week was how can you modify Dynamics CRM to clearly let the users know which environment they are testing to avoid accidentally doing something on the wrong environment.

I really like redeploying the production system into our test environment as that provides the latest data and also contains all of the users and business units configured. We can then apply our newest changes and test appropriately. One potential downside to this approach is that our test users can sometimes accidentally end up in the wrong system when testing if they aren’t careful.

While, you could setup different user accounts for your test team, I find a more visual indicator to be the most effective. So, one approach we have used to distinguish between development, test, and production is to alter the masthead image and change the background color scheme so that our developers and test teams can be sure they aren’t accidentally modifying production data.

Since I will be showing you some unsupported changes, let me make sure I am clear with my warning:
NOTE: The css changes shown are completely unsupported and should only be done on development or test environments.

Changing the masthead

  • Replace [webroot]\_imgs\masthead.jpg with your own copy (named the same). I am not a designer so I kept the example simple (and ugly).

Changing grid background color

  • Update the body.stage style in the css file [webroot]\_common\styles\global.css.aspx
  • Change background-color to color of your choice
  • Comment out the background repeat/image settings
<% if (CrmStyles.IsRightToLeft) { %>
<%} %>
border-top:1px solid #6893cf;
background-color: #00ff00;
padding: 4px;
/* background-repeat: repeat-x;
background-image: url(/_imgs/app_back.gif); */

This will produce the following result:


You can similarly change the form’s background color.

Changing the form background color

  • Update the style in the css file [webroot]\_forms\controls\Form.css.aspx
  • Add a background-color with color of your choice
  • Comment out the background repeat/image settings
/*background-image: url(/_imgs/form_back.gif);
background-repeat: repeat-x;*/


Also remember that since you are changing core CRM files, a rollup/hotfix could overwrite them. So, keep backups of the original files as well as documentation on your changes in case you need to reapply them.