Archive

Archive for November, 2006

Microsoft Dynamics CRM: E-Mail To Case for free

November 30, 2006 Leave a comment

Dear CRM Community,

I was invited by the Microsoft CRM Team to write a blog entry for you.

I thank the Microsoft CRM Team for this privilege.

For this blog entry, I decided in favor of how to create a button for the mail form. With this button a user can create a new case, based on information of the mail. I took this decision because it shows some typical procedures in the world of Extending Microsoft CRM and it is a real world example which could be used for your own projects.

After a click on the button “E-Mail To Case” a new case and a relationship to this mail is created. The name of the case is the name of the mail:


 
To create such a button the following technology is used:

• Visual Studio 2005
• Microsoft ASP.NET 2.0
• Microsoft CRM 3.0 Web Services
• isv.config.xml and web.config
• Microsoft CRM 3.0 Reporting Viewer

With Visual Studio 2005 an ASP.NET 2.0 based web page CreateCase.aspx is created. This web page is used to create the new case with the support of the Microsoft CRM 3.0 Web Services and is registered in the isv.config.xml as a new toolbar button.

The Microsoft CRM 3.0 Reporting Viewer is used to open the mail with the updated reference to the case. You can implement this approach by the link as follows:
http://danubecrm:5555/CRMReports/viewer/drillopen.aspx?ID= {51749F60-B256-4671-B909-FD849ED5A99B}&OTC=4202

The needed procedures for this sample are written in a document that I uploaded to Microsoft CRM Sandbox website. You can find the document here: http://www.gotdotnet.com/codegallery/releases/viewuploads.aspx?id=b6499eb0-0eae-4597-b38e-ee9cbc71a404. Note from JaAG: Because of recent problems with the GotDotNet server you may have to enter the site twice to get to this page.

Please kindly note that I cannot take over any liability regarding the functionality and quality of this sample. But I would be pleased to receive any comments from you with reference to this demonstration. May be you also have some ideas about additional functionalities such as setting an initial subject of the case and preventing a second click on the button.

Best regards,
Jürgen Beck
MVP for Microsoft CRM

Categories: CRM, Microsoft Dynamics

Microsoft Dynamics CRM: dashboard sales pipeline

November 28, 2006 Leave a comment

We used to have a long list of reports in MSCRM version 1.2. For MSCRM version 3.0 (v3), when we moved to SQL Reporting Services (SRS), many of these reports were consolidated and the number of reports that v3 shipped with was dramatically reduced. One of the reports became a consolidated version of many old reports – the Sales Pipeline Report. Though we lost the pretty pipeline to show the sales pipeline report when we moved away from Crystal Reports, we also incorporated interesting functionality using the power of SRS into this report. I’ve seen a few messages on the newsgroups asking about what happened to the old sales report where people could see the sales by each user etc. So here’s how one may slice and dice this report to view the sales pipeline of an organization.There are multiple grouping areas on the report:Group By Sales Process – this will show the Sales Processes that are active and have at least one opportunity with that sales process running on it. The opportunities that do not have a sales process running on them will be displayed under the “None” bucket.

