Extending CRM 2011: The Two Towers (actually there are quite a few more…) of Application Event Programming

In my previous post, I discussed the preparation for taking the Extending Microsoft Dynamics CRM 2011 certification exam.  More specifically, how I leveraged the Microsoft Official Curriculum (MOC) to prepare for the information covered in Chapter 5: Plug-ins.  In this post, I will review my preparation for Chapter 6: Application Event Programming.

Continue reading “Extending CRM 2011: The Two Towers (actually there are quite a few more…) of Application Event Programming”

Advertisements

Extending CRM 2011…the CRMHobbit attempts to get his first certification

I have been studying for the Extending CRM 2011 certification (MB2-876) on and off for the past 3 months.  Between work, home and other commitments…making time where I can to get ready.  Before I go any further, let me make a declarative statement.  I am NOT, nor do I pretend to be a developer.  Did I take C++ and C# in college?  Sure.  Did I pass the classes?  Sure…got an A and a B, respectively.  Was that 15 years ago?  You bet.  So why am I attempting Extending CRM 2011 as my first certification?  Great question…and I feel that I have a great answer.

I have been working with Dynamics CRM since version 3.0 and in various roles.  Currently, I am a CRM Architect and am sometimes finding my lack of development (slinging code) skills can be frustrating for me at times.  Not that it has affected my ability to execute during a project, just that I have to do some more homework than if I had that skill set.  Further, I think that having the knowledge that the Extending CRM certification would provide would benefit my development team in better design documents, my client in a higher level of consultation and my implementation team in a more knowledgeable team member.

So how does one who is admittedly NOT a developer tackle a certification which is mainly for those who are EXTENDING CRM through code development?  Well, there are many avenues to pursue.  However, personal history had automatically removed one of those options for me…the crash course.

Back in the Winter of 1998, I so desperately wanted to break into the IT field and my perceived path to do so was the Windows NT MSCE certification.  Not having much experience at the time, and now admittedly not doing much research on the topic, I thought that my only way to ensure success was through an in class certification program.  I got a student loan for a mere $8000 and enrolled at the University of Phoenix to take their 12 week MSCE program.  I thought things were going well and was about to start the TCP/IP portion of the program when it was announced that the Windows NT MSCE certification was being retired.  At the time, I didn’t realize that Windows 2000 would not be the standard within the Enterprise space for about two years.  I thought that it was all for naught.  I never sat for the exam, never got my certs…but will have that loan paid off middle of next year. 🙂

So, I was determined for this go around to use the training tools that were available to me on PartnerSource (e-learning and MOC documentation).  Side note, a short time after I began studying for the exam, Microsoft announced retirement of the CRM 2011 certifications as a result of the impending release of CRM 2013 later this year.  I know now that this is not a lost cause and the knowledge will still benefit me in the ways that I described earlier.

My appointment to sit for the exam is set…Friday, October 4th at 11:00 EST.  This week I will be doing my final review of the documentation and videos to prepare for the exam and cram as much knowledge into my little Hobbit head as possible.  I will be blogging every day this week with the topic that I covered, the media that I used and my thoughts on the topic.  I hope that for those of you that have considered pursuing certification will find my tale an inspiring one that motivates you to start your journey as I have done.

Shawn (CRMHobbit)

Planning and Executing an Effective CRM Solution Review

When a client facing review of the CRM solution is scheduled, there are a number of best practices which greatly improve the chances of giving the customer that “WOW” moment.  There are a number of practices that I have employed which resulted in great success in achieving client satisfaction during implementations. Continue reading “Planning and Executing an Effective CRM Solution Review”

Experiences with DemoBuilder for CRM 2011

Microsoft recently launched their DemoBuilder tool for Partners to create compelling demo environments that leverage not only Dynamics CRM 2011, but also integrate Office 365, Lync Online, SharePoint Online and Windows Azure services. Since the launch, I have used this tool a couple of times to create pretty powerful demos with relative ease.

Getting DemoBuilder Setup

To get setup with DemoBuilder, follow these simple steps:

  • Create a 30 day CRM Online Trial
  • Go to http://demobuilder.cloudapp.net/ and sign in with your Windows Live ID
  • Click the Run Demobuilder link in the Metro tile on the screen and follow the prompts to install the tool locally
  • Enter the information as requested within the screens of the DemoBuilder tool wizard.
    (It will take about an hour for the process to complete, so be patient…)

