Tricking an Asana rule into changing nothing

This one is a bit technical, but if you find yourself making a lot of rules chances are it may come in handy. :nerd_face:

Rule branches are evaluated in sequence. This means that when a rule gets triggered, Asana will go through branches in sequence. Starting at the top, it will test brach conditions, until the first branch where the condition(s) evaluate to true and execute the corresponding action. That means any branches beyond that - eventhough they might also evaluate to true - are completely ignored.

So besides the fact that we need to take this into account when constructing our rules, we can also take advantage of that fact, as sometimes we want a rule to do nothing. A situation like the following:

When <trigger> happens, I want stuff to happen, but not when a <specific detail> is true

For example: When a custom field contains a certain value.

The way I used to solve this is to add the inverse of that specific detail to all conditions in branches, but sometimes that doesn’t work. Especially when you have multiple conditions per branch already, and because with current functionality you are forced to chose between and() and or() and can’t combine.

The solution is to have the first branch catch the exception and do nothing. The challenge however, is that Asana doesn’t allow you to save a rule unless all branches have an action.

Lucky for us, we can have an action that doesn’t change anything. Two actually.

  1. We can set the task title to the task title:

  2. We can set the task description to be the task description

This trick uses variables in rules and simply feeds the old value into the new value.

Jan-Rienk - Asana Expert @ Improving Every Day

19 Likes

PS: If you’ve made it so far I guess you are a person who can appreciate the following feedback topics:

2 Likes

Clever! This will come in handy.

Thanks,

Larry

2 Likes

Holy sh*t that’s clever! cc @Kelsea_Lopez @Arthur_BEGOU @Julien_RENAUD

2 Likes

@Jan-Rienk, I also want to say this is clever but, I’m not following the situation or use case you describe… could you perhaps rephrase it please?

1 Like

Thanks @Richard_Sather I didn’t realise text between <> wasn’t showing up. :sweat_smile: Made it show up as code now.

Ahh ok that makes sense now, thanks!

Clever indeed :nerd_face:

1 Like

I had to read a few times to understand, but suddenly I got it and that’s super cool :star_struck:

Thanks @Jan-Rienk for sharing that advanced trick

1 Like

Thanks! If you have any feedback on how I could make it clearer or what parts are hard to read/understand let me know.

1 Like

The reason I clicked this is what I need it for, and my work around is to create a different section thereby not triggering the rule, but perhaps his will work instead.

For me - when a task is added to a section, I want it to be added to a particular section on a different Project. However when it’s already on that project, i don’t want it moved around again.

so everything in that section normally will get added, and what’s already added I don’t want moved around

Nice trick . :clap::clap:

1 Like

@Rachel_O_Neill If you make a custom library field <is added to project name> and set it to yes for all new tasks in that project in a rule, and then add it to all tasks in that project, that should set you up.

Then you can use this trick and check for whether that field is set to yes and do nothing, and all other branches can add to the other project and specific sections.

Love it!