> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt # Linking Asana as a source Canonical URL: https://posthog.com/docs/data-pipelines/sources/asana > **Cloud region:** This page uses US Cloud hosts. For an EU Cloud project, use `https://eu.posthog.com` instead of `https://app.posthog.com` (app host for links). ## On this page - [Adding a data source](#adding-a-data-source) - [Available tables](#available-tables) - [Sync limitations](#sync-limitations) - [Configuration](#configuration) - [Supported tables](#supported-tables) ![](https://res.cloudinary.com/dmukukwp6/image/upload/texture_tan_9608fcca70) ![](https://res.cloudinary.com/dmukukwp6/image/upload/texture_tan_dark_a92b0e022d) Let AI connect your sources for you Skip the manual setup — run this in your project and the wizard auto-detects your databases and APIs and connects them to PostHog. `npx @posthog/wizard warehouse` ![PostHog Wizard hedgehog](https://res.cloudinary.com/dmukukwp6/image/upload/wizard_3f8bb7a240.png) ![](https://res.cloudinary.com/dmukukwp6/image/upload/wizard_3f8bb7a240.png)Let AI connect your sources for you The Asana connector pulls your Asana data — workspaces, users, projects, tasks, and more — into the PostHog data warehouse. ## Adding a data source 1. Go to the [sources tab](https://app.posthog.com/data-management/sources) of the data pipeline section in PostHog. 2. Click **\+ New source** and then click **Link** next to Asana. 3. You need a personal access token from Asana. Create one from the [Asana developer console](https://app.asana.com/0/my-apps). Grant these read scopes so every table can sync: `workspaces:read`, `users:read`, `projects:read`, `tasks:read`, `tags:read`, `teams:read`, and `custom_fields:read`. Copy the token value. 4. Back in PostHog, paste the token in the `Personal access token` field and click **Next**. 5. Select the tables you want to sync, set the sync method and frequency, then click **Import**. Once the syncs are complete, you can start using Asana data in PostHog. ## Available tables | Table | Description | Sync method | | --- | --- | --- | | `workspaces` | Workspaces your token can access | Full refresh | | `users` | Users across your visible workspaces | Full refresh | | `projects` | Projects in each workspace | Full refresh | | `tasks` | Tasks across all projects | Full refresh | | `tags` | Tags in each workspace | Full refresh | | `sections` | Sections within each project | Full refresh | | `teams` | Teams in each organization workspace | Full refresh | | `custom_fields` | Custom field definitions per workspace | Full refresh | **Incremental** tables sync only new or updated records on each run. **Full refresh** tables reload all data on each sync. ## Sync limitations All Asana tables are full refresh only. Asana's list endpoints do not expose a usable server-side timestamp filter, so each sync reloads the full collection. ## Configuration | Option | Type | Required | | --- | --- | --- | | `Personal access token` | password | Yes | ## Supported tables | Table | Description | Sync method | Incremental field | Primary key | | --- | --- | --- | --- | --- | | `workspaces` | A workspace or organization — the highest-level container for all Asana data. | Full refresh | — | — | | `users` | A member of an Asana workspace or organization. | Full refresh | — | — | | `projects` | A collection of tasks with a shared purpose, owner, and timeline. | Full refresh | — | — | | `project_memberships` | A record of a user or team being a member of a project, and the access level they hold. | Full refresh | — | — | | `tasks` | A unit of work in Asana — the basic object around which tasks are tracked. | Full refresh | — | — | | `stories` | An entry in a task's activity feed — either a comment someone wrote or a record of a change made to the task. | Full refresh | — | — | | `tags` | A label that can be applied to tasks to group and categorize them. | Full refresh | — | — | | `sections` | A grouping within a project that organizes its tasks. | Full refresh | — | — | | `teams` | A group of users within an organization that share projects and conversations. | Full refresh | — | — | | `custom_fields` | A custom field definition used to add structured metadata to tasks and projects. | Full refresh | — | — | | `goals` | A goal — Asana's objective object, with its target, progress and status. | Full refresh | — | — | | `parent_goals` | One row per goal-to-parent-goal link, resolving the goal hierarchy. The row is the parent goal; `goal_gid` is the child it is a parent of. | Full refresh | — | — | | `time_tracking_entries` | A block of time logged against a task by a user. | Full refresh | — | — | | `custom_field_settings` | One row per custom-field-to-project link, recording how a custom field is applied to that project. | Full refresh | — | — | | `team_memberships` | One row per user-to-team membership, with the role the user holds on that team. | Full refresh | — | — | | `portfolios` | A program-level collection of projects and sub-portfolios, used to roll work up for reporting. A personal access token only sees portfolios its own user owns. | Full refresh | — | — | | `portfolio_items` | One row per portfolio-to-item link. The row is the contained project or sub-portfolio; `portfolio_gid` is the portfolio holding it. | Full refresh | — | — | | `project_status_updates` | A status update posted on a project, giving its state and a narrative at a point in time. | Full refresh | — | — | | `goal_status_updates` | A status update posted on a goal, giving its state and a narrative at a point in time. | Full refresh | — | — | | `portfolio_status_updates` | A status update posted on a portfolio, giving its state and a narrative at a point in time. | Full refresh | — | — | | `ai_studio_runs` | A single AI Studio run (rule execution), with the credits it consumed. Requires an AI Studio-licensed organization. | Full refresh | — | — | | `ai_studio_seats` | A current snapshot of an AI Studio seat — who holds it, at what tier, and in what state. Only paid seats are returned. | Full refresh | — | — |