Reporting in Asana the No-Code/Low-Code way

“Which projects are currently stalled?”

“What projects are currently active in our organisation?”

“What are we working on right now?”

There is no easy way of answering this question within Asana. You can pay for solutions to do this for you or you can use the method laid out below. The same method can serve as a starting point to answer numerous questions regarding your Asana data.

Note: This process assumes you are using the Business Plan or higher in Asana as it relies on Portfolios.

Using Postman to access your Asana project data

Postman is a desktop application that allow you to access an API such as Asanas. An API (Application Programming Interface) usually allows custom code to interact with data. So for example, one might use the Asana API to create tasks in response to events in some other system. However, it can also be used to pull data out of Asana.

There are (of course) some security hurdles to overcome before you can access your Asana data in Postman – How to access asana data using Postman is documented here – It takes about 10 mins.

Once Postman is set up and accessing your Asana data, you should be receiving some JSON output.

Converting the JSON to a readable spreadsheet format.

For this, I use a handy website: https://json-csv.com/

Just paste the JSON into the text area. In my experience, the site can easily process >2000 lines of Json in a matter of seconds. On the subsequent page click on Download CSV or whatever format you prefer.

The resulting spreadsheet will probably have some columns you do not require so clean up as you see fit.

Create a portfolio of all projects

This is the slow bit. Create a new portfolio in Asana and add all of the projects to it.

Give it an appropriate name such as “All Active Projects”. Public or Private – Choose whatever you prefer, you can always change this later.

Use the “+ Add Work” button to add all the projects in your spreadsheet to the Portfolio. Unfortunately, at the time of writing, there is no option to import a list of projects.

Depending on how many projects you have, this can take some time, but you will already have created a useful resource within your organisation.

Are we finished? Sure – If you want, but there’s a way to get even more out of this data.

A step further: Create a Live Dashboard using Google Sheets

What you have is handy, but this step will allow you to dig deeper into the progress of your projects. The following assumes you have a Google account and are relatively familiar with Google Sheets.

This takes less than a minute to generate your new Google Sheet report.

As you can see, this Google sheet remains in sync with your portfolio. So whenever you update your portfolio, your Google Sheet will replicate the change.

There is a time lag, so if you need the Sheet bang up to date with the latest data, just go through the export process again – This will not overwrite your current sheet, just update it with fresh data.

The graphs look interesting, but the really good stuff can be seen in the second tab: “Asana Portfolio Data”.

Some highlights to look for:

  • “Current Task Count”:
    • While your Task Progress gives you the Percentage Complete, this spreadsheet also includes the actual counts along with the count of Overdue tasks.
  • “In the Last Week”:
    • “Tasks Added” and “Tasks Completed” – In an organisation where dozens of projects are being worked on at any one time, this can be useful to differentiate between those that are getting attention and blocked/zombie projects.

Keeping everything up to date

Obviously, new projects will be created as time goes by so how do you keep things up to date? I repeat the Postman step once a week. Newly create projects usually appear at the bottom of the list. I add any new projects to my portfolio and the Google Sheet will update itself promptly after that.

Even more advanced dashboards can be created from this starting point. I’ll come back to these at a later date. Let me know what you would like to see by emailing antgalvin at gmail dot com.

Accessing Asana data using Postman

Postman is an application (Desktop or Web) that can be used to access the Asana API (as well as many others). There is a whole language around APIs that can get pretty confusing so follow this step-by-step guide below to get at your Asana data with the minimum of fuss.

This process covers use of the Web Application which is almost identical to the Desktop Application. So let’s get on with Using Postman to access your Asana data!

Sign up for a Postman account

Go to https://www.postman.com/ and sign up.

Screenshot of Postman Sign Up Page

On clicking “Create Account”, I filled in a brief form supplying some additional information for my account.

The next step, “Collaborate with teams” can be skipped. Click “Continue without a team”.

Screenshot of Postman Sign Up Process

This should bring you to a welcome screen.

Welcome page for Postman web app

If you signed up via email, you will probably have received a confirmation email by now. Be sure to confirm your email.

Set Up Postman

On the left hand side of the screen above, you will see a link labelled “Workspaces”. Click on that link and select “New workspace”.

Setting up workspaces in Postman

Your new workspace name should reflect what you are currently working on. Under visibility, select “Personal” from the drop down and then click on “Create Workspace”.

