canonical: https://jentic.com/apis/asana.com/asana

# Asana

Organize and track work across teams with projects, tasks, subtasks, custom fields, goals, and portfolios. Supports 167 endpoints covering task assignment, deadline management, progress tracking, and cross-team collaboration with granular permission controls and real-time event streaming.

## For AI agents

Assign tasks, track project milestones, and query workload across teams. Supports goals, portfolios, custom fields, and real-time event subscriptions for 167 operations.

## Scope

Does not handle team messaging, file storage, or time tracking - use for task and project management only.

## Capabilities

- Assign tasks with due dates, dependencies, and custom field values across multiple projects
- Track goal progress with metric targets and supporting work relationships
- Build and reorder project timelines with milestones and section groupings
- Query audit logs for workspace-level activity and compliance reporting
- Attach files and link external resources to tasks for consolidated context
- Subscribe to real-time events on projects and tasks via polling tokens
- Instantiate projects from templates with pre-configured sections and task structures

## Use cases

### AI Agent Task Automation

AI agents use the Asana API through Jentic to automate task creation, assignment, and status updates without manual intervention. An agent can search for the right operation by intent, load the task creation schema, and execute it in under a minute. This replaces manual copy-paste workflows and ensures tasks are created with correct custom fields, assignees, and project memberships from the start.

Example prompt: Create a task in project 'Sprint Backlog' assigned to user GID 12345 with due date 2026-05-15, custom field 'Priority' set to 'High', and add it to section 'To Do'

### Cross-Team Project Tracking

Track work across multiple teams using portfolios and goals. The Asana API exposes 167 endpoints for querying project status, goal completion percentages, and portfolio item ordering. Teams get a single source of truth for who owns what, which milestones are at risk, and how individual tasks roll up into strategic objectives.

Example prompt: Retrieve all items in portfolio GID 67890 and return each project's completion percentage and owner

### Sprint Planning and Backlog Management

Plan sprints by querying tasks across projects, filtering by custom fields like story points and priority, then reorganizing them into sections representing sprint phases. The API supports bulk task operations, section reordering, and project template instantiation so that repeatable sprint structures can be set up programmatically each cycle.

Example prompt: List all tasks in project 'Product Backlog' with custom field 'Story Points' greater than 3, then move them to section 'Sprint 12'

### Compliance Audit Trail

Access workspace-level audit log events through the Asana API to track who changed what and when. The audit log endpoint returns timestamped records of task modifications, permission changes, and data exports. This supports SOC 2 and internal compliance requirements without requiring third-party logging tools.

Example prompt: Fetch audit log events for workspace GID 11111 from the last 7 days filtered to 'task_deleted' and 'project_archived' event types

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /tasks | Create a new task |
| GET | /projects/{project_gid}/tasks | List tasks in a project |
| PUT | /tasks/{task_gid} | Update a task |
| GET | /goals | List goals in a workspace |
| POST | /goals/{goal_gid}/setMetricCurrentValue | Update goal metric progress |
| GET | /portfolios/{portfolio_gid}/items | List items in a portfolio |
| GET | /workspaces/{workspace_gid}/audit_log_events | Query workspace audit log |
| GET | /events | Poll for resource change events |

## Key resources

- **Tasks** — Create, update, assign, and query tasks with custom fields, attachments, subtasks, and dependencies
- **Projects** — Organize tasks into projects with sections, timelines, and membership controls
- **Goals** — Set strategic goals with metric targets and track progress via supporting relationships
- **Portfolios** — Group projects for cross-team visibility and executive reporting
- **Custom Fields** — Define typed metadata fields and apply them to tasks and projects for filtering and reporting

## Why Jentic

- **Setup:** Wiring Asana by hand means handling its OAuth 2.0 flow or Personal Access Token, refreshing tokens, and picking a path from over a hundred and sixty endpoints. Through Jentic you install once, import Asana from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Asana puts the resource gid in the URL path (/projects/{project_gid}/tasks, /tasks/{task_gid}), so a rule can pin your agent to one project or task. You choose the operations it may call, so updating a task is not included unless you add it alongside reads.
- **Credential handling:** Your Asana OAuth token or Personal Access Token is stored once, encrypted, by your own Jentic One instance and injected at execution time. Refresh tokens and raw keys never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a task in Asana with custom fields', and Jentic returns the matching operation with its input schema so the agent calls the right endpoint without browsing the Asana developer docs.

## Related APIs

- **ClickUp API** — ClickUp offers similar task and project management with more built-in views and time tracking
- **monday.com API** — monday.com uses a flexible board/column model suited to non-technical teams and visual workflows
- **Jira** — Jira is purpose-built for software development with sprint boards, story points, and release tracking
- **Slack Web API** — Slack provides team messaging that pairs with Asana for task notifications and status updates

## FAQ

### What authentication does the Asana API use?

The Asana API supports OAuth 2.0 and Personal Access Tokens (PATs). OAuth 2.0 is used for app integrations requiring user consent, while PATs provide direct access for scripts and agents. Through Jentic, these credentials are stored encrypted in your Jentic One instance - agents receive scoped tokens without handling raw secrets. Configure access through Jentic One, the self-hosted execution layer.

### Can I track goal progress with the Asana API?

Yes. The /goals endpoint lists goals filtered by workspace, team, or time period. Each goal has metric fields (current_number_value, target_number_value) that you update via POST /goals/{goal_gid}/setMetricCurrentValue. Supporting relationships link tasks and projects to goals so progress rolls up automatically.

### What are the rate limits for the Asana API?

Asana enforces a rate limit of 1,500 requests per minute per Personal Access Token or OAuth token. Responses include X-RateLimit-Remaining headers. Batch operations on up to 10 actions per request are available via POST /batch to reduce call volume for bulk updates.

### How do I create a task with custom fields through Jentic?

Search Jentic for 'create asana task with custom fields'. Jentic returns the POST /tasks operation schema including the custom_fields parameter (a map of field GID to value). Load the schema, populate assignee, due_on, projects, and custom_fields, then execute. The full flow takes under a minute compared to days of direct integration work.

### Does the Asana API support real-time event streaming?

Asana provides a polling-based event system via GET /events. You supply a resource GID and a sync token; the API returns all changes since that token. This covers task creates, updates, deletes, and project membership changes. Poll intervals of 5-10 seconds are recommended for near-real-time sync.

### Can I instantiate projects from templates via the API?

Yes. Use GET /project_templates to list available templates, then POST /project_templates/{project_template_gid}/instantiateProject with a name and team GID. The new project inherits all sections, tasks, custom fields, and rules from the template.

### Can I limit what my agent is allowed to do with the Asana API?

Yes. Because you run Jentic One yourself, your own rules decide which Asana operations and credentials your agent may use. Asana carries the resource gid in the URL path, as in /projects/{project_gid}/tasks and /tasks/{task_gid}, so a rule can pin the agent to a single project or task. You also choose the exact operations it can call, so a write like updating a task is excluded unless you add it alongside the reads you allow.
