Pages

Friday, September 3, 2010

SugarCRM 101: How Do I Manage Multiple Businesses?

I realized the other day that too much of the content on this blog tends to be rather technical.  While helpful, there are also a number of topics worth discussing that don't fall into that category and are often quite valuable to new users or prospects.  A recent message on the SugarCRM Forums from a potential user reminded me of that very point.

The question was rather short and simple: can I use SugarCRM to manage multiple businesses?


Some folks will argue that it is possible, and it certainly is through the manipulation and creative use of built in security features and customization tools.  However, SugarCRM is not specifically designed with that concept in mind and attempting to use it for such purposes can quickly lead to problems.  



Here is a good example:

Suppose that one of the businesses you intend to manage via SugarCRM is dedicated to selling music, while the other provides pool cleaning services.  As dramatically different as they may sound, it is not an unrealistic scenario and they help highlight an important point.  


Let us pretend we needed to enter a customer for each of the two businesses.  


For the music business we might want to know the person's age, favorite musician and genres, plus other similar attributes.  It is unlikely that any of that information would be helpful for a customer of the pool cleaning business.  For those entries, we would likely want to store information such as the pool size, chemical combinations and other information valuable to that line of business.  

Herein lies the issue the example is trying to highlight and why attempting to use a single instance of SugarCRM to manage multiple businesses is generally not a good idea.  Sugar won't distinguish between one type of customer versus the other when you enter or otherwise interact with the data.  For example, when entering a customer, the data entry screen that is displayed for both is exactly the same.  Obviously, seeing fields that pertain with chemical balances while entering a music customer, and vice-versa, would be rather confusing to a user entering a new customer.

You would be better served by having multiple instances of Sugar, one for each business.

As a side note, Sugar could be customized to address this particular scenario, but it would take a significant amount of effort.

10 comments:

  1. Hello Angel,

    I have been following ur posts on ur blog & also on the sugarcrm forum - I have the exact issue with sugarcrm & google imap inblund emails. I think my PHP configuration is fine - you can check at http://www.webgilty.com/phpinfo.php - imap, Kerberos Support etc. all is enabled - I am able to use my gmail account - but i get error when I am using my google apps account - any comments ?

    ReplyDelete
  2. I do totally agree with you. Some of the customer try to "share" costs between two or several CRM projects, sharing the same instance. But this is not a good idea, Sugarcrm should reflect a CRM strategy in order to manage our clients in the best way.
    Thanks for your work Angel, really interesting!
    David Sanchez
    Anismuscrm.com (Spain)

    ReplyDelete
  3. @David: Thanks for your comments and feedback.

    I think there is another factor that most people overlook and pertains to legal matters.

    Suppose I do store the data for 2 different businesses within one instance and I then sell one of those businesses. Some of those types of sales will often times include the data that belongs to the business.

    If that is mixed up with the data of another business, the distinction of what belongs to business A versus business B becomes a little less clear. In the end, you could expose yourself to a scenario where you unintentionally divulge more data than intended to the buyer.

    ReplyDelete
  4. Angel raises a valid issue about selling a businesses data but at this point my main goal is to streamline all my communications with clients across several busineses and my personal life....maybe SugarCRM is not the answer but I'm sure having one tough time finding what is!!!

    ReplyDelete
  5. I am wondering about this questions with a little different twist. I would like to have one instance of sugar on a web server with multiple databases (one for each customer). All the customers would use the same vertical solution for the application. Can this be done with SugarCRM?

    ReplyDelete
    Replies
    1. Sugar does not have a facility for that. You would have to add that functionality to SugarCRM so that it would be possible for one install to use differing databases.

      This is likely to present a number of challenges as the architecture is not designed to be multi-tenant, thus, customizations may be a problem (among other things).

      Your best course of action would be to have a separate instance for each customer.

      Delete
  6. Agreed. Don't use SugarCRM for multiple businesses. And yes, making this specific scenario work does take a large amount of work. But if you really need it (such as for supporting different layouts for different departments) just use SecuritySuite for the custom views and save the hassle.

    ReplyDelete
  7. I like the idea of using one SugarCRM instance for multiple customers/businesses as a technical challenge, but it's not at all practical. It's very simple to just install a second copy of SugarCRM in a separate directory. They can share the same Apache and MySQL servers while maintaining separate file systems and databases. Why bother with over complicating it?

    But as an aside, it'd be cool if everyone could share a system link to the SugarCRM root directory while maintaining their own database, cache, custom dir and configuration files.

    ReplyDelete
  8. What if you have multiple instances but you need to roll out upgrades, updates, configuration, etc. to all the separate instances?

    ReplyDelete
    Replies
    1. Sugar itself doesn't have any features/tools to simplify the process of maintaining multiple instances. The silentUpgrade tool is helpful, but not comprehensive enough as it only handles upgrades.

      Folks in this predicament usually rely on the use of custom scripts or tools such as Jenkins and Puppet/Ansible to automate the steps involved in completing such tasks.

      Delete

Your comments, feedback and suggestions are welcome, but please refrain from using offensive language and/or berating others. Thank you in advance.