Add the concept of "previous value" to "Check if..." rule logic

ASK
Please consider adding the concept of “previous value” to “Check if…” rule logic.

CONTEXT
Currently in Asana, all the “Check if…” rule logic is in the present tense. For example:

  • When… [custom_field_name] is changed
  • Check if… [custom_field_name] is set to ____
  • Do this…

DESIRED BEHAVIOR
There are many situation where the “Do this…” component of the rule depends not just on the current value of the field but also the previous value.

The simplest example is having a custom field to simply track the previous value of a given field. Perhaps you have an T-shirt size estimate field and you get notice that a bunch of them have changed. Rather than having to click through into each to see if they went up or down, if you had this “previous estimate” field you could simply set a rule that when the t-shirt size estimate changes, set the “previous estimate” field to the previous value. Now I have side-by-side the current and previous estimates.

Taking the simple example one step further (to my actual use case), supposed you have a custom field for tracking Status at the task level and you want to create a view grouping tasks by those whose statuses have “Improved”, “No change”, or “Worsened”. In this case I want to have a custom field for something like “Status Change Direction” where a snippet of the rule for illustrative purposes would be something like:

  • When… “custom_status_field” is set to “At Risk”
  • Check if… previous “custom_status_field” value was “ON track”
  • Do this… set “Status Change Direction” to “Worsened”
  • ELSE Check if… previous [custom_status_field] value was “OFF track”
  • Do this… set “Status Change Direction” to “Improved”
    … and so on…

As you can see above, the same new value of “At risk” means two totally different things depending on what the value was before (“Improved” if previously “OFF track” and “Worsened” if previously “ON track”).

BONUS
This would also serve as a workaround for the current issue where the “Project status changed” trigger fires whenever a new Status Update is posted, even if the actual Status does not change.