Create a new workspace in Postman

You will now be brought to the your newly created workspace. To organise our workspace, we first need to create a collection. Keep in mind that we are using postman in a very simple way, so we do not need to worry too much about how we organise our work.

New collection creation within Postman

In this case, I called my collection “Basic Asana Reporting”.

Adding a request to a Postman collection

Retrieving data from Asana’s API

To get started with talking to the Asana API. Click on the “Add a request” link (Look at the text underneath the area highlighted in red on the previous image).

Postman usually requires some technical understanding of APIs – I am assuming that the reader is here because they do not have this technical knowledge so, for your own sake, it is probably best to just follow the steps without worrying too much about understanding all the terminology.

By default, all new requests in Postman are “GET” requests, leave that as is.

A new GET request in Postman

To get started, we are going to request a full list of all the current projects in Asana for our organisation.

We need to get two things prior to submitting requests to Asana’s API.

  1. A Personal Access Token
  2. Your Asana Workspace ID

Personal Access Token or PAT

Using Postman to access your Asana data requires an Asana generated PAT.

Within the Asana Webapp, go to “My Profile Settings” accessable by clicking on your profile picture at the top right of the app.

Where to find "My Profile Settings" on Asana's menu

Click on the Apps tab and select “Manage Developer Apps”

Where to find "Manage Developer Apps" in Asana's profile settings.

Click on “+ New Access Token”

Generating a new Personal Access Token in Asana

Give the token a name and agree to the Ts & Cs.

Naming a new Personal Access Token in Asana

Click Create Token. A token looks like a long string of random characters roughly 50 characters in length.

Note – You should never share the token with anyone. Keep it safe.

Copying a new Personal Access Token in Asana

Copy the token and go back to Postman. Select the “Authorization” tab and select “Bearer token” from the drop down.

Setting up authorizations for the Asana API in Postman

Paste your token into the field provided.

The location of the token when setting up an Asana GET request in Postman

Your Asana WorkSpace ID

Visit https://app.asana.com/api/1.0/workspaces in the same browser where you are logged into to Asana. You should see a long string listing all of the workspaces you have access to. Each workspace will have a long number called a “gid” associated with it. Grab the gid for the workspace you are interested in. It should look like a long number about 13 digits in length.

Finally – Retrieving data from Asana with Postman

At last, in Postman, paste the following URL into the GET field. (Replace the text <<ENTER YOUR gid HERE>> with your actual gid obtained in the last step).

https://app.asana.com/api/1.0/projects?workspace=<<ENTER YOUR gid HERE>>&limit=100&archived=0&opt_fields=created_at,owner.name,public,name,archived,is_template

You will notice when you do this that Postman automatically creates some Param fields.

An example of a GET request for Asana's API in Postman

Click the large blue “Send” button on the right hand side of the Postman screen. After a few seconds you should see a response. Hopefully not an error message. You want the Status of the response to be “200” and a large JSON string to appear in the lower portion of your screen. (JSON is simply a way of formatting data, note the curly crackets, quotes and colons).

Retrieving results from Asana's API in Postman

More than 100 projects in your Asana Workspace? In that case, you need to deal with “Pagination”. To limit the workload on their API, Asana allows you to access only 100 records at a time. (Hence the parameter “limit” above).

To see the remaining projects, grab the full JSON from Postman and copy it into a text editor such as Notepad.

Where to find the Offset token in Asana's API results in Postman

Copy the extremely long string labeled “offset”. You need everything inside the double quotes. This needs to be added as a new parameter in Postman. Under the Params tab, add a new Key / Value.

Adding a new key in Postman

The key should be set to “offset” and the value should be the very large string copied from the first JSON. Once entered click “Send” once more.

Note: If you take too long, you may receive an error “offset: Your pagination token has expired.” In this case, untick the checkbox beside the offset Key and re-Send. This will give you the first 100 projects again with a new offset string at the bottom. Re-tick the checkbox beside offset, copy the new offset keyinto the Value field opposite the offset key. Click Send.

Adding a Offset to an Asana GET request in Postman

That’s it – You may have to repeat this last step if you have greater than 200 projects. Eventually your JSON will not have an offset value for you to copy.

The end of the results fetched from Asana's API in Postman

Congratulations – You have completed the guide to using Postman to access your Asana data.