Group By – The options here are

  • Sales User – This groups the Sales Pipeline by a user. So on the X-axis of the graph, one would see a list of sales users and on the Y-axis will be the revenue. The next grouping (Revenue) explains how the revenue is calculated. Drilling down into the detailed report (by clicking on the individual bar in the bar chart) would display a detailed opportunities list that combines to make up the total revenue for the user. Clicking on the line items of this detailed report would open the actual opportunity. If any changes are made to the opportunity, refreshing the report will update the report to incorporate these changes. Each drill down detailed report displays the opportunity name, sales stage, probability to close, revenue (calculated based on the “Revenue” selection as explained below) and the owner. This is true for all the detailed reports mentioned below.
  • Sales Territory – This would become useful if the salespeople are organized by Sales Territories. In that case this would enable the sales managers/VPs to see the pipeline based on the territories. Since each sales user can have one territory, this report would group the revenues of those sales people together to give a consolidated territories view. Drilling down into the detailed report shows the opportunities grouped by sales territories.
  • Customer Territory – This would become useful if the opportunities have potential customers that already are “Accounts” in CRM and those accounts have Territories defined on them (Territories can be specified only for accounts in the “Details” tab of an account). Each bar is also a drill down detailed report that can be opened by clicking on the bar.
  • Date – This displays the sales pipeline report by the estimated close date of the opportunities. Each bar is a drilled down detailed report.
  • Rating – This displays the sales pipeline report based on the rating of the opportunity. Opportunity ratings are customizable through the Customization area. If the ratings are customized, the new (customized) names would show up in this report. Each bar is also a drill down detailed report.
  • Sales Stage – Sales stage grouped report would be useful if the opportunities have Sales Processes defined on them and the “Grouped by sales process” has a sales process selected. In that case, the report will display the opportunity grouping based on the sales stages of the selected sales process. Each bar is also a drill down detailed report.

Revenue – The options here are

  • Estimated Revenue – This is the revenue that is displayed on the Opportunity detail form as the revenue amount. The revenue may either be calculated or user provided. When this option is selected, all the drill down detailed reports (mentioned above in the “Group by” area) and the bar chart y-axes will display the Estimated Revenue amount.
  • Weighted Revenue – This is calculated as [(Estimated Revenue * Probability to Close)/100]. When this option is selected, all the drill down detailed reports and the bar chart y-axes will display the Weighted Revenue amount.

Here are two sample screenshots

Grouped by Rating and using Estimated revenue:

Same set of opportunities Grouped by Weighted Revenue

Overall, the sales pipeline report is a complex report that could help slice and dice your data in different ways. There may be some reasons why this report works or doesn’t work for you and I’d love to hear them.

Manisha Powar

Categories: CRM, Microsoft Dynamics

Microsoft Dynamics CRM: Sending email via workflow as different user

November 17, 2006 2 comments

One of the very common customer ask regarding emails and workflow is how to send emails from workflow where the “from” field is set to some one other than the owner of the workflow rules. Two simple scenarios could be:

a) When a contact is created an automated thank you email should be sent from an alias such as helpdesk (queue).
b) When a contact is created an automated thank you email should be sent from the owner of the entity rather than workflow rule owner.

To achieve this, we first write a simple .net assembly that sends an email using a predefined email template to the requested party. Next, we use this .net assembly in the workflow rule to send the email.

Steps involved are:

1) Creating a .net assembly:

a. Create a sample project of name “CrmTest” whose output type is set to class library. I.e. it outputs a dll.
b. Add the web references to the project pointing to the crm server you have. The web reference url looks like: http://localhost/mscrmservices/2006/crmservice.asmx
c. Copy the below code in .cs file, compile the code and place the output dll into the assembly directory on the server.(C:\Program Files\Microsoft CRM\Server\bin\assembly)

using System;

using System.Text;

using System.Xml;

using CrmTest.localhost;

namespace CrmTest

{

      public class Test

      {

            public void SendTemplateEmailAs (

                  string callerXml,

                  Guid senderId,

                  string senderType,

                  Guid recipientId,

                  string recipientType,

                  Guid templateId)

            {

                  SendTemplateRequest request = new SendTemplateRequest();

                  // Set sender.

                  request.Sender = new Moniker();

                  request.Sender.Name = senderType;

                  request.Sender.Id = senderId;

                  // Set recipient.

                  request.RecipientType = recipientType;

                  request.RecipientIds = new Guid[] { recipientId };

                  // Set regarding.

                  request.RegardingType = recipientType;

                  request.RegardingId = recipientId;

                  // Set email template.

                  request.TemplateId = templateId;

                  // Create crm service.

                  CrmService svc = new CrmService();

                  svc.Credentials = System.Net.CredentialCache.DefaultCredentials;

                  svc.Timeout = -1;

                  // For auditing pupose set the callerId value.

                  svc.CallerIdValue = new CallerId();

                  // When seding as helpdesk set teh called id from the callerXml.

                  svc.CallerIdValue.CallerGuid = GetUserId(callerXml);

                  // When sending as the entity owner set the caller id to sender.

                  //svc.CallerIdValue.CallerGuid = senderId;

                  // Execute the request.

                  svc.Execute(request);

            }

