People often ask us, “Can my customizations be protected if SugarCRM upgrades?” The answer is an emphatic “Yes.” In fact, the Sugar architecture is structured specifically to accommodate this need.
Out of the box, SugarCRM is a very capable system that fulfills most of the needs an organization would have for a CRM. While this is also true of many CRM platforms out there, what sets Sugar apart from the rest is how easily it can be customized to the special needs of an individual organization. Because Sugar is an open-source system, the entire code base is accessible to developers, so that it can be customized in any way that suits an organization. And that, of course, raises the question of what happens to customizations when Sugar issues an upgrade with new features.
There is a big difference between allowing a general developer to make changes to the source code and having a Sugar professional develop the customizations using upgrade-safe methods. Sugar provides several ways to make customizations without making any modifications to the core code. By using these, you preserve the ability to upgrade Sugar to new versions without worrying about losing customizations that have been written.
One way is through a powerful feature called Business Logic Hooks. Sugar has a defined list of events that can take place as the application is used, and when one occurs, Sugar checks to see if any custom code has been written that should run before or after that event fires.
A business logic hook does not require any modification to the core code of SugarCRM at all. The logic hook is written in a new file specifically for that logic. In the definition of the logic hook, the developer defines which event should trigger the custom code to run. When you run the repair process for the module where the logic applies, the repair process sees the logic hook file that you wrote and incorporates that logic in with the core code. When you run future upgrades to the system, the same process will happen: the upgrade wizard will see the custom logic and apply that code to the new version of Sugar.
That's a quick introduction to how logic hooks are structured and what they do. In the coming weeks, I will describe several different examples of business logic hooks that we have implemented for our clients that expanded Sugar to fit their particular business needs.