SugarCRM comes with an enterprise level business process management tool in the form of its robust Advanced Workflow module. This feature was introduced back in Sugar 7.6 for the Enterprise and Ultimate editions. It features an intuitive visual design canvas that makes building processes easier than ever with a simple drag and drop interface and actually lets you gain a 360-degree view of the process from start to finish.
However, the whole experience can be compromised if certain design considerations are not addressed. We’ll go over some of the most important aspects you need to look out for when designing workflows so your application performance and runtimes don’t suffer.
1. Data Scalability Issues
It’s important to understand that as your business grows so does the record volume in your accounts and your data in general. However, evaluating all those records is bound to take a toll on your workflows in SugarCRM and frustrating run times are inevitable. In order to deal with this, SugarCRM has rolled out many performance and scalability tweaks in their most recent iterations of the software. Therefore, it is advisable that you use the most up-to-date and latest SugarCRM release and avoid using an excessive number of in-flight processes.
2. Excessive Start events
Start events affect the flow of the process. They define the action that triggers the process and may contain conditions such as whether they apply to newly created records or updated records. Sugar maintains a log of each event including various triggers. Extensive logging in Sugar affects application performance and therefore it is necessary to use Start events wisely.
3. Unnecessary Field Evaluation
As you might have already figured out by this section’s heading, evaluating unnecessary records is inefficient and highly counterproductive. More records mean more evaluations and thus, more strain on the resources you’ve allocated to keep your CRM up and running. Therefore, you should only evaluate records that are determinant to the proper execution of business processes you are implementing in Advanced Workflows. Custom ACL checks can also be implemented to limit field evaluations based on roles and user types. Additionally, effective use of gateways can help optimize the handling of multiple conditions and reduce unnecessary traversals across the workflow.
4. Related record mismanagement
Relationships between records can affect application performance as they may lead to unnecessary complications and evaluations and result in unnecessary timeouts and prolonged save times. It is advisable not to evaluate unnecessary fields on related records and to limit the evaluation of 1-to-many related records by defining a criterion such as evaluation of only recent records or those created by a specific user. Obviously, these optimizations would be dependent on your business process.
5. Overusing Business rules
What makes business rules really great is their re-usability. They serve as building blocks for multiple processes this way. However, every business rule is evaluated on an integer value and multiple business rules combined in a workflow increase its complexity and the time it takes to save a record, apparently making it seem that the application is unresponsive. Additionally, when business rules are defined on multiple fields, it leads to more evaluations and is likely to affect application performance.
6. Not scheduling Logic Hooks and workflows
Workflows and logic hooks may run simultaneously in SugarCRM. Failure to address this tends to affect the time it takes to save a record. To deal with this you can set up conditions to schedule these processes in such a way that that workflows and record saving comes into play after a certain number of logic hooks have been executed. Alternating these processes in such a manner would help improve record saving times.
The Bottom Line!
It all boils down to having a good idea of your business process that you want to automate through Advanced workflows in SugarCRM and making effective use of the tool and resources at your disposal.