Documentation Index
Fetch the complete documentation index at: https://docs.asteragents.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The Asana integration enables your agents to discover, search, and manage work across an Asana workspace — tasks (and subtasks), projects, sections, and comments. Agents can read your custom fields, file new work in the right project and section, comment on existing tasks, and manage relationships like dependencies, followers, and tags.Features
- Schema Discovery: Discover workspaces, teams, projects, users, tags, sections in a project, and the custom fields applied to a project — agents look up gids at runtime instead of hard-coding them
- Powerful Task Search: Filter tasks across an entire workspace by text, assignee, project, section, tag, follower, completion, due/start/completed/created/modified date ranges, blocked/blocking state, and any custom field value (8 operator types)
- Full CRUD on Tasks, Projects, Sections, and Comments: One
manage_recordstool with anactionenum covering create, read, update, delete, and duplicate - Task Relationships in the Same Tool: Add/remove tasks from projects (with section placement), move between sections, manage tags, followers, dependencies/dependents, and parent (subtask) relationships — all as actions on
asana_manage_recordsso agents don’t need to juggle multiple tools - Custom Field Aware: Read and write task custom fields by gid, including enum, multi_enum, number, date, and text types
Prerequisites
- Active Asana account with access to the workspace you want to connect
- A Personal Access Token (PAT) — or, for org-wide access, a Service Account token (Asana Enterprise only)
Setup Guide
Create a Personal Access Token
In Asana, navigate to My Settings > Apps > Manage Developer Apps (or open https://app.asana.com/0/my-apps directly).Click Create new token, give it a descriptive name (e.g., “Aster Agents”), agree to the API terms, and copy the generated token.The token has the same permissions as the user who created it — so the agent will be able to do whatever that user can do in Asana, and nothing more.
For org-wide access: Asana Enterprise customers can create a Service Account instead. Service Account tokens are not tied to an individual user, so they continue working when teammates leave the organization.
Enable Asana Integration
In Aster Agents, navigate to Control Hub > Integrations and locate the Asana card. Click Connect to begin setup.
Add Tools to Your Agent
Edit your agent and enable the Asana tools you need:
- Get Asana Schema — discover workspaces, teams, projects, sections, custom fields
- Search Asana — filter tasks across a workspace
- Manage Asana Records — CRUD on tasks/projects/sections/comments + manage task relationships
Available Tools
Get Asana Schema
Discover the gids and structure your agent needs at runtime:- workspaces — top-level orgs the token can access
- teams — within a workspace
- projects — within a workspace, optionally filtered by team
- users — workspace members
- tags — workspace tags
- sections — within a project
- custom_fields — fields applied to a project, including enum option gids
- task_fields — static reference of standard task fields you can read/write (helpful for agents to know what’s settable on create/update)
Search Asana
Search tasks across a workspace using Asana’stasks/search endpoint:
- Free-text search across name and notes
- Membership filters: assignee any/not, projects any/not/all, sections any/not, tags any/not, followers any/not
- Engagement filters:
commentedOnByAny,likedByAny - State filters:
completed,isSubtask,hasAttachment,isBlocked,isBlocking - Date filters: due, start, completed, modified, and created — with
before,after, andis_setvariants where applicable - Custom field filters: 8 operators (
is_set,value,starts_with,contains,greater_than,less_than,between,any,not) on any custom field gid - Sort: by
due_date,created_at,modified_at,completed_at, orlikes - Field selection via
fields(Asanaopt_fields) rawParamsescape hatch for any Asana search parameter not covered first-class
Pagination caveat: Asana’s search endpoint does not paginate — it returns up to 100 results in a single call with no cursor. To retrieve more, narrow your filters. The tool returns
hasMore: false to make this explicit.Manage Asana Records
One tool, two action families. CRUD actions (work ontask, subtask, project, section, comment):
- get — fetch a record by gid with optional field selection
- create — create a new record (custom fields supplied as
{custom_fields: {<gid>: <value>}}for tasks) - update — modify fields on an existing record
- delete — remove a record
- duplicate — duplicate a task or project (returns an Asana job)
resource='task' or 'subtask'):
- list_projects / add_project / remove_project — manage which projects a task belongs to;
add_projectaccepts asectionGidto land it directly in a section - move_to_section — reposition within a project
- list_tags / add_tag / remove_tag — manage tags
- list_followers / add_followers / remove_followers — manage followers
- list_dependencies / add_dependencies / remove_dependencies — manage tasks this one depends on
- list_dependents / add_dependents / remove_dependents — manage tasks that depend on this one
- list_subtasks — list direct subtasks
- set_parent — make this task a subtask of another (or detach with
newParentGid: null)
Security Considerations
- Use a dedicated PAT per integration — easier to rotate and revoke without affecting other tools
- Token = user permissions — a PAT has exactly the access the creating user has. Create the PAT under a service account or a user whose access matches what the agent should be able to do
- Rotate periodically — generate a fresh PAT and update it under Control Hub > Integrations; the old one keeps working until you delete it in Asana
- Audit in Asana — recent activity for a PAT is visible under My Settings > Apps
Troubleshooting
Authentication Failed
Authentication Failed
- Verify the PAT was copied completely (Asana tokens have multiple
:and/characters — easy to truncate) - Confirm the user who issued the token still has access to the workspace
- Reconnect under Control Hub > Integrations > Asana with a fresh token if the previous one was deleted in Asana
403 Forbidden on a specific record
403 Forbidden on a specific record
- PATs respect Asana’s per-project privacy. If a project is private and the issuing user isn’t a member, the agent can’t see or modify its tasks
- Add the user (or service account) as a project member in Asana
Rate Limiting
Rate Limiting
- Asana’s standard rate limit is 1500 requests per minute per token; search has its own lower limit
- The tool surfaces the retry-after duration on 429 responses
- For high-volume reads, prefer
asana_get_schema(lists) over many individualgetcalls
Search Returns Fewer Results Than Expected
Search Returns Fewer Results Than Expected
- Asana’s search endpoint returns at most 100 results in a single call with no pagination cursor — narrow your filters to drill down
- Search is eventually consistent — recently created/modified tasks may not appear immediately
- Custom field filters require the field’s gid (not its name); look it up via
asana_get_schema(resource=custom_fields, projectGid=...)
Custom Field Update Rejected
Custom Field Update Rejected
- Custom field values must be sent under
data.custom_fieldskeyed by the field gid (e.g.{"1234567890": "Approved"}) - Enum custom fields take an enum option gid, not the option’s display name
- Multi-enum custom fields take an array of enum option gids
- Discover the gids and option gids with
asana_get_schema(resource=custom_fields, projectGid=...)
Related Tools
- Get Asana Schema — Discover workspaces, projects, sections, and custom fields
- Search Asana — Filter tasks across a workspace
- Manage Asana Records — CRUD on tasks/projects/sections/comments + manage task relationships
