Sunday, August 25, 2013

Which CRM is the Most ‘Enterprise’?

I came across this infographic from Capterra a little while ago and tweeted it. To be honest, the idea of using social with equal weighting to customers and users does not sit too well with me but what occurred to me was, using the ratio of users to customers, we could use this to estimate which product the big end of town use i.e. which is the most ‘enterprise’ CRM.

Clicking through to the Capterra website gives us their raw data. I have filtered the list here to those CRMs which appear on the latest Gartner Magic Quadrant.

image

Obviously there are other CRM systems on the Magic Quadrant but they do not appear in the Capterra infographic (SAP, for example). If you have numbers for those that are missing, feel free to add them to the comments. Here is the quadrant for reference.

image

Checking the Numbers

Regular readers will know I keep track on subscription numbers for Microsoft and Salesforce, although Salesforce have not released user numbers for about two years. The last accurate numbers were in January 2011 when there were 3,000,000 users and 92,300 customers, giving us a ratio of around 33. For Microsoft, the ratio around the same time was 63 (1,700,000 users and 27,000 customers). Microsoft has edged this up to 77 in their latest numbers which came out in March this year (3,000,000 users and 39,000 customers).

For Oracle, the PDF source used by Capterra quotes 4,600,000 users and 4,000 enterprises, giving a huge ratio of 1,150. Given Siebel is the traditional enterprise CRM, this is probably right.

For Zoho, I struggle to believe the numbers are accurate. Zoho is a great little SFA solution, but it is limited, as highlighted in the Gartner Magic Quadrant. I assume they are counting the people who have signed up for the ‘free for the first three users’ version, and then counting the number of organisations who have signed up for a paid subscription. I signed up for the free subscription a few years ago but I do not consider myself a user of Zoho, even though the subscription is probably in the count.

The SugarCRM source checks out. While Capterra offer no source for their Sage numbers, this one claims 3,100,000 users for ‘Sage CRM solutions’ and 10,000 organisations for ‘Sage CRM’, giving us a ratio of 310, which is much larger than the one using the Capterra numbers. I assume it is accurate but I wonder whether this also includes the user numbers for Sage SalesLogix and Sage ACT!, explaining the disparity.

Therefore in modified numbers, we have:

  • Oracle: about 1,000
  • Sage CRM: 310 (or possibly 51, depending if Sage are spinning their numbers or not)
  • Zoho: 220 (although I do not believe it)
  • SugarCRM: 143
  • Dynamics CRM: 77
  • Salesforce: 33

Therefore, the big end of town appear to be using Siebel and, surprisingly, SugarCRM (possibly boosted by IBM switching to it from Siebel). If you believe the numbers, Sage CRM and Zoho are also up there but my spidey sense tingles on these ones. Next we have Dynamics CRM with Salesforce in last place.

Conclusions

Large organisations appear to be on Siebel over competitive offerings and so it maintains the title of the most enterprise CRM. Given the strong growth of Dynamics CRM and Salesforce I am wondering if they are taking market share from Oracle, which will boost their numbers in the long term. At the other end of the spectrum is Salesforce whose average customer has 33 users but may be increasing if they are taking market share from the larger players. In the middle are the others (Dynamics CRM, SugarCRM, Zoho and Sage CRM) whose customer size ranges from 50-300 users in size.

Sunday, August 18, 2013

Dynamics CRM Licensing for DEV, UAT and PROD

There is much confusion about what licenses are required for which environments when it comes to Dynamics CRM. Common wisdom suggests a production setup should have three environments: a place to develop new additions (DEV), a place for users to test the additional (UAT) and the ‘real’ environment where business happens (PROD). There is also an argument for a fourth training environment and a support environment but these are not seen as often in my experience.

So do we need a full production license for each environment? Is the situation different between online and on-premise? Are there non-production licenses I can use?

Licensing for CRM Online

Online is, arguably, the simplest licensing model. Basically, under the same Office 365 account, you can spin up additional CRM instances and all users can use these environments without hindrance. The downside is the cost as it is upwards of $500/month per new instance. Therefore, as well as your primary production CRM Online environment, you can have a development (DEV) and user acceptance testing (UAT) environment for $1,000/month.

This is probably quite expensive for the smaller end of town which is why many opt for trial instances when the need arises. However, my understanding is that this is not a valid use of a 30-day trial in that it violates the end-user license agreement (EULA) so be careful, especially if asking for extensions to the 30 days; there is no guarantee you will get an extension and your Microsoft contact may give you a finger-wave and encourage you to use the additional Office 365 instances instead.

