Experiences on CRM, .Net and DHTML


  • Join Us on Facebook!
  • Follow Us on Twitter!
  • LinkedIn
  • Subcribe to Our RSS Feed

Lead and Opportunity management in AX 2012

A lead is someone who may be interested in doing business with you and is sometimes referred to as a Suspect. Leads in AX 2012 are part of the Sales and Marketing module. An abstract on the Lead management in AX 2012 and the details of the Form elements are on Microsoft TechNet. In this blog I shall discuss the functionality available in AX 2012 R3 CU9 in detail. 

Lead Creation

Below are the different ways to create leads in AX. We will only discuss the options provided OOB (Out Of the Box) in the AX rich client.

  1. Manual: The step-by-step instructions are provided in technet.
  2. Import: There is an option to import Leads in Sales and Marketing –> Periodic –> Import –> Leads. However, I haven’t been able to get it to work due to the lack of formats. Haven’t been able to get help from Microsoft too. So, if you know how to get this to work, let me know! Another way to import leads is using DIXF (Data Import eXport Framework.. it works! Smile ).
  3. Generate Leads from Campaign: A Campaign Response can be converted to a Lead as shown below. The Campaign will be set as the Source on the Lead so the relationship detail is available for Campaign performance analysis.


Qualify Process

Qualify Process is essentially the series of steps/activities that the sales rep has to follow to help nurture the lead. There is no default process that comes OOB. However, it can be configured easily using a Click-to-configure utility available in Sales and Marketing –> Setup –> Leads –> Qualify Process.

Once the required actions are performed on the lead according to the qualify process, then the lead can be qualified or disqualified, if it doesn’t meet the required criteria. Here is how to qualify/disqualify a lead. Once qualified / disqualified, the status of the lead is updated. However, the record is not deactivated.

A setting in Sales and Marketing parameters helps configure if an opportunity or customer has to be created on lead qualification.


Background Process
  1. When a Lead is created for a new Party (When you type in a new Name instead of selecting from the dropdown) then AX auto creates Prospect and Party records.
  2. When an existing Party record is used to create the Lead then a new Prospect is not created until the Lead is qualified. Note that Prospect is an individual/organization with potential business.
  3. When an existing Customer is used to create Lead then Prospect is not created. Ideally, for an existing Customer, an Opportunity has to be created instead of a Lead.
What are Party and Prospect?

A party is a person or organization that is either internal or external to your organization. Some examples are Worker, Customer, Vendor etc. Party records are maintained in the global address book (GAB) and can be created in the following ways:

  • Create a party record when you do not know the entity type – When you create a party record and you do not know the entity type, for example you do not know if the entity is a customer or an opportunity, you create the record in the GAB. You can select the entity type later.

  • Create a party record when you know the entity type – If you know the entity type for the party, you can create a record in the applicable form for that type. For example, for a customer, you create a record in the Customer form. When you create and save a record by using the applicable form, the record is automatically created in the GAB.


Prospects are the organizations and individuals with whom you will potentially interact for business purposes. They are most likely to be external to your organization. Prospects records can be used to store details like sales demographics, delivery defaults, financial dimensions, credit & tax etc. All the details that the sales reps gather as part of the sales process have to be captured in the opportunity and prospect records

I would suggest not to create Party records from the GAB directly but to instead use a Prospect or Lead when you know that it is a potential sale.


Opportunity Creation

An opportunity is a lead who is now almost ready to buy —in other words, it's a deal that you're ready to win and have details like budget, timeline, requirement etc. Summary of Opportunity management and the form level details are on Microsoft TechNet. Opportunity can be auto created when a lead is qualified or can be created manually. Step-by-step procedure to create opportunity is also detailed on TechNet.  When an Opportunity is created for a new Party then AX auto creates Prospect and Party records. Oddly, the owner of the Opportunity/Lead is not set by default and is commonly desired to be the current user. So, remember to customize it as part of the initial setup.

There is no pre-defined sales process that comes with AX installation. It could be because the process varies by industry. Configuring a sales process is easy and can be done using a click-to-configure utility available in Sales and Marketing Setup.
Sales Process

There is no pre-defined sales process that comes with AX installation. It could be because the process varies by industry. Configuring a sales process is easy and can be done using a click-to-configure utility available in Sales and Marketing –> Setup –> Opportunities –> Sales Process.

By default, the product of interest cannot be associated with an opportunity. Customization is required to relate a product family/category with an opportunity. There are a few settings that can help create an opportunity or update its status based on the quotation. When you create a quotation from the opportunity, you would be able to associate the product, price list etc.,


Once an opportunity is Won (status is changed to won), the opportunity details are made inactive and are not editable. However, when an opportunity is lost, the record is still editable and can also be reactivated.


Hope this helps!

XrmToolBox - A Must have tool for CRM/XRM Developers

If you are a seasoned CRM/XRM developer, you must have heard about XrmToolbox. If you have, you can simply ignore this post. BUT if you have not then you MUST read on.

