Building Custom Modules in SugarCRM

From time to time the modules offered by SugarCRM straight out of the box won’t meet your exact needs, but don’t despair: SugarCRM has been designed so that you can make the necessary changes, giving you the ability to work the way you want. The longer you use Sugar and the more accustomed you become, the more likely it is for you to want to extend its functionality and gain greater efficiencies by integrating more of your business functions with Sugar.

Before you begin you should write down what you want to achieve out of a custom module. Ask yourself:

  • Will this module will hold data for a person’s information, track issues, or is it so unique you want to start from scratch?
  • To which other module(s) should this one relate?
  • Will you need to report on the information on this module?
  • What fields should it track?
  • And anything else you feel may be relevant

Sugar provides us with two tools for building and maintaining custom module configurations: Module Builder and Studio. As an administrator of Sugar, it is important to understand how both tools work so that you understand the process as you look to build on Sugar’s framework.

Developer Tools

Build Your Module in Module Builder

Build the initial framework for your new module in Module Builder. Add all the fields you feel will be necessary for the module and construct the layouts with those fields. If possible, it is even better to create your custom modules in a development environment that mirrors your production environment.

Never Redeploy a Package

Redeploying a package will remove all customizations related to your module in:

  • ./modules/
  • ./custom/modules/
  • ./custom/Extension/modules/

This includes workflows, code customizations, changes through Studio, and much more. It is imperative that this directive is followed to ensure any desired configurations remain intact after the first deployment. Once the module is deployed, you should use Studio to perform any additional configurations to your module including but not limited to:

  • adding a new field
  • updating the properties of a field deployed with the module
  • changing field layouts
  • creating, modifying and removing relationships

Every Module in Module Builder Gets Its Very Own Package

While it is possible to create multiple modules in a package, this can also cause design headaches down the road. If you end up wanting to uninstall a module and it is part of a larger package, all modules in that package would need to be uninstalled. Keeping modules isolated to their own packages allows greater flexibility in the future if a module is no longer needed.

However, if you wish to create several modules that work together, are closely related, or depend on one another, then you might want to group them together in a single package.

Create Relationships in Studio After the Module Is Deployed

This part is critical for success as relationships created in Module Builder cannot be removed after the module is deployed unless the package is updated and redeployed from Module Builder. Redeploying from Module Builder is what we are trying to avoid as mentioned above. If you deploy the module and then create the relationships in Studio, you can update or remove the relationships via Studio at any future point in time.

Delete the Package from Module Builder Once It Is Deployed

Once the package is deployed, delete it from Module Builder so that it will not accidentally be redeployed. The only exception to this rule is in a development environment as you may want to continue working and testing until you are ready to move the module to your production environment. If you ever want to uninstall the module at a later date, you can do so under Admin > Module Loader.

If you would like to speak to us about Custom Modules please call 818 227 5130 or email


See information about our additional integrations here
 Integrating CRM with your everyday software will further enhance your business processes:
SugarCRM Constant Contact IntegrationMore Information
SugarCRM Sage 100 ERP Integration More Information
SugarCRM Intacct Integration More Information
SugarCRM Integration More Information
SugarCRM QuickBooks Intergartion More Information