Licensing for On-Premise

Licensing for On-Premise is slightly more complicated but, thankfully, less expensive in the long term. Our friend in this case is the Microsoft Developer Network (MSDN) subscription. The MSDN license is made so you can create an environment to develop and test solutions without paying for a full PROD environment. For the full terms and conditions, here is the link.

Essentially, an MSDN license is to “design, develop, test or demonstrate” as well as allowing “end users to access the software to perform acceptance tests”. For Dynamics CRM licenses, you need the premium subscription, which costs around $6,000 in the USA and just shy of $10,000 in Australia. Strange, given the US$ and the A$ exchange rate is about one to one but there it is. For the details of what you get, go here.

You need an MSDN license for each developer but, after that, you are set. This covers DEV and UAT. All you need are the servers to run it on. If you do not have servers, there is Azure, Microsoft’s IaaS offering. You can spin up a server for a few dollars a month and then you only spend for when it is turned on. With a premium subscription you also get $100 monthly credit for Azure (the same in the USA and Australia so they got the exchange rate right on this one).

It used to be the case that it was not permitted to run MSDN licenses on Azure but this was relaxed in June this year, along with a string of other improvements. In fact, you could also run your CRM PROD environment on Azure although, Microsoft have not come out saying they support this (but I cannot see why it would not be valid).

So what about licensing for PROD? Well, for this you still need full licenses; MSDN cannot help you here.

What About Support and Training?

There is nothing in the MSDN terms and conditions about the licenses being used for support or training environments. If we can make an argument that training is a part of ‘acceptance testing’ then they could be used. However, my thinking is to use the production licenses, backup a clean version of production, conduct training and then restore back to the clean version. Using production licenses means no rule jockeying needed.

Support is more problematic. While the MSDN licenses are for testing, the intention in the short description is that this is for testing before releasing to production, not after. Even in the full PDF terms and conditions for MSDN, there is no mention of support that I could find. If this is internal support, then this is not a big deal as an organisation can spin up as many instances as they like on premise with the same Dynamics CRM licenses (you will need additional Server licenses etc. of course). However, for companies providing support to others, the rules are not clear. MSDN does not state is can be used for this which only leaves a full production license. The way I see it, the safest course is for the owner of the production system to spin up a clone of production for support and license the support provider to access it and diagnose the issue. This is probably not an ideal solution but it seems the safest from a licensing perspective.

Conclusions

If you are using CRM Online, your license options for additional instances beyond production are limited and, arguably, quite expensive. For on-premise implementations of Dynamics CRM, you have MSDN for DEV and UAT environments and full licenses for production. For training, you could run a pre-production version of production but for external support, licensing is not clear.

Ultimately, if you are not sure how you can use your software and what licensing you need, read the license agreements, ask for VAR partner or ask Microsoft directly. You may not get the answer you want but you will be on the right side of the law.

Sunday, August 11, 2013

Using Dialogs When a Contact Moves Employers

A common scenario when maintaining Contacts in a CRM system is moving them between employers when they change jobs. For Dynamics CRM, and many other CRM systems, this poses a problem: what happens with their Activity history?

If we simply click on the Parent Customer lookup and change the Account, all the Activity history moves with them to the new Account. This may be appropriate for B2C companies, where the history needs to stay with the individual but for B2B this means if I look at the Related ‘Regarding’ Activity summary on the former employer, all the Activities of my Contact has disappeared (now appearing on the rollup of their new employer).

The Solution

The solution often employed is to create a copy of the Contact under the new Account and deactivate the old Contact. This way, while the old Contact will be hidden on the old Account, all their Activity history will still be visible on the Account’s ‘Associated’ Activity. New Activity will be logged against the new version of the Contact and will appear under the Related ‘Regarding’ view of the new Account.

The Problem

The problem is the process for moving the Contact becomes a bit of a chore because we must:

  • Create a ‘clone’ of the old Contact copying across the values of the key fields on the old Contact form
  • (optional) Link the clone Contact with the old Account to state it was a former employer
  • Deactivate the old Contact

It is easy for a user to mistype information when creating a copy of the Contact or to forget to deactivate the old Contact.

The Solution to the Problem: Dialogs