Figure 1: DemoBuilder – DemoHub Main Screen

For a great Introduction to DemoBuilder, check out Gareth Tucker’s Microsoft CRM Blog.

For this blog post, I wanted to go a little deeper with a few features of the DemoBuilder that I found particularly beneficial.

Demo Ager

An issue that plagues every consultant prior to a pre-sales or client demonstration is the problem of stale data within your CRM instance. I have had many experiences where I am creating new records to have more timely information within CRM to demonstrate a process to a client so that it has a more timely presentation. As you know, dependent on the scope of your demo, this could be a very time-consuming process. Microsoft has addressed this within DemoBuilder in two ways. First, DemoBuilder populates the entire system with relevant data across all system entities, including charts and dashboards. Second, a tool called Demo Ager is also included. This provides a very simple method of changing the “age” of some of your data, like Opportunities, within a Silverlight dashboard. As shown in the picture below, Demo Ager is accessed from the dashboard menu and has one simple control…a date selection control and a start button to execute the process. The tool also displays the “date last aged” of your demo environment. Once you select your new date for system data to be aged, the various entities will have a progress indicator displayed. When the green bar is shown, the process is complete.

Figure 2: DemoBuilder – Demo Data Ager

Ribbon Editor

There are several fantastic ribbon editors available via Codeplex, such as the CRM 2011 Visual Ribbon Editor , Ribbon Editor for Microsoft Dynamics CRM 2011 and the Pragma Toolkit: Ribbon, SiteMap Editor as well as the Ribbon Workbench from UserVoice. Check out my blog post that reviews the CRM 2011 Visual Ribbon Editor and its benefit as a learning tool here. Microsoft now provides a built-in ribbon editor within the DemoBuilder tool set. This tool has an easy to use interface with no configuration needed or discovery of what entities are available within the environment. Like the Demo Data Ager, the Ribbon Editor is accessible from the Dashboards navigation. I found this editor simple to use and one of the easiest to add functionality such as JavaScript to a ribbon button of all that I have used before. The DemoBuilder Ribbon Editor allows easy creation of ribbon buttons, tabs and groups with custom actions such as JavaScript, workflow or web resources. This is a great addition to a presales demo build toolkit.

Figure 3: DemoBuilder – Ribbon Editor

Social Activity

DemoBuilder provides an eye-catching integration to the Twitter feed of the Account within the CRM System. It passes search criteria to Twitter using the Account name and provides a real-time twitter feed of all tweets that are from the Account itself (@ADXStudio for example) or that reference the account within a tweet. Clicking on the link CRM Twitter Monitor takes you directly to Twitter with the search criteria passed. This is great functionality to demonstrate how CRM can provide immediate feedback to stakeholders within Marketing, Sales or Senior Management. The DemoBuilder only provides this functionality for demonstration at the Account level within CRM.

InsideView

Announced at Convergence 2012, InsideView integration delivers relevant business and social insights directly into Microsoft Dynamics CRM. Do things like monitor business events or discover relationships that get you introductions. This functionality is limited from the full features of the subscription version, but the integration within DemoBuilder provides insight to the immediate benefits that the depth of knowledge CRM can now provide to Account Management. This information was previously only available via channels outside of CRM and would require custom integration. The free InsideView CRM integration is available for any Dynamics CRM customer and can be installed using their deployable solution. If you want more information on this functionality, check out InsideView’s website or the Dynamics CRM Marketplace.

Figure 4: DemoBuilder – Social Activity and InsideView Integration

Customer Portal

Also included within DemoBuilder is the Microsoft xRM Customer Portal Accelerator. Installed and configured automatically with the Azure instance provided with DemoBuilder, it is the fastest method to show potential customers the power of portals when combined with Dynamics CRM without the concern for setting up a website or any other setup related concerns. If their needs are greater than what the standard Customer Portal Accelerator provides, I recommend checking out ADXStudio‘s portal offering…a very flexible and powerful solution applicable to many vertical industries.

In Summary…

DemoBuilder for Dynamics CRM 2011 is not only a great tool to energize your pre-sales demonstration capabilities, but provides quite an insight to the prospective customer on the extensibility of the Dynamics CRM platform. The features that have been presented, in combination with Office 365, SharePoint and Azure provide an incredible tool within your pre-sales demonstration toolbox to help win deals and understand your prospective customer’s pain points and objectives!

Using CRM 2011 as a Configuration Management Tool

During a CRM implementation it is imperative that not only a great solution is provided to the client, but also to understand how the components within that solution came to be and how they relate to the respective requirements and associated use cases.  This can be done in a number of ways, including the use of Team Foundation Server (TFS), SharePoint lists or other such solutions.  However, if your client does not have the ability or the desire to implement such solutions, you can easily track these changes within the CRM 2011 development environment.

By containing these changes within the CRM instance, your CRM implementation team has the ability to immediately document their changes along with leveraging native capabilities within CRM such as Advanced Find, Views, Export to Excel and SSRS Reporting to support the effort.

How to start?

To get started, create a custom entity within your CRM instance.  You can call it “Configuration Management” for example.  The attributes to include within this entity will obviously vary based on your implementation, however, I have mocked up an example shown in the screenshot below:

Config Mgt
Mockup of a sample "Configuration Management" entity used to track changes within your CRM implementation

TIP: It is important to remember NOT to include this entity or associated entities within the CRM solution which will be exported from the development environment.  This information would not need to be included in other environments as the solutions are promoted.

Best Practices

Attributes to include as a best practice would be items such as:

  • Description of the change
  • Type of change (Add, Change, Delete, etc.)
  • Component Type (Entity, Attribute, Option Set, View, Chart, Jscript, Web Resource, etc.)
  • Detailed description of the function of the component (This also should be the description documented upon creation of the item
  • Related components
  • Unit Testing Information (Who is testing? When? What is the expected result?  Actual? What is the status of the testing?)
  • Traceability details (What requirements are associated?  Use Cases? Business Processes?)

Traceability

In order to maintain strong traceability between the component and the requirements and/or use cases and business processes, additional entities can be created to document these items and shown on the configuration management entity via SubGrids.  However, if the project is an Enterprise level implementation the cost/benefit may outweigh the time and effort required for this level of data entry if an import is not feasible.

In that event, a memo field to provide the details of the associated requirement numbers, use cases, etc. should suffice.  This information can be extracted from CRM as indicated earlier in the post through an Excel export from a view or through the creation of an SSRS report to support the documentation.

I hope that you have found this post informational.  Have you tried this before?  Please share your experiences by entering a comment below.

Using Dialogs to Create an Application for Services

Dialogs within Microsoft Dynamics CRM are not only used for simple prompt and response data entry, but can be used to create a complex application for services.  In this example, we will create a pre-qualification application for day care and tutoring services that could be used by any business providing these types of services.

The use case for this scenario is that we have a call center specialist who is taking inbound requests for prequalification for services for their child.  The call center specialist uses the Case entity within CRM to track the inbound requests from the parent/custodian requesting services.  The method for prequalification will be presented to the call center specialist via a CRM dialog.  The information captured within the dialog will be used in prequalifying the child for services, as well as the creation of records within CRM to track the process and its status.  In this post, we will focus on the dialog process to collect the information to determine the prequalification for services.

Day Care Prequalification criteria
In order for a child to receive day care services in this scenario, the child must meet the following requirements:

  1. Must be 5 years old
  2. Must reside in the state

Tutoring Prequalification criteria
In order for a child to receive tutoring services in this scenario, the child must meet the following requirements:

  1. Must reside in the state
  2. Must be under the age of 12
    or
  3. If older than the age of 12, has Special Needs

Once the prequalification criteria has been reviewed, a child’s Parent/Custodian must then identified for Priority Services based on a number of additional criteria, such as number of members in a household, family income in comparison to National Poverty Levels as well as job/training requirements.

Dialog Process Design

Main Daycare/Tutoring Dialog
Initial dialog to begin the Daycare/Tutoring prequalification process.

The dialog to collect the information for both day care and tutoring prequalification will require an on-demand dialog associated to the Case entity, several child dialogs for the sub-processes, as well as logic using check conditions and conditional branches.  The full design could also include the use of variables, queries, create records, update records and potentially a custom workflow which will call an Eligibility Validation Engine using BizTalk.  For this blog post, we will focus on the portions of the dialog design used in collection of information for day care and tutoring prequalification.

Dialog Requirements

 

tutoring child dialog
Child dialogs, such as this tutoring example, allow for branching of a process based on input from the user within the dialog.

The dialog needed to not only collect the information in an efficient manner, it also required the ability to display screens only when required.  For example, within the tutoring prequalification process, there is a main page which then presents a page for questions pertaining to Priority Service Groups.  Dependent on how these questions are answered, it may be required to gather additional information for the applicant based on three additional areas of inquiry.  Each additional page displays only if the prior criteria is unmet.

Check conditions, conditional branching and child dialogs allowed the seamless navigation of an entire workflow although there are many branches within the business process.

Daycare/Tutoring dialog
Workflow diagram which depicts the check conditions as well as the conditional branching of the child dialogs within the prequalification process.

As stated earlier, the call center specialist is now able to launch a prequalification process based on the business process for day care and tutoring directly from the Case.  This process allows the specialist to address either or both program prequalification requests by the client and collect all of the pertinent data without having to have to navigate away from the Case.  Upon completion of the full design, the specialist will also avoid wasting valuable call hold time in the creation and maintenance of additional records required by the process.

Resources

I am providing an unmanaged solution with all of the dialogs, both on-demand and child for the entire process.  You can download it here from my SkyDrive.  As the design matures, I will update you with additional solution files.

If you are looking for more information on CRM dialogs and best practices, I recommend that you visit Richard Knudson’s CRM Trick Bag.  There are many fantastic dialog related articles.  I have no problem stating that he taught me everything I know.

Lastly, there are some great videos on CRM dialogs available on YouTube.  I highly recommend this video, also created by Richard.

I hope that you found this post beneficial, possibly helping you understand some of the power of dialogs within Microsoft Dynamics CRM 2011.  I would love to hear how you have implemented dialogs with your customers!

Achievement Unlocked – CRM User Value

Achivement Unlocked - CRM User Value
Understanding what your provides your clients the same feeling as when an XBOX achievement pops on-screen goes a long way to achieving user value and adoption.

I celebrated the 10th anniversary of the XBOX this week by playing and completing Call of Duty: Modern Warfare 3 (on Veteran difficulty…just sayin’). As I repelled the seemingly endless waves of the fictitious rogue Russian Army throughout Europe, a couple of achievements popped-up  on screen after completing a level. That made me think…while the achievement does slightly inflate my ego and provide a brief, albeit unwarranted, sense of accomplishment, it also tells me that I am playing the game correctly.

So, I thought, it stands to reason that a similar tactic could be taken when it comes to CRM implementations. No, I am not saying that users get “achievements” when they successfully track an e-mail or complete a task…(although that would be kind of cool) but there are ways within CRM to provide users with cues, both visual and process based to inform them of successful use of the system. This can provide an easier path to higher user adoption for the new or hesitant CRM user. Some examples include Dashboards, Dialogs, Notifications and Color coding indicators.

Dashboards
Dashboards provide insight to management on business KPIs such as an Opportunity

Dashboards can present user relevant information to drive adoption

pipeline reporting, which clients have received touch points, or case distribution by subject  area. When combined with Goals, they open a window into a users success working in CRM. User based metrics can motivate a new CRM user to higher adoption levels based on a feeling of accomplishment and overall user value. These metrics can also provide training and support areas the ability to analyze negative usage trends that could lead to training opportunities to improve user adoption.

Dialogs
Dialogs provide the ability for users to update CRM records through an on-screen prompt and response mechanism. This improves the chances for more accurate data collection as users are directed to what information is required and how to enter it correctly. Tips on best practices or corporate procedures can also be included within the pages of the prompt and response. For new CRM users who may feel intimidated by the sheer number of fields available within a contact record, for example, dialogs cut right to the specific needs of the business process. This reduces the feeling that CRM “wastes time” or working in it can be a hassle. Also, dialogs can launch processes to automate follow up actions or workflow based on the prompt and response page input.

Notifications

Notifications are available natively through the CRM Outlook client for appointments, tasks and phone calls that a user is assigned within CRM. However, these notifications are simply reminders to take the action. CRM also allows for custom notifications such as e-mails sent to the user to inform them that an activity has been assigned, approval is required, or a phase of a sales process within an opportunity has been completed. These notifications can contain links to underlying activities or detailed process information. How you choose to notify your users about actions is limited only to your imagination.

Color coded indicators
Adding color indicators to CRM provide users immediate feedback on the status of a record or the result of actions taken on the record. Gonzalo Ruiz has written a great article on his blog on a few methods for adding color to the CRM experience.

In summary, Microsoft Dynamics CRM provides a rich platform to not only support your relationship management initiatives, but do so in a manner that enables your sales force and support staff to achieve more.