Retrieve Project Forms and Configured Charts

Hello There,

I have an asana integration that does some project duplication with some custom functionality that I won’t get into.

I’d like to extend this to duplicate projects including the custom charts that have been added to the dashboard and also the form for the project.

As far as i can see, there is no way to retrieve the customer charts on a project or the form.

  1. Have i missed this in the API documentation somewhere (doubt it) ?
  2. Is there any chance that this could be implemented to the API ?

None of this would be an issue if the default behaviour of Asanas project duplication did not create duplicates of the tasks but rather just assigned the existing tasks to the duplicate project. But sadly that’s not the case. I haven’t tested this in a while but I believe that that duplication tool does not duplicate dashboard configuration or forms either.

Hi @Frank_Clark,

You’re correct that the API duplication function does not currently copy custom charts.

It will, however, copy the form - you just have to include forms in the include list.

Thanks @Phil_Seeman - that’s a good start. Hopefully this applies to the API as well as the Asana UI. If it is included in the API i either must have missed it or it’s not documented. May need an update.

It does apply to the API as well as the UI, and it was missed in the documentation, and there is a task to add it but just hasn’t happened yet; see this post for all of the above…

That being said @Phil_Seeman - I have now tried a couple of ways using the PHP sdk and i’m not getting a form returned in the response. Here is an example request URI{projectId}?opt_expand=forms&opt_include=forms&includes=forms

Hi @Frank_Clark,

Sorry for the confusion - we’re talking about two completely different endpoints. You’re using the endpoint to retrieve information for a project; that endpoint does not contain any ability to retrieve form information.

The endpoint I was referring to is the duplicate a project endpoint. I thought that was what you were referring to since you were talking about duplicating a project. But now going back and re-reading your initial post, I see you were talking about just retrieving project info.

Sorry for my confusion - and sorry to report that there’s no way to retrieve form information via the API, only a way to copy it when you copy a project (but I understand that doesn’t help your use case).

Hello @Phil_Seeman - I had realised the miscommunication just now.

It’s a real shame. If there was a way to tell the project duplication tool to just assign the existing tasks to the project rather than create new copies of the task this would be a moot point and my entire integration would no longer be required.

Is there any way to put the request into the roadmap to either

a) Provide option to assign tasks to duplicated project rather than creating duplicate tasks
b) Return form data in project GET request and ability to POST form data in project create request

I imagine that a) is much more simple than b)

One of the other things that i’m unable to recreate are project rules, but i have seen that the project duplication endpoint does handle this.

Another option would be to be able to duplicate a project without tasks, then I could use the API to retrospectively copy the tasks in

I trying to understand your underlying goal here… is this correct:

You want to point to an existing Project A, create a copy of it (let’s say Project X) but without the tasks that were in it, and then point to some other Project B which has tasks in it and multi-home those Project B tasks into the new Project X?

Yes, however there isn’t necessarily a project B. I may want to ‘multi-home’ the tasks from project A, into Project X.

My duplication tool recreates everything about the project but with one minor difference, the tasks are ‘multi-home’ as you put it, rather than creating task duplicates. So I’m looking for a way to have all the benefits of project duplication without having duplicate tasks all over the place.

A typical application for this is creating a new sprint board. You have reached the end of your two week sprint and you want a nice tidy board to kick off your new sprint, but you need to carry over all your unfinished work from the previous board.

@Phil_Seeman - Any thoughts ?


The only thing I’m coming up with is to create a template project which is based on Project A but doesn’t have any tasks in it.

Then when you want to spawn a new iteration of Project A, you would:

  • Use the duplication endpoint to make a new project, let’s call it Project N.
  • When that’s done, loop through each of the tasks in Project A and programmatically add them to Project N.

Does that makes sense?

Perhaps, but in my case only if you can create a project from a template in the API. And also retrieve a list of templates from the API.

I think you can retrieve project templates by filtering the is_template property. But no direct endpoint for getting templates.

As for creating a project using a template, that does not seem to exist. So you’d be back to square 1 really.

Appreciate your help Phil but it seems unless one of the following happens I’m permanently stuck. Based on our conversation there are two solutions that both require api updates.

  1. Make all project data GET-able and POST-able via the api
  • GET and POST project forms
  • GET and POST project rules
  • GET and POST project custom charts
  1. Improve project duplication feature
  • Allow uses to duplicate a project but multi-home the tasks rather than duplication
  • When duplicating projects, also duplicate custom charts added to the dashboard.

You absolutely can - use the duplication API I discussed above in the thread.

Correct - from the data/API standpoint, a template is just a project with that boolean flag set to true.