            private Guid GetUserId(string callerXml)

            {

                  //Note: the callerXml is of the fomat:

                  //callerXml = “<caller><userid>684F160A-E4D9-4C3C-ADDD-1464D2B14EB2</userid><merchantid>F671739E-189A-4EE8-AF86-66DC8CF5F6C4</merchantid></caller>”;

                  XmlDocument xmldoc = new XmlDocument();

                  xmldoc.LoadXml(callerXml);

                  return new Guid(xmldoc.DocumentElement.SelectSingleNode(“//caller/userid”).InnerText);

            }

      }

}

2) Registering the .net assembly with workflow.

a. Registration for sending email as helpdesk (Queue)

<method name=”SendTemplateEmailAsHelpDesk” assembly=”CrmTest.dll” typename=”CrmTest.Test” methodname=”SendTemplateEmailAs” group=”Utility”>

            <parameter name=”callerXml” datatype=”caller”/>

            <parameter name=”SenderId” datatype=”lookup” entityname=”queue”/>

            <parameter name=”SenderType” datatype=”string” default=”queue”/>

            <parameter name=”RecipientId” datatype=”lookup” entityname=”contact”/>

            <parameter name=”RecipientType” datatype=”string” default=”contact”/>

            <parameter name=”TemplateId” datatype=”lookup” entityname=”template”/>

</method>

b. Registration for sending email as entity owner (system user)

<method name=”SendTemplateEmailAsEntityOwner” assembly=”CrmTest.dll” typename=”CrmTest.Test” methodname=”SendTemplateEmailAs” group=”Utility”>

            <parameter name=”callerXml” datatype=”caller”/>

            <parameter name=”SenderId” datatype=”lookup” entityname=”systemuser”/>

            <parameter name=”SenderType” datatype=”string” default=”systemuser”/>

            <parameter name=”RecipientId” datatype=”lookup” entityname=”contact”/>

            <parameter name=”RecipientType” datatype=”string” default=”contact”/>

            <parameter name=”TemplateId” datatype=”lookup” entityname=”template”/>

</method>

3) Constructing the workflow rule.

a) Workflow rule for sending email as Helpdesk (queue). Note you will have to create a queue with name helpdesk before creating the workflow rule.

b) Workflow rule for sending email as the entity owner.

4) Try it out :o).

Notes:
1) Ensure that the Bulk email service is running as the send email template users the bulk email service to send emails.
2) The invoking user should have “append to” privileges for queues for the workflow rule “Send as helpdesk” to work. During automatic invocation the rule owner credentials will be used and if invoked via the UI, the callers credential will be used.

Shashi Ranjan

Categories: CRM, Microsoft Dynamics

Microsoft Dynamics CRM Elearning… Anytime, Any Place, at Your Pace

November 14, 2006 Leave a comment

Would you like to increase your productivity without spending time away from your home or office? eCourses are our newest training vehicle to help your people learn how to use Microsoft Dynamics products more quickly, easily, and conveniently—giving you a quick start on improving your business processes, customer relationships, and bottom line.

Why Experience E-Learning?

• E-Learning for Microsoft Dynamics provides a simple and effective way for you to learn at your own pace and on your own schedule. 
• E-Learning is available online and on demand so you get maximum convenience through virtually 24-hour-a-day access—without costly travel or extra time away from the office to attend training.
• Lessons can be stopped and restarted, skipped or repeated, rewound or fast-forwarded. Hands-on exercises and interactions including, quizzes and puzzles, reinforce learning.
• E-Learning generally covers a broad range of topics at a high level, and typically does not exceed 60 minutes in length.
• Also, with E-Learning, you are able to revisit material as many times as needed within your subscription period to ensure you have working knowledge of the topic and are comfortable with material you have covered.

