HOW TO SEND Workflow WHEN Email Expected Closed Date Past 1 Day

This request has come up again. I am on the latest version of on premise. Can anyone help?

 

I am trying to create a workflow and/or (business process author) for new and updated opps. where I need to send an email if the opportunity expected close date is past 1 day.

SO IF TODAY > opportunity expected close date SEND EMAIL.

Small issue; how do I handle if the user changes the original expected close date to another value?

 

Can this be done?

 

Thanks

Does anyone have a possible solution for this, it does not have to be with the new BPM. I can also implement with the old workflow but as long as there is a solution.

Thanks

Parents
  • I solved this problem by setting up a SugarBPM process with a feedback loop (see image). The process sends an email when the closed date has passed for an open opportunity, waits one day, and then the Gateway checks the Expected Close Date and the Sales Stage. If the Expected Close Date has not been changed to a future date, and if the Sales Stage has not been set to Closed, then another email is sent. This happens once per day until either the Expected Closed Date is set to a future date or the opportunity is closed. Hopefully this will help.sugarbpm process with feedback loop

  • This solution will work great but I'd caution on looping BPM processes. The supporting tables can get bloated quite quickly and cause system issues and/or eat up your storage. Especially for modules with lots of recors.

    What you may need is a job that finds records meeting the criteria and performs some updates on the records and then the BPM process and trigger an email or whatever action you want.

  • That's an important point about bloated tables. In our case, the loop only sends out emails and does not create any new records, so its safe in that regard.

  • Hi Yury Voloshin,

    If you are running a process definition, you are creating rows in the database.

    The pmse_bpm_flow table stores a new row for every step of every process, including every element the record passes through, and every sequences flow line.

    For example, if you have a simple process definition that has only a start event and an end event and a single sequences flow line between them, every time that process runs it will create at a least the following:
    One row in pmse_inbox (per process run)

    One row in pmse_bpm_thread (can be more than one per process run)

    Three rows in pmse_bpm_flow

    If a process loops, it will record to the pmse_bpm_flow table a new row each time the record passes through the elements in that loop. This might be what was meant by bloat.

    I hope this helps!

Reply
  • Hi Yury Voloshin,

    If you are running a process definition, you are creating rows in the database.

    The pmse_bpm_flow table stores a new row for every step of every process, including every element the record passes through, and every sequences flow line.

    For example, if you have a simple process definition that has only a start event and an end event and a single sequences flow line between them, every time that process runs it will create at a least the following:
    One row in pmse_inbox (per process run)

    One row in pmse_bpm_thread (can be more than one per process run)

    Three rows in pmse_bpm_flow

    If a process loops, it will record to the pmse_bpm_flow table a new row each time the record passes through the elements in that loop. This might be what was meant by bloat.

    I hope this helps!

Children