My Recent Experiences With Customer Relationship Management Software: CiviCRM and SugarCRM

November 9, 2007

Recently, I had two clients with a need for customer relationship management (CRM) software, which up to that point, I had only had superficial experience with.

The first client was a small nonprofit that needed to track members and donors. CiviCRM is targeted directly for that space (”designed specifically to meet the needs of advocacy, non-profit and non-governmental groups”), and in fact, the “CRM” in the name stands for “constituent relationship management” according to the CiviCRM folks, which both distinguishes it from other CRM products and makes it a little harder to find when you are Googling for this type of software. The client was already using Drupal as their Web site’s content management framework, and as CiviCRM deploys as an integrated Drupal module, this ended up being a very natural fit. (CiviCRM also integrates with Joomla.)

As we are just starting to use CiviCRM, I don’t have a lot more to say about it, except that is appears to be quite robust with a nice feature set, exactly as advertised.

I have been getting my hands dirtier with SugarCRM. This was for a medium sized start-up that needed a CRM solution quickly, and would further investigate what their ultimate CRM choice should be later. An open source LAMP solution seemed to fit the bill here also, and after a quick search, I found SugarCRM.

It was also the case that the company is made up of individuals that had used a variety of other CRM systems such as Goldmine, and others in the mid range for this software. SugarCRM seemed to be a strong alternative to these options, and as a result, had immediate legitimacy with the staff who began using it.

I have been impressed by the features and maturity of SugarCRM, and also its flexibility. For example, custom fields are easy to create, then add to various screens through a drag-and-drop AJAXified interfaced. It appears to have a very strong community behind it, and also has pretty extensive (and professionally produced) documentation that is kept up to date. Having professional looking documentation is a big bonus when using open source software in a business context.

SugarCRM can also import and export CSV files and files produced by other common CRM products. But this points to an interesting lesson that I learned in the process of deploying and customizing SugarCRM, that I wish I had known prior to this job: different CRM systems may have differences–sometimes very subtle differences–between how they define things like accounts, leads and opportunities, as well as when and how one becomes another. This was sometimes a stumbling block for staff who were accustomed to seeing the world through the lens of one CRM, and were now looking at the world through another. Fortunately, again, SugarCRM is customizable enough that we were able to change fields and screens to come closer to their expectations.

This deployment has been so successful in fact, that the company is considering using SugarCRM as their ultimate CRM solution in the future as well as right now, possibly upgrading from the free “community edition” to the one of the paid versions with more advanced features. A great win all around.

For those who might be getting started with SugarCRM, and customizing it for their clients, I can give a general lay of the land based on working with it pretty regularly for about a month now.

First of all, both the user and admin manuals are excellent and useful for teaching staff how to use the sytem, and for getting to know what you can do through the administrative interface. On the administration side, I find myself spending a lot of time in the “Studio” area, which is where you can define custom fields and customize screen layouts for each module. Although the name “studio” and what you can do with it may not be immediately obvious at first, the tools themselves are pretty intuitive, and a quick scan of the admin manual is probably all you need to start productively customizing SugarCRM.

List view screens are a treated a little more specially. For example, if you want to change the names of fields in the table header, or optimize the width of columns, you need to directly edit the appropriate listviewdefs.php file on the server, as in the current version of SugarCRM (4.x), this is not possible through the admin interface. These files can be found using a path that looks like this:

custom/modules/<MODULE NAME>/metadata/listviewdefs.php

And in fact, in the particular version I installed, I found a bug in the Leads module that needed to be corrected in the corresponding listviewdefs.php file. In the Leads module, if you click on the “Name” column, then click on a specific name to open it in detail view, you will get the following ugliness:

Error retrieving Lead list: Query Failed:
SELECT leads.*, users.user_name assigned_user_name , leads_cstm.*
FROM leads LEFT JOIN users ON leads.assigned_user_id=users.id LEFT JOIN leads_cstm ON leads.id = leads_cstm.id_c
where leads.deleted=0 ORDER BY name ASC LIMIT 0,1::MySQL error 1054: Unknown column 'name' in 'order clause'

This is a known bug and can be fixed in custom/modules/Leads/metadata/listviewdefs.php by modifying the appropriate section:

...
'NAME' =>
array (
  'orderBy' => 'last_name',
  'width' => ....

Another request I received was for a field that was the result of a calculation performed on two other fields in the module. Version 4.x of SugarCRM doesn’t support calculated fields, although it looks like this will be an option in version 5, due out soon. But this was very important to the client, so thanks to this post in the SugarCRM forums, I found a way to hack together a calculated field in Javascript that then became part of the normal, published, customized view infrastructure in SugarCRM. Its ugly, but effective.

Generally speaking, I’ve found that SugarCRM has been around and active long enough that just about anything I need that’s not in the documentation can be found through the forums or other how-to’s on the site.

Resources

1 Comment »

Comment by Phil
2008-01-30 06:24:00

Thanks for posting this bug fix. It got the leads module of my SugarCRM system working again. Other people are having the same problem so I posted the details of the fix on the SugarCRM forum and a link back to this page.

 
Name (required)
E-mail (required - never shown publicly)
URI
Your Comment (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> in your comment.