Home > CRM, Javista, Microsoft, Microsoft Dynamics, Tips and Tricks > The CRM Configurator’s Dilemma: Repurpose or Create?

The CRM Configurator’s Dilemma: Repurpose or Create?

As you configure Microsoft Dynamics CRM, one question that frequently arises is should I create a custom entity or repurpose a system entity.  By “repurpose” I mean take an entity that is designed for one purpose and modify its fields and form to serve a different purpose.    Say you are configuring CRM for a property management company.  There are no system entities in Microsoft Dynamics CRM called “properties” or “leases,” but there are entities that are somewhat similar, such as Contracts and Opportunities.  It can be tempting to say “I’m not doing sales opportunities, let’s repurpose the opportunity as the Property entity.”  The perception is frequently that adding additional entities will complicate the configuration. 

Before you repurpose system entities, you should first consider several things:

1.  Consider the future—is there any chance that you might need the entity in the future?  Sure, you might not use sales opportunities right now, but can you say for sure that there is no chance that another department might not see what you are doing in CRM and decide that they want to use it too?  If you repurpose a system entity and later have a need for it, you will paint yourself into a corner and make it very difficult to impossible to change course down the road.

2.  Consider the overhead—While the perception is that repurposing system entities will simplify a CRM configuration, frequently the opposite is true.  In the example of the property management company that repurposes opportunities for properties, by doing so they are bringing many unnecessary fields into their property configuration, some of which cannot be removed from the form (such as price list, is revenue system calculated, and the convert to order button).  Other system entities such as campaigns, cases and contracts all have fields like subjects and date fields that can’t be removed from the form.  Sure these things can be hidden using JavaScript; however, that will add a lot of unnecessary complexity to the configuration when compared to a custom entity with only the fields and links that are necessary, and the more JavaScript you add to repurpose entities, the more things you will need to test and potentially re-do the next time you upgrade.

3.  Consider the user experience—due to the added overhead of a repurposed system entity, typically a custom entity containing only the fields and links that are necessary will be more user friendly than a repurposed system entity.  Take a simple example, like the entity icon.  Microsoft CRM does not allow you to modify the icons of system entities, so when you repurpose a system entity, your property entity will still have the standard CRM Opportunity icon.  This can be very unintuitive for users.  A custom entity, however, can have an icon of a house or office building, or whatever makes the most sense.

Simplicity in a CRM configuration is not determined by the total number of entities in the system, but rather in how they are presented (or not presented) to users.  Really no user should see every entity in the system when they log in to CRM—they should see only what is necessary for them to do their job.  Adding custom entities will not complicate their experience, especially if you remove the unused system entity links from their view.

In case you don’t know how to do this, here are some related links:

Cheers,

Joel Lindstrom

Advertisements
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: