> For the complete documentation index, see [llms.txt](https://docs.coupler.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coupler.io/sources/category/project-management/asana.md).

# Asana

Export Asana tasks, projects, sections, and portfolios to Google Sheets, BigQuery, or databases with Coupler.io — no coding required.

Asana is a project management platform that helps teams organize tasks, track projects, and coordinate work. With Coupler.io, you can automatically export your Asana data — tasks, projects, users, and more — to spreadsheets, databases, or BI tools without writing a single line of code.

## Why connect Asana to Coupler.io?

* **Centralize project data** — pull tasks, sections, stories, and portfolios into one place for reporting
* **Track team performance** — combine Users and Tasks data to see workload distribution across your team
* **Build live dashboards** — send Asana data to Google Sheets, Looker Studio, BigQuery, or AI tools like ChatGPT or Gemini
* **Keep data fresh automatically** — schedule recurring exports so your reports always reflect the latest project status

## Prerequisites

* An active Asana account (Free, Premium, Business, or Enterprise)
* Your Asana account must belong to an **organization or team workspace** — personal project spaces do not support API access
* You must have access to the projects, portfolios, or workspaces you want to export

{% hint style="warning" %}
Asana's API does not work with personal project spaces. If you see a "Data cannot be fetched" error, make sure your account is part of an organization workspace, not a personal one.
{% endhint %}

## Quick start

{% hint style="success" %}
Start with the **Tasks** entity — it contains the richest data and is the most commonly used for reporting and analysis.
{% endhint %}

{% stepper %}
{% step %}
**Create a new data flow in Coupler.io.** Go to your Coupler.io account and click **Add data flow**. Search for and select **Asana** as your source.
{% endstep %}

{% step %}
**Connect your Asana account via OAuth.** Click **Connect** and sign in to Asana when prompted. Coupler.io uses OAuth, so no API keys are needed — just authorize access and you're in.
{% endstep %}

{% step %}
**Select an entity to export.** Choose the data entity you want — Tasks, Projects, Users, Portfolios, and more. See the table below for all available entities.
{% endstep %}

{% step %}
**Choose your destination.** Select where you want to send your data — Google Sheets, Excel, BigQuery, Looker Studio, PostgreSQL, or an AI destination like ChatGPT, Claude, or Gemini.
{% endstep %}

{% step %}
**Run your data flow.** Click **Run** to execute a manual run. Once it completes successfully, your Asana data will appear in your chosen destination.
{% endstep %}
{% endstepper %}

## Asana data overview

Coupler.io gives you access to 9 Asana entities, covering everything from individual tasks and comments to top-level portfolios and workspaces. This page explains what data is available and how to use it effectively.

## Available entities

| Entity     | Best used for                                                |
| ---------- | ------------------------------------------------------------ |
| Tasks      | Task tracking, workload analysis, deadline monitoring        |
| Projects   | Project status reporting, portfolio views                    |
| Sections   | Workflow stage analysis                                      |
| Stories    | Audit trails, comment history, activity tracking             |
| Tags       | Categorization and filtering across tasks                    |
| Teams      | Org structure, team-level reporting                          |
| Users      | Capacity planning, user access audits                        |
| Portfolios | Executive-level project tracking (Business/Enterprise plans) |
| Workspaces | Multi-workspace inventory                                    |

## Tasks

#### Key fields

| Field           | Description                                     |
| --------------- | ----------------------------------------------- |
| `name`          | Task title                                      |
| `assignee.name` | Name of the person assigned                     |
| `due_on`        | Due date                                        |
| `completed`     | Whether the task is complete (true/false)       |
| `completed_at`  | Timestamp when the task was marked complete     |
| `created_at`    | When the task was created                       |
| `modified_at`   | When the task was last updated                  |
| `projects`      | Projects the task belongs to                    |
| `tags`          | Tags applied to the task                        |
| `parent`        | Parent task (for subtasks)                      |
| `custom_fields` | Custom fields added in Asana (returned as JSON) |

{% hint style="info" %}
Custom fields are returned in a JSON-formatted column. You can use Coupler.io's calculated column feature with `json_extract` to pull specific custom field values into their own columns.
{% endhint %}

## Projects

#### Key fields

| Field                 | Description                  |
| --------------------- | ---------------------------- |
| `name`                | Project name                 |
| `owner.name`          | Project owner                |
| `current_status.text` | Latest project status update |
| `due_date`            | Project due date             |
| `team.name`           | Team the project belongs to  |
| `created_at`          | When the project was created |
| `modified_at`         | Last modified date           |

## Users

#### Key fields

| Field        | Description                    |
| ------------ | ------------------------------ |
| `name`       | Full name                      |
| `email`      | User email address             |
| `workspaces` | Workspaces the user belongs to |

## Stories

#### Key fields

| Field              | Description                                        |
| ------------------ | -------------------------------------------------- |
| `created_at`       | When the story was created                         |
| `created_by.name`  | Who created the story                              |
| `text`             | Content of the comment or activity entry           |
| `type`             | Story type (comment, system)                       |
| `resource_subtype` | Specific activity type (e.g., assigned, completed) |

## Common field combinations

* **Tasks + Users** — Join on `assignee.gid` to build workload and capacity reports
* **Tasks + Projects** — Join on project ID to filter or group tasks by project
* **Projects + Teams** — Join on `team.gid` to see project counts and status per team
* **Stories + Tasks** — Join on task ID to attach comment history to task records

Use Coupler.io's **Join** transformation to combine any two of these entities in a single data flow.

## Use cases by role

{% tabs %}
{% tab title="Project managers" %}

* Export **Tasks** filtered by `modified_at` to track what changed this week
* Build a project health dashboard in Looker Studio using **Projects** data
* Monitor overdue tasks by filtering on `due_on` and `completed = false`
* Use **Sections** data to visualize workflow stage distribution
  {% endtab %}

{% tab title="Team leads" %}

* Join **Tasks** and **Users** to see per-person task counts and completion rates
* Export **Stories** to review activity history and identify bottlenecks
* Send task data to ChatGPT or Claude to generate automated team summaries
  {% endtab %}

{% tab title="Operations & reporting" %}

* Use **Portfolios** to get a cross-project view for executive dashboards
* Append Tasks data from multiple Asana workspaces using Coupler.io's **Append** transformation
* Export to BigQuery or PostgreSQL for long-term trend analysis
* Use the **Changed after** filter to do incremental loads and keep data warehouse tables up to date
  {% endtab %}
  {% endtabs %}

## Platform-specific notes

* **Personal project spaces** do not support Asana's API — you must be part of an organization workspace
* **Portfolios** are only available on Asana Business and Enterprise plans
* Filtering tasks by a specific project GID is not natively supported — export all Tasks and filter in your destination or using Coupler.io's filter transformation
* Subtasks are returned as Tasks with a non-null `parent` field — they are not a separate entity
* Attachments and media files cannot be exported — only structured data is available
* The **Changed after** filter applies to the entity's `modified_at` field, so it works well for incremental exports of large task lists

## Asana common issues

### Connection issues

<details>

<summary>OAuth authorization fails or I'm redirected back with an error</summary>

Make sure you're signing in with the correct Asana account — the one that has access to the workspace you want to export. Try disconnecting the existing connection in Coupler.io, revoking Coupler.io's access in your Asana account settings, and reconnecting from scratch.

</details>

<details>

<summary>Coupler.io doesn't show my Asana Business account or workspace</summary>

If your workspace isn't appearing, check that your Asana account role allows Portfolio or workspace access. For Portfolios specifically, confirm you have create/edit permissions in Asana. If the issue persists, try re-authorizing your connection — sometimes a fresh OAuth handshake resolves visibility problems.

</details>

### Missing data

<details>

<summary>Custom fields are missing or show as a long JSON string</summary>

Asana returns custom fields as a JSON-formatted column rather than individual columns. The data is there — it's just nested. Use Coupler.io's calculated column feature with the `json_extract` function to pull specific custom field values into their own columns.

</details>

<details>

<summary>Some columns are empty (e.g., completed_by.name)</summary>

Certain fields like `completed_by.name` are only populated when a task is marked complete by a specific user — they'll be empty for tasks completed via automation or bulk actions. This is a limitation of the data Asana's API returns, not a Coupler.io issue.

</details>

<details>

<summary>I can't filter tasks by a specific project</summary>

Filtering Tasks by a specific project GID is not currently supported as a source parameter. As a workaround, export all Tasks and use Coupler.io's filter transformation — or filter in your destination (e.g., Google Sheets filter views or BigQuery WHERE clauses) using the `projects` column.

</details>

<details>

<summary>Subtasks are not appearing in my Tasks export</summary>

Subtasks are included in the Tasks entity but are identified by a non-null `parent` field. If you're not seeing them, check whether you're filtering out rows with a parent value. There is no separate subtasks entity.

</details>

### Permission errors

<details>

<summary>"Data cannot be fetched" error when running the data flow</summary>

This error most commonly occurs when your Asana account is using a **personal project space** instead of an organization workspace. Asana's API does not support personal spaces. You'll need to migrate your projects to an organization workspace to use Coupler.io. Contact Asana support for help with migration.

{% hint style="danger" %}
This is the most common error reported for Asana. Personal project spaces are not compatible with Asana's API — there is no workaround other than migrating to an organization workspace.
{% endhint %}

</details>

<details>

<summary>Portfolios entity returns no data</summary>

Portfolios are only available on Asana **Business and Enterprise** plans. If you're on a Free or Premium plan, this entity will return empty results. Also verify that you have permission to view portfolios in your workspace.

</details>

### Data discrepancies

<details>

<summary>Task count in Coupler.io doesn't match what I see in Asana</summary>

Coupler.io fetches tasks across all workspaces your account has access to. If you're seeing more tasks than expected, you may be pulling from multiple workspaces. Use the **Changed after** date filter to scope your export, and filter by the `projects` column to narrow results after import.

</details>

### Rate limits

<details>

<summary>Data flow times out or fails on large workspaces</summary>

Asana's API can slow down when responding to requests for very large workspaces (hundreds of projects, thousands of tasks). If your data flow consistently times out, use the **Changed after** date filter to export only recently modified records. Running incremental exports rather than full refreshes significantly reduces API response time.

</details>

## Asana FAQ

<details>

<summary>Can I filter Tasks by a specific project?</summary>

Not at the source level — Coupler.io fetches all tasks your account has access to. Once the data is in your destination, filter using the `projects` column. In Google Sheets, use a filter view or QUERY formula. In BigQuery or SQL destinations, use a WHERE clause. Alternatively, use Coupler.io's built-in filter transformation after the source step.

</details>

<details>

<summary>Why do I get a "Data cannot be fetched" error?</summary>

This almost always means your Asana account is using a personal project space, which Asana's API does not support. To fix it, migrate your data to an organization workspace in Asana. You can reach out to Asana support for help with the migration process.

</details>

<details>

<summary>Are custom fields from Asana included in the export?</summary>

Yes — custom fields are included in the Tasks export, but they're returned as a JSON-formatted column rather than individual columns. Use Coupler.io's calculated column feature with the `json_extract` function to extract specific custom field values into their own columns.

</details>

<details>

<summary>Can I export subtasks?</summary>

Subtasks are part of the Tasks entity. They appear as regular task rows but have a non-null `parent` field that references the parent task. Filter on `parent` to separate top-level tasks from subtasks in your destination.

</details>

<details>

<summary>Can I export attachments or media files from Asana?</summary>

No — Coupler.io only exports structured data from Asana (text fields, dates, statuses, IDs, etc.). Attachments, images, and other media cannot be exported.

</details>

<details>

<summary>Why is the Portfolios entity empty?</summary>

Portfolios are only available on Asana Business and Enterprise plans. If you're on a Free or Premium plan, this entity will return no data. Also check that your account has view access to portfolios in your workspace.

</details>

<details>

<summary>Can I combine data from multiple Asana workspaces?</summary>

Yes. Add each workspace connection as a separate source in your data flow and use the **Append** transformation to merge them into one dataset. This is useful if your organization runs multiple Asana workspaces for different teams or clients.

</details>

<details>

<summary>Can I send Asana data to an AI tool like ChatGPT or Gemini?</summary>

Yes — Coupler.io supports AI destinations including ChatGPT, Claude, Gemini, Cursor, Perplexity, and OpenClaw. You can send your Tasks or Projects data directly to these tools for summarization, analysis, or automated reporting.

</details>

<details>

<summary>My data flow keeps timing out on large exports. What should I do?</summary>

Use the **Changed after** date filter to limit the export to recently modified records. This is the most effective way to avoid timeouts on large Asana workspaces. For ongoing reporting, set up incremental exports (run daily, filter by the past day or week) rather than full refreshes.

</details>

<details>

<summary>Can I write data back from Coupler.io to Asana?</summary>

No — Coupler.io is a one-way data pipeline. It reads data from Asana and sends it to your destination. Writing data back to Asana is not supported.

</details>

{% hint style="info" %}
For a full list of available fields per entity, see [Data Overview](#asana-data-overview). For setup tips and how to handle large workspaces, see [Best Practices](/sources/category/project-management/asana/best-practices.md). If you're hitting errors, check [Common Issues](#asana-common-issues).
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.coupler.io/sources/category/project-management/asana.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
