Using Advanced Workflow to identify overdue records

Fairly basic question - is it possible to use Advanced Workflow (Sugar BPM) to follow up overdue records which can currently be done easily in Legacy Workflow.

It seems Advanced Workflow is limited to selecting a specific date rather than for example "before today" or a fixed time span.

For example : Expected Close Date is before today or Task is Due in 5 days time ?

Thanks in advance.

Greg Barrass 

  • Hi Greg Barrass,

    shouldn't a CRM system assist a user to avoid situations like that? As a consultant and system designer I would not like to set something like this up that tells me what is already too late. My thinking would be to set up a mechanic that avoids that any date will become overdue so you need a message like "Warning! Your taks is due in 3 days and you have not even started the work" and then "Escalation: Your task has been escalated to person X because you have not started the task 2 day before it is due"

    Bests

    Björn Canales Pfisterer

    Technical Support Manager

    provalida GmbH

  • Bjorn,

    Good point - I was trying to make the scenario simple.

    Regardless, I can't see how these types of situations can be achieved with Advanced Workflow.

    Regards

    Greg Barrass

  • Hi Greg Barrass,

    ok, so what you need is a time based trigger. Unfortunately SugarBPM can only be triggered by a saved record (on create, one time update or every update) so I don't see a chance to activate a SugarBPM when the time definition is matched.

    Depending on the scenario you can trigger a workflow for each record on create and play with wait events but I guess you need to predefine the waiting times and can't use variables here. This may end in a big amount of open processes which may cause performance issues.

    If anyone else is having an idea to solve this I would be really interested!

    Bests

    Björn Canales Pfisterer

    Technical Support Manager

    provalida GmbH

  • Bjorn,

    Thanks for the confirmation.

    I am surprised (as I am sure you are) that this is not yet in Sugar BPM given it is a fundamental part of "legacy" workflow and Sugar BPM in its various iterations has been available for at least 18 months that I am aware of. 

    I will post this up in the appropriate area for people to vote on for SugarCRM to address. It is a major barrier to migrating to Sugar BPM.

    Regards

    Greg Barrass

  • Hi Greg,

    I agree but technically there is a huge difference between both scenarios. A saved record is a single event to one record within the database and easy to fetch but on tracking time events you need an absolutely different technical aproach.

    First of all you need to define a "tick" which can be every milisecond, minute, second or whatever. Then you need the ability to check the database for processes on each "tick" including all records that have the current timestamp in any field that would/could be a trigger. You can imagine what a huge impact this can have to the database / server performance especially on large databases and or large amount of time based processes.

    I hope this rough explaination helps to understand why SugarCRM is not "simply" adding this feature to SugarBPM :-)

    Bests

    Björn Canales Pfisterer

    Technical Support Manager

    provalida GmbH

  • This is clearly on of the areas where SugarCRM does not work hard enough on their core product. This function would be so helpful for process automation.

  • Hi Greg Barrass,

    This linked Knowledge Base article explains how Time-Elapse Workflows function at a database level.

    • Both Legacy Workflow and SugarBPM depend on record save to trigger.
    • In a time-elapse Legacy Workflow, the initial conditions are met, a new row is written to workflow_schedules with an expiration dateTime, and a scheduler performs actions and alerts when that expiration is in the past.

    In Advanced Workflow, a Wait Event in a process definition works similarly. A row is written to the pmse_bpm_flow table when the record hits the Wait Event and that row is given a defined expiration dateTime based on the UI configuration of the Wait Event in the definition. A scheduler will send the record on to the later Actions, etc, the next time it runs following that expiration dateTime. New in 9.0.0, you can set Termination Criteria to terminate the process when the dateTime field changes. If the Start Event is set to respond to all Updates with no other criteria, as one example, a process terminating on field change will immediately re-trigger that process definition, giving your, the process designer, more power to leverage Wait Events based on field values more dynamically.

    Process definitions following BPM best practices are intended to be used like flow charts that represent the entire life cycle of a record with delays associated with Wait Events, Receive Message Events, and user Activities after the record has entered the process. In an ideal BPM model, one process definition per module would represent the life cycles of all records and the diverse paths those records can take through your users' work. In comparison, Legacy Workflow is restricted to a one-step condition->action/alert model. 

  • Patrick,

    Thats helpful and I fully understand Legacy Workflow.

    How would you design a SugarBPM workflow that, for example, monitors all open tasks and sends email reminders to the assigned users that the task is not complete that is due in 5 days time ?

    Regards

    Greg Barrass

  • Patrick,

    Or, sends emails to assigned users of Opportunities to update expected close date of opportunities that have a past expected close date.

    Simple examples, but it will help many of us, if we can see how this is done in Sugar BPM.

    Regards

    Greg Barrass