Dialogs provide a way to automate the steps which a user could forget or get wrong and only get from them the information needed.

Here it is:

image

Step One: Ask for the new Account

The only piece of information we need from the user is the new Account the Contact is moving to. Everything else we can determine from the Contact we start the dialog from.

Here is the Prompt and Response:

image

The trick here is in setting up the Reference Entity and Reference Field correctly. Thanks to Richard Knudson for his excellent article walking through this. Richard also has a book devoted to CRM Processes so if Processes are a big part of your administration of CRM, it may be worth picking up.

Essentially, the way to set up the Reference Entity and Reference Field is to use a lookup which already exists somewhere in CRM. In this case I have told it to use the Parent Customer lookup on the Contact form. This means, when the dialog runs, I will be able to use this lookup to select an Account as if I was selecting an Account for a Contact on the Contact form.

Step Two: Clone the Contact

This is another handy use of workflows or dialogs: to make a copy of a record. Using the Create Record step, we simply populate the desired fields in a new Contact record.

image

The only real trick here is using the value we got from our Page and Response to populate the Parent Customer field.

Step Three: Create a Connection back to the old Account (optional)

In this case we link the new clone to the old Account and use the out of the box Former Employer/Employee roles.

image

In the above picture you can see that to populate the Name field with the right Contact reference, you drop down the Look For in the Form Assistant and find the Page and Response description reference.

Step Four: Deactivate the old Contact

The final step is to deactivate the old Contact which we do with a Change Status step (if you try to use an Update Record step, it will fail).

The End Result

The end result is a dialog we can trigger from any Contact which prompts us for an Account and then takes care of the rest.

image

Conclusions

Again, Dialogs prove to be more than just a call scripting engine.In this case we take a process which a user could easily make a mistake with and automate it, taking from them only the information required and automating the rest.

If you have processes in your CRM system which have multiple steps and are prone to errors, a Dialog to guide the user through the steps and automating it as much as possible is worth the consideration.

Sunday, August 4, 2013

Freebie Product Plug: Bulk Workflow Extension Tool

There are a few tools Dynamics CRM consultants have in their toolbox. Things like Tanguy’s Iconator, Metadata Document Generator and the SiteMap Editor are great examples. This is another tool which I am sure is going to become a standard in my collection, Zero2Ten’s Bulk Workflow Extension Tool.

The Problem: Running Lots of Workflows At Once

Literally last week I came across this problem. I had tried to run the bulk reassign tool off of a user and my browser crashed on me midway through. The result was I had about 20,000 records reassigned and the rest (about 80,000) sitting on the original user. I wanted to reverse what had been done but that meant, somehow, assigning 20,000 records back to the original owner.

The best you can do with CRM, without coding a fix or doing unsupported SQL updates (which I never recommend for ownership reassignment) is highlighting 250 records at a time via a view and hitting the Assign button (or creating an on-demand workflow to do the same).

So this is exactly what I did. I spent a few hours highlighting 250 records at a time and clicking the Assign button (I actually got two running at the same time, so I managed to make it 500 at a time but it was still a tedious process).

The Solution: Zero2Ten’s Bulk Workflow Extension Tool

Then, a couple of days later, Gus Gonzalez (CRM MVP, Jujitsu master and all-round top bloke) announced Zero2Ten had released the ‘Bulk Workflow Extension Tool’. Here is the video of what it does:

In short, you run the program, connect to CRM, find a list of records you want to run a workflow on and then select the On Demand Workflow of choice. You then set it running and it takes care of the rest. If this is of interest, you can download it here. It is free and they do not even ask for names and email addresses (nice work Zero2Ten). Thank you Andy Popkin for making this happen. If we ever meet, I owe you a Mac and Jack’s or two (I am sure Gus will collect them on your behalf at Summit).

Conclusions

CRM workflows are a key element in the new version of CRM (previously Orion, now Dynamics CRM 2013) and will replace many functions typically performed by plugins (I will likely write a blog on these changes in the near future). Therefore a tool like this (with the extensions suggested by Andy such as a workflow scheduler) will become increasingly important. A free tool which helps manage workflows can only be a good thing and, in my case, will literally save me hours of work.

Sunday, July 21, 2013

Capturing Multiple Contact Roles In CRM

A design challenge I often come up against in CRM implementations is the need to capture a Contact against multiple Accounts. For example, a doctor may work at multiple hospitals.