Written by qualified subject matter experts, E-Learning for Microsoft Dynamics offers multi-media, rich components such as:

• Graphics,
• Animation,
• Simulations
• Demonstrations
• Text,
• Audio
• Full motion Video

To understand more about what an E-Learning experience will be like, please click on eCourse Demonstration link try a free demonstration:

eLearning Demonstration

Get Learn 2 Plug In

For more information on E-learning options, use the following links:

Already tried E-Learning? Do you have an opinion or suggestion about the tool or the content? Let us know how E-Learning works for you! We’d love to hear from you..

If you have any questions about E-Learning or other options, feel free to contact me, or any of the CRM Training Team members. 

Thanks,
Debbie Larson

Categories: CRM, Microsoft Dynamics

Microsoft Dynamics CRM Ensuring Quality: Scenario Based Testing

November 13, 2006 Leave a comment

Damien Lindauer from Microsoft CRM team wrote:This morning I spent about an hour with one of our partners and their customer discussing how we ensure quality in the design and development of Microsoft Dynamics CRM.  The request for my input was not surprising (nor unusual) given the highly customizable and extensible nature of our product, as well the stringent requirements around security, reliability, data integrity, and performance that are necessary to mission critical line of business applications.  During that conversation, it occurred to me that this topic would be interesting and potentially useful to the broader MS CRM community.  After all, ensuring quality in and end-to-end solution doesn’t end with the initial installation of the core software.  With this said, there are many facets to our internal engineering systems, processes, tools, and approaches.  Thus, I will be blogging over time about various aspects of our quality assurance approaches in bite sized chunks.While there are many testing models, levels, and techniques used in the industry, our overarching testing strategy is Scenario Based Testing.  This is not meant to imply that we do not utilize or employ aspects of other testing modes (which we do), but rather that the primary determination of our products readiness for general usage is rooted in a “scenario” approach.  I should note that Scenario Based Testing is not a new testing model or concept.  However, as with many such models, the depth at which they are employed varies greatly within the industry.  While there are various definitions for Scenario Based Testing, the one I currently use is as follows:“Scenario Based Testing is a holistic approach rooted in component interdependence & realized through focus on end-to-end usage scenarios.”Okay, I would agree that that definition sounds a bit wordy.  What it really suggests is a testing model that exercises a products functionality in the ways in which real partners and customers would actually use it.  The point about component interdependence simply is a recognition of the fact that verifying that an individual component behaves as specified does not mean that an end-to-end system (with various dependencies and interconnection points) will function as designed.  This is even more important for a product like MS CRM because our platform relies heavily on (and interacts with) many components for which we do not directly develop or  test.  Our move toward Scenario Based Testing within our R&D organization started with first education and socializing the concept within our test community.  This was not hard as our test engineers uniformly feel personally responsible when bugs are discovered that are related to the component areas they are assigned to.  Because many of the most critical bugs are found at the integration points or grey areas between components, it’s not hard to understand why Scenario Based Testing resonates with them.  Beyond this, our internal testing processes and tools infrastructures are designed to ensure scenario test case development.  For example, our top tier test suites are in fact our SVTs (Scenario Verification Tests) and are used to determine general product ship readiness.  Finally, we have organized our testing groups to optimize for scenarios.  For example, within our current project, one test team is responsible for all of our customization and extensibility functionality so that they are accountable for complete end-to-end VAR and ISV scenarios.  Incidentally, they call themselves the ICE team (ISV Customization & Extensibility).  I think is a very “cool” acronym for the team (slight pun intended.) Before I close out, let me make this discussion a bit more grounded by giving you an example of what one of our test scenarios might looks like.  To set the stage, this scenario is defined as a series of steps that are taken by a user (or a set of users) in a meaningful sequence to leverage product functionality.  In other words, a complete business problem is solved with these series of steps.  For the purposes of this example, this scenario is not simple functionality within the bounds of a feature, but rather deep functionality interacting between multiple features:Test Case Scenario: Linking/promoting in Outlook:

  1. Create new Outlook contact, click Create in CRM button, Save

  2. Update contact, adding email address (as another user)

  3. Click View in CRM button on Outlook Contact, create new opportunity for contact

  4. Create new email in Outlook, click To button and add contact to email from CRM ABP

  5. Click on Create in CRM button for email, also add opportunity as regarding object

  6. Check email sent, activity created, email in sent items folder

  7. Reply to email from contact’s mailbox

  8. Wait for email received by CRM user to be auto-tagged

  9. Click View in CRM on email, verify regarding set to opportunity

 

