Skip to main content

Asana — Application Overview

Wrk Product avatar
Written by Wrk Product
Updated today

Asana is a collaborative work-management platform used by teams to organize projects, track tasks, and streamline operational workflows. The Asana integration within the Wrk platform allows you to automate task creation, updates, retrievals, and other workflow activities by calling the Asana REST API directly through prebuilt Wrk Actions.

This document provides an overview of how Asana integrates into Wrk, how authentication works, general API behaviour, and a full list of available Wrk Actions.


Authentication

Asana supports two authentication methods inside Wrk:

1. OAuth 2.0

Users authenticate through Asana’s OAuth flow. Once authorized, Wrk receives an access token (and refresh token) which it uses for all subsequent API calls.

2. Asana Personal Access Token (PAT)

Users can generate a Personal Access Token in the Asana Developer Console. PATs function like static API keys and are passed in the Authorization header.

If the token is missing, expired, or invalid, Asana returns HTTP 401 Unauthorized.


How to Obtain Authentication Tokens

OAuth

OAuth setup is initiated directly inside Wrk. Users are redirected to Asana to sign in and grant access. Wrk securely stores tokens and automatically handles refresh cycles.

Asana Personal Access Token (PAT)

PATs can be generated from the Asana Developer Console:

  1. Log into Asana

  2. Navigate to My Settings → Apps → Manage Developer Apps

  3. Create a Personal Access Token

  4. Copy the token and add it to the Wrk Connected Account


General API Behaviour

Pagination

Asana strongly recommends paginating all list-style or search-style API requests. Large unpaginated requests may time out or return truncated results, whereas paginated requests reliably return data in smaller batches and support structured iteration over large datasets.

Paginated requests return up to 100 objects per page, along with a next_page object containing an offset. If more results exist, you pass the offset into the next request to retrieve the next batch. If no more results exist, next_page will be null.

Strongly Prefer Paginated Requests

  • All new Asana API features require pagination.

  • Some older (“grandfathered”) endpoints still permit unpaginated calls, but these may:

    • Time out,

    • Return truncated data (~1,000 objects), or

    • Become deprecated in the future.

To ensure reliability, always pass a limit parameter to make the request explicitly paginated. Example:

limit=50

Even when supported, unpaginated requests may succeed one day and fail the next depending on server load and dataset size.


Pagination Mechanics

A paginated request includes:

  • limit — number of objects per page (1–100)

  • offset — token that tells Asana where to continue the next page

If no offset is provided, Asana returns the first page.

Asana returns:

"next_page": {   "offset": "<token>",   "path": "...",   "uri": "https://app.asana.com/api/1.0/…" }

If next_page is null, there are no additional pages.

Important Notes

  • Offset tokens expire and should only be used within the context of the same paginated sequence. Data changes in Asana may invalidate older tokens.

  • A paginated request returns up to 100 items at a time.

  • Unpaginated requests may be truncated at ~1,000 results, even when they do not time out.

  • For organizations with very large data sets, non-paginated calls frequently time out and should be avoided.

Output Options

Output options control what fields Asana returns in the response. This is essential for workflows where:

  • You need specific fields (e.g., completed, custom fields, due dates)

  • You want to reduce overhead by only returning minimal data

  • You want to ensure stable output structure for downstream workflow steps

1. opt_fields

opt_fields is the primary mechanism for selecting which fields appear in the response. Example:

opt_fields=name,assignee,due_on,completed,custom_fields

This returns only the specified fields, reducing payload size and improving performance.

2. opt_pretty

A debugging setting that returns human-readable JSON. Not recommended for automated workflows.

opt_pretty=true

3. opt_expand

Expands nested resources (like projects, users) inline. Without expansion, Asana typically returns only the GID references. Example:

opt_expand=projects,assignee

Use this sparingly, as expanded records are significantly larger and slower.

IDs (GIDs)

All Asana resources use string-based global IDs (GIDs).
These must be passed into Wrk Actions exactly as returned from the API.


Available Wrk Actions for Asana

Wrk provides a curated set of Asana Actions that map directly to Asana’s most commonly used task-management APIs.

  • Perform an API call in Asana

  • Create a task in Asana

  • Create a subtask in Asana

  • Update a task in Asana

  • Delete a task in Asana

  • Duplicate a task in Asana

  • Add followers to a task in Asana

  • Add a tag to a task in Asana

  • Retrieve a task from Asana

  • Retrieve multiple tasks from Asana

  • Retrieve tasks from a project from Asana

  • Retrieve tasks in a workspace from Asana

  • Retrieve a project from Asana

Additional Resources

Did this answer your question?