Out of the box, Dynamics CRM (and most CRM systems for that matter) assume a Contact works for only one Account, which is often the case, but they do not make it easy to relax that assumption. Here are three ways, I have used in the past, to get around the problem.

Connections

The simplest way to handle the problem is with Connections. Connections allow you to associate practically any record in CRM to any other record.

image

The advantages of this approach are:

  • Easy to maintain
  • Easy to set up

However, there are significant disadvantages:

  • While you can add an email field to the form, the entity cannot be made into an emailable entity, limiting what you can do with it
  • You cannot add Connections to Marketing Lists, forcing you to use the one Contact record and its primary email address
  • You cannot associate Activities to the Connection, meaning they sit with the Contact
  • There is no rollup of Activities through Connections to the associated Account
  • The Connections do not sync to Outlook, only the Contact record

A Contact Role Entity

Another option is to create our own custom version of the Connection calling it, say, Contact Role. This will be a child entity to both the Contact and Account. The advantage here is we can make it an emailable entity and associate Activities to it.

image

The advantages of this approach are:

  • Still quite simple to manage
  • We can email with this entity and use templates
  • We can associate Activities to the Contact Role

Disadvantages are:

  • We still cannot add Contact Roles to a Marketing List
  • Activities do not roll up from the Contact Role to either the Contact or Account records
  • The roles do not sync to Outlook, like the first option

A Person Entity

Finally, we can create a parent entity to the Contact which represents the person, with the Contact now representing a job that Person does at an Account.

This approach makes me nervous because it fundamentally changes the meaning of the Contact record and, therefore, any functionality Microsoft has built in around Contacts may be compromised.

image

However, it does solve a number of problems for us.

Advantages of this approach are:

  • The Contacts can be added to a Marketing List (although the Person record cannot)
  • We can email using the Contact records as we normally do
  • We can add Activities to the Contact record, as usual
  • Contact Activities roll up to the Account, as usual
  • The Contacts do sync to Outlook

Disadvantages are:

  • It is quite complex and takes a bit of training and use to become comfortable with it
  • Some automation is required e.g. a workflow that automatically creates the Person record when a new Contact is created
  • Allows for duplicate Contacts for the same Person so Duplicate Definitions need to be managed with care
  • Information which ideally belongs on the Person record e.g. Gender, Birthday and Salutation sits on the Contact record and must be dealt with in some manner
  • Activities and Connections do not roll up to the Person record (although code can get around this)

Conclusions

For CRM systems used for stakeholder management, there is often the requirement to associate a Contact to multiple Accounts. CRM struggles to handle this out of the box, but there are ways we can extend CRM to get close to meeting the requirement. While none of these possible solutions are ideal, depending on the specific requirements of the client, one model will likely win out over the others and deliver a system which meets their needs.

***Post Script*** Thanks to Jerry Weinstock, fellow CRM MVP, for reminding me about the issues with Outlook sync in the approaches

Saturday, July 13, 2013

Importing Appointments with Multiple Attendees

I have written a few blogs on tips for importing in the past (2011, versions 3.0 and 4.0, changing the lookup reference and a different approach to data enrichment). One issue I have always struggled with was importing activities. The biggest problem are the attendees. The template CRM provides does have the required and optional attendee columns but they can only handle one reference in them. In other words, if your appointment has more than one person attending, you cannot import the appointment without culling the invite list.

This is something of a drawback and one that has hit me squarely between the eyes in a recent project where appointments had up to 40 attendees. I have found a solution and, as if often my way, no code is needed. In fact, it is similar to my data enrichment approach from before.

Other ways to tackle the problem

There were a few ways I considered for dealing with this. The first was bringing the appointments into Outlook and then tracking them into CRM. Unfortunately the import tool for Outlook also dismisses the attendees if the import uses a CSV. Apparently the import tool for iCal format does bring in the attendees but all the online CSV to iCal convertors I found also dropped the attendees when converting to the iCal format.

The commercial solution, as recommended by the ever relaxed CRM MVP Joel Lindstrom, was the Kingswaysoft add-on to SSIS. We were using the Kingswaysoft add-on for the integration on the project, so it was an option, but to code the mappings was going to take longer than figuring out a way to do it via the import wizard. This was the fallback option though and an excellent one at that. Using the Kingswaysoft product for the integration literally cut our import mapping time to one third over coding SSIS directly, all for a license price equivalent to a day’s consulting, crazy good value.