The detailed version of the above is as follows: 

  1. Nancy discovers that an ex-colleague of hers, Vanessa Jones, is now working in a strategic position for a large company.  Nancy has a short phone conversation with Vanessa and realizes that Vanessa’s company is a potential customer.

  2. Nancy adds Vanessa’s contact information as a new Outlook contact (File + New + Contact).   While filling out the contact information Nancy clicks on the “Create in CRM” button.  She saves the Outlook contact form.

  3. When she saves the form she realizes she didn’t get Vanessa’s email address.  Nancy asks her assistant (also a CRM user) to call Vanessa back and ask for her email address.  Nancy’s assistant calls Vanessa immediately and updates the email address for Vanessa (Nancy’s assistant users a separate PC / CRM account).  Twenty minutes later Nancy opens the Outlook contact record for Vanessa and notices the email address has been updated.

  4. Nancy clicks on the “View in CRM” button from the Outlook contact record.  This opens the CRM web form.  Nancy creates a new opportunity with Vanessa as the contact.

  5. Nancy decides to send an email to Vanessa.  She clicks on the “To…” button in the Outlook email window.  She expected to choose Vanessa from the Outlook Address Book \ Contacts section, but she notices there is a new entry in the Address Book called Microsoft CRM \ Contacts.  She selects that part of the address book and notices that Vanessa is one of the contacts listed.  She selects Vanessa from the list and clicks OK to add Vanessa as the email recipient.  Next, Nancy clicks on the “Create in CRM” button.  She also clicks on the “Regarding” button and sets the value to the opportunity that she just created.  Nancy fills out the body of the email and sends the email to Vanessa.

  6.  After sending the email, Nancy notices the item is included in her sent items folder.  She also notices a special icon for the item (signifying the item is tracked in CRM).

  7.  About an hour later Nancy receives a response from Vanessa.  She notices the subject is slightly different than the original mail – it now contains the CRM tracking token information at the end of the subject.  Shortly after the email is received Nancy notices the icon for the item changes (signifying the item is tracked in CRM).  She opens the email item.  On the toolbar she notices a “View in CRM” button (which allows her to view the web-based email activity form).  She also notices the item is linked to the opportunity she created (there is a button that says “Regarding:” plus the name of the opportunity she created).

So, in summary, while we do extensive component level testing using a variety of methodologies, our overall testing strategy is scenario based as it offers the most comprehensive quality gates for ensuring that we catch those really tricky bugs that cross component or system level boundaries.  As a takeaway, these techniques are equally applicable during testing and validation of full-end-to end customer deployments of Microsoft CRM.

Categories: Uncategorized

Microsoft adCenter Integration with Microsoft Dynamics CRM

November 9, 2006 Leave a comment

Christian Pedersen from Microsoft CRM Team wrote:

