The below screencast demonstrates how to use built in Workflows and Background Updater from Jackal Software to keep days in sales stage calculations up to date in SuiteCRM
Video description:
This video demonstrates how to use built in SuiteCRM Workflows along with Background Updater from Jackal Software to track the number of days Opportunities are Open to Closed.
This is common functionality to track KPIs or for Reporting in SuiteCRM. Some other examples of common functionality that could be done in a similar process are:
• Tracking Days Since a Contact or Lead has had a Call or Meeting scheduled
• Tracking Days a Case is created until updated by an Agent
• Tracking Days to Close a Case • Days between Quote sent and Invoiced
• Trigger Logic Hooks after an integration performs a database update Background Updater is available in the SuiteCRM Store.
The primary goal of the add-on is to make it easy to keep records updated on regular intervals. This helps for triggers based on timestamps to work as well as trigger any custom code or Workflows run on records without depending on users saving them.
While some of the functionality in Background Updater can be accomplished using the Save in Scheduler option in a Workflow that is more of a shotgun approach. With Background Updater you can be much more granular in which records get updated and when.
For example, if an integration syncs Orders and Line Items from an ERP system. For performance reasons you have this as a direct database update but you have code that needs to update related records after the integration.
With Background Update you can specify Orders get update to sum the related Line Items and then Accounts get updated to sum Orders.
https://store.suitecrm.com/addons/background-updater?tag=shad
Link to SuiteCRM documentation on Calculated Fields https://docs.suitecrm.com/user/advanced-modules/workflow-calculated-fields/
Formula used in Demo for the Calculate Days in Sales Stage Workflow:
{ifThenElse({or({equal({P2}; Closed Won)};{equal({P2}; Closed Lost)})};{datediff({P4}; {P3};days)} ; {datediff({P4}; {P1};days)} )}