My Trick: The Setup

It turns out you can get multiple attendees onto an appointment using the standard import wizard, connections and a workflow.

First, we need to set up a couple of connection roles: attending and attendee:

image

I made these as matching roles so I do not have to be too concerned about which is the ‘to’ and which is the ‘from’, which always trips me up.

image

Now we need a workflow which will convert this connection into an attendee. Here it is:

image

However, the real trick is in the Update step:

image

Rather than using the ‘Set by’ operator, I am using the ‘Increment by’ operator. This means the workflow will add the Contact to the existing list of Required Attendees, rather than resetting it.

The Importing

First we import our Appointments (without Attendees), ensuring we have a field we can use to uniquely identify the Appointment. Then we import our Contacts again ensuring we have a field to uniquely identify them.

Finally, we import the Connections between them. The template can be downloaded from CRM, from the Settings-System-Data Management area. You then populate it (using the unique values to link to the Contact and Appointment and maybe my ‘changing the lookup reference’ article to work out how to set the mapping. The spreadsheet will look something like this:

image

The Result

The result is when the Import Wizard adds the Connection, the workflow kicks in and updates the linked appointment, adding the Contact to the Required Attendees.

image

Conclusions

The inability to import appointments (or other activities) with multiple attendees has always limited the value of the Import Wizard. With this trick, a small amount of effort means we can use the Import Wizard for Activities without resorting to code or third party import tools.

Sunday, July 7, 2013

The Difference Between Selling and Consulting

Sometimes, as a CRM consultant, I must sell and sometimes I must consult. For me, they are different skills although it is not impossible to wear both hats if you understand the difference.

Selling CRM vs Building CRM

In a pre-sales meeting or when you are the primary business development manager (BDM), the job is to sell a vision. You must appreciate where the customer is today, the problems they are having and to communicate how a CRM system can solve these problems. Most solution selling processes I have seen talk around this idea of identifying the pains the customer is having and taking them on the journey of realising how CRM can alleviate them.

For a consultant in a workshop, it is assumed the vision has already been painted and the client is excited about how CRM can solve their issues. The key for a consultant is not to continue convincing them they need CRM, or necessarily how awesome it is, but to convince them that the consultant will be there ensuring the project stays on track and the client can ask them anything and they will get a direct answer.

Obviously this needs to be tempered, but the idea that the client needs a consultant who will say yes to any request is, in my opinion, a recipe for disaster. Dynamics CRM has limitations and, when designing a solution for a client, these need to be addressed head-on and worked with. Dancing around the inherent limitations in the product is in no one’s best interest. Clients, in my experience, are not naive and understand any solution will not be perfect. The key is finding an acceptable balance between making a solution practical for the user and making it palatable in terms of time and cost to bring it to life.

By being honest about your product as a consultant, the client will quickly learn to trust you; an essential element for any project. There are times the client will not necessarily be happy with what you tell them but they will respect you for it and be willing to work with you to generate the best possible outcome.

It is About Trust

For both the BDM and the consultant, it is about trust. For the BDM, the job is to ensure the client trusts you to present the best options to solve their problem. If the client needs an ERP solution and you try to sell them a CRM solution, this will be a poor experience for everyone. The best example of this is in “A Miracle on 34th Street” where Kris Kringle directs the shopper to another store which better suits their needs. I am not suggesting BDMs sell in other vendors, but they should not be afraid to say “no” if there is a better path the client can go down to avoid disaster. The client, in the long run, will respect and trust you for it.

For the consultant in the workshop it is about convincing the client you will present the product, warts and all, and together you will do whatever it takes to make it a success. Some specific stakeholders may still need to be ’sold in’ but for the main project sponsor, their reputation rides on providing the best possible solution. They need to know where there may be problems and the earlier this is addressed, the better the wrinkles can be worked with.

Conclusions

Whether you are selling the vision of a solution or helping build a solution, building trust with the client is essential. Understanding the concerns and needs of the client in relation to the product lifecycle ensures you deliver the right message at the right time. Give the wrong message as a BDM and you will have a nervous client. Give the wrong message as a consultant and they will see you more as a salesman than an architect. When selling, provide a vision for success, when building, lay out what you have to work with and collaborate with the client to build the best possible solution.

In both roles, you will be seen as a trusted advisor and regardless of the reliability of the software, the client will be sure they can rely on you.