Custom Task Type Best Practices

Best Practices

I was very excited to see the new Custom Task Types, and the timing was great, as it came as we were into improving our software development release management. But… I am reluctant to deploy Custom Task Types without a method of ensuring that there is a ‘global library’ approach that can be used for deployment some best practices to help avoid the issues I’ve observed below.

Custom Task Type Idiosyncrasies

I also ran into some interesting things to be aware of with Custom Task Types.

Example

Custom Task Types & Statuses were new to Asana and new to us, so we were experimenting with them. As a result, Task Template Task Types were modified after initial creation. For example, we named our first Task Template ‘Dev Task’. During experimentation, I noticed some sporadic odd behavior. For example, I saw two “Dev” task types during one testing set, even though only one was created per project. Additionally, the simple Rule to update the Task Status when a Task field changes does not change the ‘Dev Task’ status, at least not visibly. I’m wondering, with Custom Task Types being relatively new, if there are scenarios where they get out of sync?

My theory is that when a Rule runs, the Rule ‘thinks’ it has successfully changed the Custom Task Status, but in reality, it has not changed the ‘correct’ one. In other words, in the Asana backend, there are multiple ‘Dev Task’ types based on the changes made since it was created. Due to this, the Rule runs, but is not running on the correct instance of the ‘Dev Task’ type. It’s just a theory, but it would explain this behavior.

We’re still learning, but it seems there are enough unexpected behavior incidents for us to wait on deploying to real projects and teams. If anyone has more info or best practices that would help guide us on deploying Custom Task Types safely, I would be very interested. Thanks.

Hi @Aj_D,

I would say, based on what I know about custom types and the Asana data model overall, 98% chance this is not what’s happening.

Do you have tasks multi-homed into multiple projects where you have a same-named custom type defined in those multiple projects? Say you have a “Dev Task” custom type defined in Project A and also Project B (yes, I know, custom types should be global so that this should not be able to happen - but currently it can, as you’ve noted). Now say you create a task in Project A of that custom type. Then you multi-home that task into Project B. You might then update the “Dev Task” custom type in project B but not see any change to the task in question - because it’s the “Dev Task” type of Project A, which is a wholly different type than the one you just updated in Project B. Clear as mud?

You can help to diagnose your situation with the following API endpoints, without having to do any coding…

(1)
To see all of the custom types in a given project, grab the project’s ID from your browser’s address bar when viewing the project; for example the 1120478906172262 here:

https://app.asana.com/1/1114389217345882/project/1120478906172262/list/1204333897852703

Put that project ID into the following text; copy/paste the text into your address bar and press Enter:

https://app.asana.com/api/1.0/custom_types?opt_fields=name,status_options.gid,status_options.name&project=[your project ID goes here]

You’ll see a list of the custom types defined in that project, with their IDs.

(2)
To see the custom type of a given task (if it has one), grab the task’s ID from the address bar when viewing the task; for example the 1204570813157810 here:

https://app.asana.com/1/1114389278903882/project/11212567166172262/task/1204570813157810

Put that task ID into the following text; copy/paste the text into your address bar and press Enter:

https://app.asana.com/api/1.0/tasks/[your task ID goes here]?opt_fields=custom_type,custom_type_status_option

That will show you the custom type of the task (if it has one) and the current custom type status. It includes the IDs of these, which you can then compare to the IDs you got from (1) above. This will help you see exactly what custom types are defined in the project and what type is on a given task.

1 Like

A few other notes:

Yes, there a a bunch of us who are puzzled abut the project-specific nature of custom types and wish they had been designed to be global instead.

Wow, I had not noticed this before, but this is really bad that you can do that! :skull_and_crossbones: I’m going to raise that with Asana.

Hello Phil. Thanks for that great info. I apologize for my delay in responding. I was let go from my company due to downsizing on the day you posted this, so I have not been able to view/use your technique, since I no longer have access to that level of Asana. :smirking_face:

However, I do understand what your stating, and your tips are very good to help understand how the Custom Task Types are being used between Projects, especially due to the current inability to create/use global Custom Task Types.

Thanks for that!

Thanks! Yes, I was quite surprised as well when I found that. As I was performing the tests I was thinking, “well, sure, the Custom Task Type could be multi-homed to multiple Projects, but surely you wouldn’t be able to create duplicate named Custom Task Types WITHIN the same project”. But… I was wrong, you can. It seems like something Asana will likely remedy fairly quickly, I would think.