This post is about XrmToolbox (http://www.xrmtoolbox.com/) and its plugins which can improve your efficiency and accelerate overall development speed. I intend to list all the default plugins and provide more details on plugins as and when time permits. So here is a list of plugins which gets installed by default.

Sr. No.
1Access Checker
This plugin allows you to check access rights for a user. This can come extremely handy to figure out if you have provided proper security privilege or not.
2Assembly Recovery Tool
This plugin lets you export Plugin Assemblies from a CRM deployment.
3Attribute Bulk UpdaterIt allows to quickly set the following properties of attributes of a given entity. 1. Valid for Advanced Find 2. Valid for Audit 3. Requirement Level
4Audit CenterIt allows you to define audit settings - from Global Audit Settings to Attributes on Entities. It gives you everything that you would do with Audit settings in one screen.
5Bulk Form Attribute Manager

This plugin provides a single window to set the following settings on multiple attributes.
1. Add/Remove attribute to the form
2. Show/Hide/Edit Text of the label
3. Lock/Unlock a field on the form
4. Set a field read-only
5. Set visibility of a field
This plugin allows you to select Attributes in various manners (Attributes on all forms or not in any form)

6Chart ManagerIt allows you to import/export chart definitions in bulk. It also allows you to make changes to the ChartML.
7Easy TranslatorThis plugin exports and imports translations with contextual information
8FetchXML TesterDoes this one need description? :-/
9FLS Bulk UpdaterMany CRM/XRM implementations require you to configure Field Level Security. If you try doing it using just the Dynamics CRM Web Interface it can be really time consuming and headache inducing.
10Form Libraries ManagerThis plugin helps you to add multiple JavaScript libraries to multiple forms.
11Form Parameter ManagerIf you need to pass parameters to Dynamics CRM forms, this plugin simplifies the process.
12IconatorThis plugin helps you to add icons to custom entities in Dynamics CRM.
13Import/Export NN RelationshipsThis plugin helps in importing and exporting N:N relationships.
14Metadata BrowserGood ol' Metadata browser (on steroids ... just give it a try to experience how fast it is).
15Metadata Document GeneratorThis plugin generates very nice Excel and Word document based on Metadata
16Privileges DiscoveryThis plugin will help you find roles which implement a given security privilege
17Role UpdaterA simpler UI to update set or role/s with Security privileges
18Script FinderIf you ask yourself how many JavaScript libraries are being used in a given CRM solution and where... this plugin is what you need.
19SiteMap EditorThis plugin provides you finer control over SiteMap elements. It allows you to import/export and understand how SiteMap actually work.
20Solution Components MoverThis plugin helps you to move Solution components from one solution to another.
21Solution ImportYet another simple solution to a terrible user experience (due to limitations of web browsers and web applications in general). This plugin allows you to select a folder and allows it to import it or if you already have a zip ready then do a simple drag-n-drop.
22Solution Transfer ToolHow many times you find yourself in a situation in which you already have a solution deployed on one server and you need to transfer (Copy) it to other server? If you are in regular CRM/XRM development then I'd say every other day. It is true, you copy solutions from Dev to Test to UAT to Pre-Prod and finally Prod. If you do this via regular CRM Web UI the process is quite cumbersome. Use this plugin to make the solution transfer process a breeze.
23Sync Filter ManagerThis plugin helps you manager Offline, Outlook and Server side Sync. As such with advent of Dynamics CRM 2015 I am not sure how useful and meaningful this plugin will be.
24User Roles ManagerManage all roles for the users and teams available in a given CRM deployment
25User Settings UtilityHow would you change User Settings for 7000 users? Yes... I don't need to explain what this life-saver plugin does.
26View Layout ReplicatorMost of the CRM deployment we do, we need to keep layout (columns, order and width) of views in a sync. For a large implementation it can be a huge pain. This plugin simplifies the process. Define the layout in one view and then replicate it to other views in a single click.
27View Transfer ToolTwin brother of View Layout Replicator, allows you to quickly transfer Views from one CRM deployment to another.
28Web Resources ManagerThe Ultimate Web Resource Manager for Dynamics CRM. Forget about copy pasting content (for HTML, JavaScript, CSS, XML etc.) just select the files and upload them in a click. Additionally, this plugin beautifies the code and also provides you a nice way to organize Web resources
29Early Bound GeneratorI am not very PRO early bound code (for sole reason of flexibility), but every now and then we encounter a situation where people would want to use Early Bound code. This plugin provides a nice UI to the command line operations of CrmSvcUtil.exe (part of CRM SDK). It is the most comprehensive plugin available today in case you are using Early Bound Code. In one case, I was able to reduce EBC size by 1/3rd (from 7 MB to 2 MB). Please note that this doesn't come bundled with Xrmtoolbox and needs to be downloaded from: https://xrmearlyboundgenerator.codeplex.com/
30FetchXmlBuilderThis plugin allows you to write/edit FetchXml and test it from the same screen and provides a nice UX. It has many other features that will help any developer, no matter S/he is a novice or an expert. A MUST have plugin. Please note that this is not a standard plugin of Xrmtoolbox and needs to be downloaded separately from: http://fxb.xrmtoolbox.com/

I have deliberately not included the following plugins (not that they are not important. I just didn't find them being used as widely as others)

  1. Sync event execution order editor

There are many other important resources which you can find at: http://www.xrmtoolbox.com/. Including installation, configuration and basic troubleshooting.

Duplicate Detection in AX 2012

Duplicate data is very common these days given the multiple channels that bring data into the system. Lets explore what AX 2012 has to offer to help detect duplicates.

Is there a standard feature to detect duplicates?

Yes, duplicates are checked on demand as well as on record creation. However, AX 2012 checks for duplicate Party records only and not the entity records itself.

In AX 2012, an Individual (person) or an Organization information can be dealt  with (managed!) in many ways like a Lead/ Prospect/ Contact/ Customer/Vendor etc. Often, the same Individual/Organization is related with the business in more than one role. To maintain these details, AX 2012 stores them in the Global Address Book (GAB) as Party (DirParty table) records in addition to the Entity(Customer/Contact etc.,) thus enabling a Party to play multiple roles. Example: John Doe is a Party with roles of both Customer and Vendor. In such a case, Party, Customer and Vendor records are maintained in AX for John Doe. The Party record is shown on the Name (lookup) on the Customer and Vendor records.

Now lets check out the standard duplicate detection with an example to understand it better.

Note the First Name, Last Name and Contact For details of an existing contact. Say, Lilly Grace.


Also note that there is a party record for each of these contacts in the GAB.  


Now lets run a few tests

Test 1: Create another Contact with the same Name (Party). When the ‘Duplicate detected’ screen pops up, choose the ‘Add new person’ option. Notice that duplicate party records and duplicate contacts are created.

image    image

Test 2: Create another Contact with the same ‘Name’ (Party) and same ‘Contact For’. The ‘Duplicate detected’ screen will pop up showing that a duplicate party exists. Note that the prompt says the record exists in Global Address Book indicating that a duplicate Party exists not Contact itself. Choose the ‘Use selected record’ option and try to save the Contact record. You’ll now see a STOP error indicating that a duplicate Contact record cannot be created.

image      image

The critical STOP error is due to the index defined on Party in the ContactPerson table. Close the error message and cancel the contact creation form.

Test 3: Create another Contact with the same ‘Name’ (Party) but different ‘Contact For’. Use Sally Thompson to test this time. When the duplicate detected screen pops up then choose the ‘Use selected record’ option. Notice that duplicate Contacts are created despite choosing to use the selected record. However, the same Party record is used in both contacts. 

image     image

Is it optional?

There is a setting that controls the duplicate detection called “Use Check Duplicates” that is enabled by default. This setting can be found in Organization Administration –> Setup –> Global Address Book –> Address Book Parameters. Uncheck this if you don’t want the duplicate check.

Is it Configurable?

Not in the standard product. There is no configuration setting to allow adding any other entity (table) or field to the duplicate check. However, customization (through code) can be done to include additional fields in the search for duplicates.

Finally, even if the duplicate detection feature exists in AX 2012, as discussed it is limited to the party table. Customization is required if you need to add additional entities or attributes in the duplicate detection criteria.

Hope this helps!

Sure Step Methodology for CRM 2015 ?

A question that often pops up in front of the CRM Consulting teams is whether to use Sure Step Methodology with the latest version of Dynamics CRM (2015). More often now, since the methodology isn’t evolving as fast as the product.

Microsoft developed the Sure Step methodology with the good intent of providing a guideline to the implementation partners. It has not upgraded since 2012 to cover the product enhancements due to reasons unknown to me. However, the methodology can still be used as the project types, roles, responsibilities and activities in each phase remain same. Some of the tools may need be worked upon based on the recent features of CRM but the existing ones are a good place to start from.

Below are the models I have experienced in my CRM implementations.

  • Most big consulting companies (firms that implement multiple CRM products and other enterprise applications) have their own implementation mythology for enterprise applications that they prefer to use while referring to Sure Step for something very specific to Dynamics CRM.
  • Microsoft partners that primarily work on Dynamics CRM as majority of their consulting business generally use Sure Step as the methodology or improvise on it by building templates/content based on their implementations.
  • In some cases the Customer has specific processes or few templates that they are familiar with and would want to use them while depending on the Sure Step methodology for the rest.

In my opinion, Sure Step methodology has a Dynamics flavor that other generic mythologies wouldn’t provide especially the Decision Accelerators. I have implemented CRM even before Sure Step was available and used other frameworks/methodologies. However, I have found it advantageous and believe that it certainly helps the consultants to be aware of the tools & templates that are available.