Today, you’ve probably read the news (http://www.microsoft.com/presspass/press/2006/nov06/11-06ConvergenceEMEADay1PR.mspx ) about our plans to integrate our CRM product with Microsoft adCenter.
 
I’ve received quite a few questions on what adCenter actually is and how it relates to CRM, so I thought I would share some more details about the plans and the thinking.
 
We all “search” to find what we want… 39.1 million people are like you and I and use Live search to do that every month. When searching you have hopefully also noticed that various sponsored links that come up – those don’t just show up randomly. They are the result of a very deliberate decision by the advertiser on who they want their advertisements to be exposed to and how often they want that to happen. In other words – advertisers can define a clear target audience that they want their adds presented to, based on the words that you and I use to search on. The advertiser typically buy a number of ‘pops’ and once their add has been shown that specific number of times, the contract has been fulfilled.
 
Microsoft adCenter is in essence an offering that can help drive such campaigns – it includes various guidelines on how to build adds to be displayed in Live search and it provides intelligence on what keywords work well and which ones don’t.
 
When targeting adds factors such as geography, gender, day and part of week can be considered and as mentioned, tools to generate the keyword list, uploading those keywords, building/saving and export reports, prediction of keyword effectiveness before buying are all included in the adCenter offering.
 
It is actually a simple 4 step process

  –  First:  you name your campaign, set your targets and define your preferences
  –  Second: compose your add, provide URLs for your ad, and even customize your ad so you can dynamically insert text
  –  Third: Use tools to research keywords that could help your campaign and also upload keywords in bulk if you already have campaigns on other search engines. 
  –  Fourth: Set your budget, place bids and submit. You basically decide how much you want to spend on your campaign and any target you may have applied.
 
Then submit your order.
 
There is a lot of things to consider when driving marketing – it is e.g. important to know who the app. 40 million people that do Live search every month are… did you know that per a research study from Nielsen:
 
  –  Predominantly female (41% are male). 
  –  Between 21-49 years of age. 
  –  Generating a mean household income of $72,000. 
  –  Higher education (50% are college graduates or higher and are significantly more likely to have “Some College/University”). 
  –  Information workers (24% have professional, executive/managerial, or technical occupations–Over-indexed in “Exec/Managerial,” “Factory Operator,” and “Self-employed”).
 
So where does Microsoft Dynamics CRM come into the picture? Well – imagine this as a scenario:
 
  –  A Company/user wants to kick of a marketing campaign and goes to the marketing module of CRM and creates a new campaign
  –  The campaign is categorized as “Internet Marketing” campaign
  –  Upon creating the campaign the user needs to kick off the campaign / initiate it.
  –  At that point the adCenter sign-in experience and whole process of acquiring keywords and other factors for the campaign gets defined. The trick is that the user never experience that they are actually leaving their CRM and Outlook experience… they do it directly from the CRM experience with adCenter surfacing directly via a mash up.
  –  To close the loop on above…. As leads get created via adCenter (when users click on links and identify themselves) these leads will flow full circle back into the CRM systems lead management part where they can then go through further qualification.
 
Once we then have the bulk of leads in the CRM system I can then imagine:
  –  Applying data mining logic from SQL Server to provide an automatic rating of leads coming in from adCenter
  –  Use the above rating to determine how the lead should be handled within the company
  –  Via our workflow engine we can route the leads with lowest qualification to our telesales team…. And leads with high qualification we can send to our direct sales force for further action.
 
What we announced today is that we will be building this – you should expect that this will be available during the Summer of 2007.
 
I hope this provides a good sense for why we are doing this and the value it can bring to marketing efforts.

Christian Pedersen

Categories: Uncategorized

Bill Gates Keynote at Microsoft Dynamics Convergence EMEA (Europe, Middle East, Africa)

November 8, 2006 Leave a comment

Bill Gates

November 6, 2006

From Munich, Germany, at the first Microsoft Dynamics Convergence conference ever held in Europe, Microsoft Chairman Bill Gates discussed how companies can boost their productivity by bridging “the last mile” between personal productivity software and their business network systems. On-Demand Webcast>

Source: Microsoft – Bill Gates Webcasts

Categories: Uncategorized