Import Asana Data to Google Sheets
In this guide, we’ll walk through how to pull tasks from the Asana API directly into Google Sheets, using the API Connector add-on for Sheets. We’ll first get a personal access token from Asana, and then set up a request to pull in data from Asana to your spreadsheet.
- Before You Begin
- Part 1: Get your Asana Personal Access Token
- Part 2: Create your API Request URL
- Part 3: Pull Asana API Data into Sheets
- Part 4: More Example API URLs
- Part 5: Handle Pagination
BEFORE YOU BEGIN
Click here to install the API Connector add-on from the Google Marketplace.
PART 1: GET YOUR ASANA PERSONAL ACCESS TOKEN
- Log in to Asana and click your profile icon in the top right corner to open the profile drop-down menu. Click ‘My Profile Settings’
- From the My Profile Settings menu, click Apps
- Click Manage Developer Apps
- On the Developer Apps screen, click “+New Access Token”
- A screen will open, prompting you to provide a name. You can name it whatever you like, but here we’ll name it Google Sheets. Check the terms and conditions box, and click Create Token.
- You’ll now see a Token. Copy this as we’ll need it shortly. Congrats! You now have access to Asana’s API.
PART 2: CREATE YOUR API REQUEST URL
We’re going to follow the Asana API documentation to first make a simple request with the /me endpoint.
- Base URL:https://app.asana.com/api/1.0
- Endpoint: /users/me
Putting it all together, we get the full API Request URL:
https://app.asana.com/api/1.0/users/me
PART 3: PULL ASANA API DATA INTO SHEETS
We can now enter all our values into API Connector to import Asana data into Google Sheets.
- Open up Google Sheets and click Add-ons > API Connector > Open.
- In the Create tab, enter the Request URL we just created
- Under Headers, enter Authorization as your Key, and Bearer YOUR_TOKEN as your Value, like this:
Authorization Bearer YOUR_TOKEN Replace YOUR_TOKEN with the personal access token you got above in step 6.
- Create a new tab. Give it a name and click “Set current” to use that tab as your data destination.
- Name your request and click Run. A moment later you’ll see details about your account populate your sheet:
- Pay special attention to the field labeled
data » workspaces » gid
. This is your workspace ID, which we can use to make further requests for tasks and project information.
PART 4: MORE EXAMPLE API URLS
- Experiment with different endpoints and query strings as described in the documentation. For example, to retrieve all your tasks, enter the following in the API Request field:
https://app.asana.com/api/1.0/projects/PROJECT_ID/tasks
Replace
PROJECT_ID
with your project ID (run a request to the/projects
endpoint or click on your project and check the URL bar to see this value). - To create a new task in Asana from Google Sheets, make a POST request with this URL
https://app.asana.com/api/1.0/tasks?projects=PROJECT_ID&workspace=WORKSPACE_ID
As noted earlier, find your
PROJECT_ID
value from the URL bar in the interface, and get yourWORKSPACE_ID
from your initialhttps://app.asana.com/api/1.0/users/me
request. Input your task details into the POST body as described in the documentation, like this:You will immediately see your new task reflected in your Asana dashboard. Note that you can only create one task at a time with this method.
PART 5: HANDLE PAGINATION
Asana recommends using pagination when retrieving large result sets, to break responses into smaller sets. If your response set is too large, you may receive an error like this: “The result is too large. You should use pagination (may require specifying a workspace)!” To resolve this issue, paginate your response by using the ‘limit’ and ‘offset’ parameters as described in the documentation, like this:
page 1: https://app.asana.com/api/1.0/projects/PROJECT_ID/tasks?limit=100
page 2: https://app.asana.com/api/1.0/projects/PROJECT_ID/tasks?limit=100&offset=+++Asana Tasks!D3+++
Note that the second request references the response token from the first request in order to populate the offset
parameter.
In API Connector, you can either run these request URLs manually or loop through automatically using pagination handling (paid feature), like this:
- API URL: enter your request URL as usual, including limit=100
- Pagination type:
next page URL
- Field name:
next_page.uri
- Number of pages: enter the number of pages you’d like to fetch
We could set up pagination with offset-limit parameters, but since Asana helpfully provides the full next page URL in the “uri” field, the pagination setup in the screenshot above demonstrates how to use ‘next page URL’ pagination.
can we use this API method to pull data from asana to google sheet? specifically to pull all the tasks (both not completed and completed for all members in the asana)
Yes, please check https://developers.asana.com/docs/#asana-tasks for all the API calls you can make involving tasks. This guide also walks through how to pull task info in the first bullet under Part 4.