← Back to all apps

Asana

Productivityby Asana, Inc.
Launched Jun 11, 2026 on ChatGPT

Access Asana’s Work Graph directly from Claude to search, create, update, and track tasks, projects, and goals. Coordinate work across teams while connecting AI insights to real deliverables. Complements your Asana workspace with 30+ tools for seamless work management alongside your team’s existing workflows.

35ChatGPT Tools
15Claude Tools
Asana, Inc.Developer
ProductivityCategory

Use Cases

productivitycommunication

Available Tools

Add comment

add_comment
Full Description

Add a comment to a task. Use ONLY for human-authored discussion, feedback, questions, or additional context. Exactly one of text or html_text must be provided. Do NOT use for actions that are automatically logged (assignments, status changes, completion, field updates). Returns the created story with ID, content, author, and timestamp.

Parameters (1 required, 4 optional)
Required
task_idstring

Globally unique identifier for the task.

Optional
html_textstring

Exactly one of text or html_text must be provided. Allowed elements only: <body>, <strong>, <em>, <u>, <s>, <code>, <ol>, <ul>, <li>, <a>, <blockquote>, <pre>. Do not use <h1>, <h2>, <hr/>, or <img> here. Must be well-formed XML with a single root <body>...</body>. Only <a> may have custom attributes; any attribute on any other element is invalid. Do not use elements outside the allowed list (400). . <a> links: For <a> tags specifically, to make it easier to create @-mentions through the API, we only require that you provide the GID of the object you wish to reference. If you have access to that object, the API will automatically generate the appropriate href and other attributes for you. For example, to create a link to a task with GID "123", you can send the tag <a data-asana-gid="123"/> which will then be expanded to <a href="https://app.asana.com/0/0/123/f" data-asana-accessible="true" data-asana-dynamic="true" data-asana-type="task" data-asana-gid="123">Task Name</a>. You can also generate a link to a task in a specific project or tag by including a data-asana-project or data-asana-tag attribute in the <a> tag. All other attributes, as well as the contents of the tag, are ignored. To keep the contents of your tag and make a custom vanity link, include the property data-asana-dynamic="false" when setting the contents of the tag. You would send <a data-asana-gid="123" data-asana-dynamic="false">This is some custom text!</a> and receive <a data-asana-accessible="true" data-asana-dynamic="false" data-asana-type="task" data-asana-gid="123">This is some custom text!</a> If you do not have access to the referenced object when you try to create a link, the API will not generate an href for you, but will instead look for an href you provide. This allows you to write back <a> tags unmodified even if you do not have access to the resource. If you do not have access to the referenced object and no href is provided, your request will be rejected with a 400 Bad Request error. Similarly, if you provide neither a GID nor a valid href, the request will be rejected with the same error.

is_pinnedboolean

Pinned comments stay at the top of the task's activity feed.

Default: False
opt_fieldsstring

Comma-separated list of optional fields to include in the response. returns gid,name,task,created_by,created_at,text,html_text,is_pinned by default.

textstring

Plain-text comment body. Exactly one of text or html_text must be provided.

Create project

create_project
Full Description

Create a new project with optional sections and tasks in a single operation. Use this as the default whenever the user wants a project created or set up, including with sections and tasks. Do not choose create_project_preview unless the user explicitly asks to preview or confirm the plan before creation, or to delay creating the project until they approve. Optionally pass sections, each with a sectionName and an optional list of tasks (with name, assignee, due_on, etc.), to set up the full project structure at creation time. Tasks are nested within their sections and will be assigned to the corresponding section automatically. If a team is not provided, the new project will be associated with a default team. Returns the created project ID, permalink, and results for any sections and tasks created.

Parameters (1 required, 13 optional)
Required
namestring

Name of the project.

Optional
colorstring

Color of the project (light-green, dark-green, light-blue, dark-blue, etc).

Options:dark-pinkdark-greendark-bluedark-reddark-tealdark-browndark-orangedark-purpledark-warm-graylight-pinklight-greenlight-bluelight-redlight-teallight-brownlight-orangelight-purplelight-warm-graynone
custom_fieldsobject

Custom field: each key is a custom field GID; each value matches that field's type in the Asana API. Use option GIDs for dropdown fields, not display names. Some tools expect a nested object; others expect one JSON string containing the same map. Examples: {"1200456789012345":"1200123456789012"} (single-select); {"1200456789012346":12.5} (number); {"1200456789012347":"Ship by Friday"} (text); {"1200456789012348":["1200111111111111","1200222222222222"]} (multi-select); {"1200456789012349":{"date":"2025-06-15"}} or {"1200456789012349":{"date_time":"2025-06-15T17:00:00.000Z"}} (date).

default_access_levelstring

The default access for users or teams who join or are added as members to the project.

Options:admineditorcommenterviewer
default_viewstring

The default view of the project (list, board, calendar, timeline).

Options:listboardcalendartimeline
Default: list
due_onstring

Date on which this project is due (YYYY-MM-DD).

html_notesstring

HTML-formatted project description. Use notes for plain text. Allowed elements only: <body>, <strong>, <em>, <u>, <s>, <code>, <ol>, <ul>, <li>, <a>, <blockquote>, <pre>. Must be well-formed XML with a single root <body>...</body>. Only <a> may have custom attributes; any attribute on any other element is invalid. Do not use elements outside the allowed list (400). . <a> links: For <a> tags specifically, to make it easier to create @-mentions through the API, we only require that you provide the GID of the object you wish to reference. If you have access to that object, the API will automatically generate the appropriate href and other attributes for you. For example, to create a link to a task with GID "123", you can send the tag <a data-asana-gid="123"/> which will then be expanded to <a href="https://app.asana.com/0/0/123/f" data-asana-accessible="true" data-asana-dynamic="true" data-asana-type="task" data-asana-gid="123">Task Name</a>. You can also generate a link to a task in a specific project or tag by including a data-asana-project or data-asana-tag attribute in the <a> tag. All other attributes, as well as the contents of the tag, are ignored. To keep the contents of your tag and make a custom vanity link, include the property data-asana-dynamic="false" when setting the contents of the tag. You would send <a data-asana-gid="123" data-asana-dynamic="false">This is some custom text!</a> and receive <a data-asana-accessible="true" data-asana-dynamic="false" data-asana-type="task" data-asana-gid="123">This is some custom text!</a> If you do not have access to the referenced object when you try to create a link, the API will not generate an href for you, but will instead look for an href you provide. This allows you to write back <a> tags unmodified even if you do not have access to the resource. If you do not have access to the referenced object and no href is provided, your request will be rejected with a 400 Bad Request error. Similarly, if you provide neither a GID nor a valid href, the request will be rejected with the same error.

membersstring

Comma-separated user GIDs to add as project members. Example: "123456,789012".

notesstring

Plain-text project description. Use html_notes for rich formatting or @-mentions.

ownerstring

User identifier for project owner. Can be "me", an email, or a user GID. Prefer using "me" for the current user rather than calling get_me to look up the GID of the current user.

privacy_settingstring

Privacy level for the project (public_to_workspace, private_to_team, private).

Options:public_to_workspaceprivate_to_teamprivate
sectionsarray

Users will give you a request to create a project with a certain purpose. JSON array of section objects. Each section must have: - sectionName (string): Name of the section. - tasks (array, optional): Array of task objects. Each task object must have: - name (string): Name of the task. Each task object can optionally have: - notes (string): Plain-text task description. Use html_notes for rich formatting or @-mentions. - html_notes (string): HTML-formatted task description. Use notes for plain text. - assignee (string): User identifier for task assignment. Can be 'me', an email, or a user GID. - due_on (string): Due date in YYYY-MM-DD format. - due_at (string): Due date and time in ISO 8601 format. - start_on (string): Start date in YYYY-MM-DD format. - start_at (string): Start date and time in ISO 8601 format. - completed (boolean): True if the task is initially marked complete. - followers (string): Comma-separated list of user identifiers. - custom_fields (string): Custom field: each key is a custom field GID; each value matches that field's type in the Asana API. Use option GIDs for dropdown fields, not display names. Some tools expect a nested object; others expect one JSON string containing the same map. Examples: {"1200456789012345":"1200123456789012"} (single-select); {"1200456789012346":12.5} (number); {"1200456789012347":"Ship by Friday"} (text); {"1200456789012348":["1200111111111111","1200222222222222"]} (multi-select); {"1200456789012349":{"date":"2025-06-15"}} or {"1200456789012349":{"date_time":"2025-06-15T17:00:00.000Z"}} (date). Example: [ { "sectionName": "Backlog", "tasks": [ { "name": "Design homepage", "notes": "Create a modern and responsive homepage design", "completed": false, "start_on": "2025-01-10", "due_on": "2025-01-15", "assignee": "123456789" }, { "name": "Write documentation", "completed": false, "start_on": "2025-01-15", "due_on": "2025-01-20", "assignee": "987654321" } ] }, { "sectionName": "In Progress", "tasks": [ { "name": "Implement API endpoints", "notes": "Build RESTful API endpoints for user management", "completed": false, "start_on": "2025-01-10", "due_on": "2025-01-25", "assignee": "123456789" }, { "name": "Code review", "completed": false, "start_on": "2025-01-25", "due_on": "2025-01-30" }, { "name": "Deploy to staging", "notes": "Deploy the latest version to staging environment", "completed": false, "start_on": "2025-01-05", "due_on": "2025-01-08", "assignee": "987654321" } ] } ]

start_onstring

Date on which this project is started (YYYY-MM-DD).

teamstring

Globally unique identifier for the team. If not provided, default team will be used.

[Internal] Create project

create_project_confirm
Full Description

DEPRECATED; DO NOT USE. This tool must exist so that it can be invoked programmatically by widget UI, but it should not be called directly by the model.

Parameters (4 required)
Required
projectNamestring
sectionsarray
widget_idstring

ALWAYS USE A CONSTANT VALUE OF 'model-generated-widget-id' FOR THIS PARAMETER.

workspacestring

[Internal] Populate project

create_project_confirm_populate
Full Description

DEPRECATED; DO NOT USE. This tool must exist so that it can be invoked programmatically by widget UI, but it should not be called directly by the model.

Parameters (4 required, 1 optional)
Required
projectstring
sectionsarray
widget_idstring

ALWAYS USE A CONSTANT VALUE OF 'model-generated-widget-id' FOR THIS PARAMETER.

workspacestring
Optional
useRichTextTaskDescriptionboolean

Preview project creation

create_project_preview
Full Description

Generate a visual preview of a project structure before creation. Use anytime the user asks to create a project or draft a project. Use this when you want the user to review and confirm the project structure first.

Parameters (2 required)
Required
project_namestring

Name of the project to create.

sectionsarray

Users will give you a request to create a project with a certain purpose. Use your own knowledge of project management and the principles and guidance below to design the best project structure possible. JSON array of section objects. Each section must have: - sectionName (string): Name of the section. - tasks (array): Array of task objects. Each task object must have: - taskName (string): Name of the task. - description (string | null): Description of the task, or null if the task has no description. Defaults to null if not provided. - isComplete (boolean): Whether the task is completed. Defaults to false if not provided. - startDate (string | null): Start date of the task in YYYY-MM-DD format, or null if the task has no start date. If the start date is provided, the due date must also be provided. If both the start date and due date are provided, the due date must be greater than or equal to the start date. Defaults to null if not provided. - dueDate (string | null): Due date of the task in YYYY-MM-DD format, or null if the task has no due date. If both the start date and due date are provided, the due date must be greater than or equal to the start date. Defaults to null if not provided. - assignee (string | null): Assignee of the task, or null if the task is unassigned. This can be "me", an email, or a user GID chosen among those found using asana_get_workspace_users. Defaults to null if not provided. - priority ("low" | "medium" | "high" | null): Priority level of the task. Must be one of 'low', 'medium', 'high', or null. Defaults to null if not provided. This is general guidance for creating good project structures. Follow these principles and guidance as closely as possible unless the user specifically asks you to do otherwise: Create the project structure in the same language as the user's request. - Project should have >=4 sections. - Limit the number of tasks to no more than 5 tasks per section. - Limit sections up to 6. - Every section should have at least one task. - If the user does not specifically give you tasks they want to include in their project, make tasks for the project that are aligned with the project's purpose. - Only mark tasks as complete (isComplete: true) if the user specifically mentioned they already completed that work. Otherwise, all tasks should be incomplete (isComplete: false). - When adding dates to tasks, always provide BOTH startDate and dueDate together as a date range. Never provide only dueDate without startDate. Add date ranges to several tasks so they will be useful for timeline and calendar views when the project is created. - All dates must be in the future (today or later), never in the past. - Create logical, sequential timelines that make sense for the project's purpose. Tasks should progress in a meaningful order (e.g., beginner tasks before advanced tasks, setup tasks before execution tasks). - Dates should form a coherent timeline, not be randomly scattered. - Prefer including the 'priority' custom field for every task (one of 'low', 'medium', or 'high'), unless the user has specifically instructed you not to. This helps users organize their work by importance. Example: [ { "sectionName": "Backlog", "tasks": [ { "taskName": "Design homepage", "description": "Create a modern and responsive homepage design", "isComplete": false, "startDate": "2025-01-10", "dueDate": "2025-01-15", "assignee": "123456789", "priority": "high" }, { "taskName": "Write documentation", "description": null, "isComplete": false, "startDate": "2025-01-15", "dueDate": "2025-01-20", "assignee": "987654321", "priority": "medium" } ] }, { "sectionName": "In Progress", "tasks": [ { "taskName": "Implement API endpoints", "description": "Build RESTful API endpoints for user management", "isComplete": false, "startDate": "2025-01-10", "dueDate": "2025-01-25", "assignee": "123456789", "priority": "high" }, { "taskName": "Code review", "description": null, "isComplete": false, "startDate": "2025-01-25", "dueDate": "2025-01-30", "assignee": null, "priority": "medium" }, { "taskName": "Deploy to staging", "description": "Deploy the latest version to staging environment", "isComplete": false, "startDate": "2025-01-05", "dueDate": "2025-01-08", "assignee": "987654321", "priority": "high" } ] } ]

Preview project creation

create_project_preview_v3
Full Description

Show a visual preview of a project structure before the project is created in Asana. Do not use this tool for ordinary creation requests—use create_project instead when the user asks to create, set up, or add a project (with or without sections and tasks). Call this tool only when the user explicitly asks to preview first, see the plan before creating, review or confirm before creating, or postpone creation until they approve. Tasks in sections may include optional subtasks arrays (one level only; limit to no more than 5 per task unless necessary).

Parameters (2 required)
Required
project_namestring

Name of the project to create.

sectionsarray

Users will give you a request to create a project with a certain purpose. Use your own knowledge of project management and the principles and guidance below to design the best project structure possible. JSON array of section objects. Each section must have: - sectionName (string): Name of the section. - tasks (array): Array of task objects. Each task object must have: - taskName (string): Name of the task. - description (string | null): Task details as Markdown (not raw HTML), or null. Use real list lines (`- item` or `1. item`); avoid one line of middot bullets — they will not become lists. The preview rich-text supports headings **h1** and **h2**, marks **strong**, **em**, **u**, **s**, inline **code**, and lists **ul** / **ol** / **li** — use the same constructs in Markdown. The server normalizes Markdown to HTML for the preview and Asana `html_notes`. - isComplete (boolean): Whether the task is completed. Defaults to false if not provided. - startDate (string | null): Start date of the task in YYYY-MM-DD format, or null if the task has no start date. If the start date is provided, the due date must also be provided. If both the start date and due date are provided, the due date must be greater than or equal to the start date. Defaults to null if not provided. - dueDate (string | null): Due date of the task in YYYY-MM-DD format, or null if the task has no due date. If both the start date and due date are provided, the due date must be greater than or equal to the start date. Defaults to null if not provided. - assignee (string | null): Assignee of the task, or null if the task is unassigned. This can be "me", an email, or a user GID chosen among those found using asana_get_workspace_users. Defaults to null if not provided. - priority ("low" | "medium" | "high" | null): Priority level of the task. Must be one of 'low', 'medium', 'high', or null. Defaults to null if not provided. This is general guidance for creating good project structures. Follow these principles and guidance as closely as possible unless the user specifically asks you to do otherwise: Create the project structure in the same language as the user's request. - Project should have >=4 sections. - Limit the number of tasks to no more than 5 tasks per section. - Limit sections up to 6. - Every section should have at least one task. - If the user does not specifically give you tasks they want to include in their project, make tasks for the project that are aligned with the project's purpose. - Only mark tasks as complete (isComplete: true) if the user specifically mentioned they already completed that work. Otherwise, all tasks should be incomplete (isComplete: false). - When adding dates to tasks, always provide BOTH startDate and dueDate together as a date range. Never provide only dueDate without startDate. Add date ranges to several tasks so they will be useful for timeline and calendar views when the project is created. - All dates must be in the future (today or later), never in the past. - Create logical, sequential timelines that make sense for the project's purpose. Tasks should progress in a meaningful order (e.g., beginner tasks before advanced tasks, setup tasks before execution tasks). - Dates should form a coherent timeline, not be randomly scattered. - Prefer including the 'priority' custom field for every task (one of 'low', 'medium', or 'high'), unless the user has specifically instructed you not to. This helps users organize their work by importance. - Tasks may include an optional 'subtasks' array (one level only). Limit to no more than 5 subtasks per task unless necessary. Each subtask has taskName and optionally description. Example: [ { "sectionName": "Backlog", "tasks": [ { "taskName": "Design homepage", "description": "Create a modern and responsive homepage design", "isComplete": false, "startDate": "2025-01-10", "dueDate": "2025-01-15", "assignee": "123456789", "priority": "high" }, { "taskName": "Write documentation", "description": null, "isComplete": false, "startDate": "2025-01-15", "dueDate": "2025-01-20", "assignee": "987654321", "priority": "medium" } ] }, { "sectionName": "In Progress", "tasks": [ { "taskName": "Implement API endpoints", "description": "Build RESTful API endpoints for user management", "isComplete": false, "startDate": "2025-01-10", "dueDate": "2025-01-25", "assignee": "123456789", "priority": "high" }, { "taskName": "Code review", "description": null, "isComplete": false, "startDate": "2025-01-25", "dueDate": "2025-01-30", "assignee": null, "priority": "medium" }, { "taskName": "Deploy to staging", "description": "Deploy the latest version to staging environment", "isComplete": false, "startDate": "2025-01-05", "dueDate": "2025-01-08", "assignee": "987654321", "priority": "high" } ] } ]

Create project status update

create_project_status_update
Full Description

Post a status update to a project or portfolio. Use for project health updates, milestone documentation, or blocker reporting. Returns created status with gid, parent, title, status_type, author, created_at, permalink_url. Exactly one of text or html_text must be provided.

Parameters (3 required, 2 optional)
Required
colorstring

Status color: green (on track), yellow (at risk), red (off track), blue (on hold), complete

Options:greenyellowredbluecomplete
parentstring

GID of the project or portfolio to post the status update to.

titlestring

Status title

Optional
html_textstring

Exactly one of text or html_text must be provided. Allowed elements only: <body>, <strong>, <em>, <u>, <s>, <code>, <ol>, <ul>, <li>, <a>, <blockquote>, <pre>. Do not use <h1>, <h2>, <hr/>, or <img> here. Must be well-formed XML with a single root <body>...</body>. Only <a> may have custom attributes; any attribute on any other element is invalid. Do not use elements outside the allowed list (400). . <a> links: For <a> tags specifically, to make it easier to create @-mentions through the API, we only require that you provide the GID of the object you wish to reference. If you have access to that object, the API will automatically generate the appropriate href and other attributes for you. For example, to create a link to a task with GID "123", you can send the tag <a data-asana-gid="123"/> which will then be expanded to <a href="https://app.asana.com/0/0/123/f" data-asana-accessible="true" data-asana-dynamic="true" data-asana-type="task" data-asana-gid="123">Task Name</a>. You can also generate a link to a task in a specific project or tag by including a data-asana-project or data-asana-tag attribute in the <a> tag. All other attributes, as well as the contents of the tag, are ignored. To keep the contents of your tag and make a custom vanity link, include the property data-asana-dynamic="false" when setting the contents of the tag. You would send <a data-asana-gid="123" data-asana-dynamic="false">This is some custom text!</a> and receive <a data-asana-accessible="true" data-asana-dynamic="false" data-asana-type="task" data-asana-gid="123">This is some custom text!</a> If you do not have access to the referenced object when you try to create a link, the API will not generate an href for you, but will instead look for an href you provide. This allows you to write back <a> tags unmodified even if you do not have access to the resource. If you do not have access to the referenced object and no href is provided, your request will be rejected with a 400 Bad Request error. Similarly, if you provide neither a GID nor a valid href, the request will be rejected with the same error.

textstring

Plain-text status body. Exactly one of text or html_text must be provided.

[Internal] Create task

create_task_confirm
Full Description

DEPRECATED; DO NOT USE. This tool must exist so that it can be invoked programmatically by widget UI, but it should not be called directly by the model.

Parameters (8 required, 4 optional)
Required
assigneeobject
descriptionstring/null
dueDatestring/null
isCompleteboolean
startDatestring/null
taskNamestring
widget_idstring

ALWAYS USE A CONSTANT VALUE OF 'model-generated-widget-id' FOR THIS PARAMETER.

workspacestring
Optional
projectobject
sectionobject
subtasksarray

Optional subtasks for the parent task (one level only; not added to any project). Limit to no more than 5 unless necessary.

useRichTextTaskDescriptionboolean

Preview task creation

create_task_preview
Full Description

Generate a visual preview of a task before creation. Use anytime the user asks to create a task or draft a task. Use this when you want the user to review and confirm the task details first.

Parameters (1 required, 5 optional)
Required
taskNamestring

Name of the task.

Optional
assigneestring/null

Assignee of the task, or null if the task is unassigned. This can be "me", an email, or a user GID chosen among those found using asana_get_workspace_users. Defaults to null if not provided.

descriptionstring/null

Description of the task, or null if the task has no description. Defaults to null if not provided.

dueDatestring

Due date of the task in YYYY-MM-DD format, or null if the task has no due date. If both the start date and due date are provided, the due date must be greater than or equal to the start date. Defaults to null if not provided.

isCompleteboolean

Whether the task is completed. Defaults to false if not provided.

startDatestring

Start date of the task in YYYY-MM-DD format, or null if the task has no start date. If the start date is provided, the due date must also be provided. If both the start date and due date are provided, the due date must be greater than or equal to the start date. Defaults to null if not provided.

Preview task creation

create_task_preview_v4
Full Description

Generates a visual preview of a single task and asks for confirmation before creation. NON-DEFAULT tool for task creation: Use only when the user explicitly opts in with visually previewing, reviewing, or confirming a task before creation. Do not use when the user wants to create multiple tasks (2 or more) - use create_task or create_tasks instead. When the user's request implies a project, suggest a project via project_gid. When you set project_gid, it is preferable to also set section_gid when you can reasonably resolve a section (e.g. call get_project with include_sections true to list section GIDs for that project and match the user's intent); omit section_gid when the section is unknown, not specified, or irrelevant. When the user wants subtasks on the new task, pass a subtasks array (one level only; at most 5 subtasks; entries are not added to any project).

Parameters (1 required, 8 optional)
Required
taskNamestring

Name of the task.

Optional
assigneestring/null

Assignee of the task, or null if the task is unassigned. This can be "me", an email, or a user GID chosen among those found using asana_get_workspace_users. Defaults to null if not provided.

descriptionstring/null

Task details as Markdown (not raw HTML), or null. Use real list lines (`- item` or `1. item`); avoid one line of middot bullets — they will not become lists. The preview rich-text supports headings **h1** and **h2**, marks **strong**, **em**, **u**, **s**, inline **code**, and lists **ul** / **ol** / **li** — use the same constructs in Markdown. The server normalizes Markdown to HTML for the preview and Asana `html_notes`.

dueDatestring

Due date of the task in YYYY-MM-DD format, or null if the task has no due date. If both the start date and due date are provided, the due date must be greater than or equal to the start date. Defaults to null if not provided.

isCompleteboolean

Whether the task is completed. Defaults to false if not provided.

project_gidstring/null

GID of an existing project to add the task to, or null. When you set this, it is preferable to also pass section_gid when you can resolve a section for that project (call get_project with include_sections true to list section GIDs for that project); omitting section_gid is fine when placement is unclear or irrelevant.

section_gidstring/null

GID of an existing section to add the task to, or null. Project must also be set if section is provided, and the section must be in the project. Optional; omit when unknown or not specified. When project_gid is set, including section_gid is preferable if you can infer or look up a section (call get_project with include_sections true to list section GIDs for that project).

startDatestring

Start date of the task in YYYY-MM-DD format, or null if the task has no start date. If the start date is provided, the due date must also be provided. If both the start date and due date are provided, the due date must be greater than or equal to the start date. Defaults to null if not provided.

subtasksarray

Optional array of subtasks (one level only; subtasks are not added to any project). Limit to no more than 5 unless necessary. Each entry may include taskName (required), description, isComplete, startDate and dueDate (YYYY-MM-DD), and assignee (me, email, or user id).

Create tasks

create_tasks
Full Description

Creates tasks immediately without visual preview or asking for confirmation. DEFAULT tool for task creation: Use by default any time the user asks to create any number of tasks. Do not use when the user explicitly opts in with visually previewing, reviewing, or confirming a task before creation. Requires default_project (for all tasks) or default_assignee for My Tasks. Each task can specify project_id, parent, section_id, assignee, notes, html_notes, due_on, start_on, followers, custom_fields; omitted fields use the defaults. Returns succeeded (created tasks), failed (with errors), and summary.

Parameters (1 required, 2 optional)
Required
tasksarray

Array of task objects (1-50 tasks).

Optional
default_assigneestring

Default assignee. Use "me", email, or GID.

default_projectstring

Default project GID for all tasks. Omit when each task has project_id or parent, or when creating in My Tasks (use workspace+default_assignee).

Delete task

delete_task
Full Description

Delete task from Asana. Use with extreme caution as recovery is challenging. Deletes the task and any subtasks that are not also in another project. Returns success confirmation. Requires task ID. Essential for removing duplicate or obsolete tasks.

Parameters (1 required)
Required
taskstring

Globally unique identifier for the task to delete.

Get agent

get_agent
Full Description

Returns the full record for a single AI Teammate agent by GID. Includes name, description, behavior_guidance, workspace, and photo URLs. Use get_workspace_agents first to discover agent GIDs, then call this tool for full details.

Parameters (1 required, 1 optional)
Required
agent_gidstring

Globally unique identifier for the agent.

Optional
opt_fieldsstring

Comma-separated list of optional fields to include in the response. Available fields: gid, resource_type, resource_subtype, name, description, behavior_guidance, workspace, photo.

Get attachments for object

get_attachments
Full Description

List all attachments for a project, project brief, or task. Returns attachment names, IDs, and URLs (download_url, permanent_url, view_url). Use for accessing files attached to Asana objects. Supports pagination for objects with many attachments.

Parameters (1 required, 3 optional)
Required
parentstring

The GID of the parent project, project_brief, or task to retrieve attachments for. Must be a GID for a project, project_brief, or task.

Optional
limitnumber

Results per page (1-100)

offsetstring

Pagination offset token

opt_fieldsstring

Comma-separated list of optional fields to include in the response

Get items for portfolio

get_items_for_portfolio
Full Description

List projects, goals, and other items in a portfolio. Returns item names, IDs, and types. Use for portfolio content exploration and management. Supports pagination for portfolios with many items.

Parameters (1 required, 3 optional)
Required
portfolio_gidstring

Globally unique identifier for the portfolio

Optional
limitnumber

Results per page (1-100)

offsetstring

Pagination offset token

opt_fieldsstring

Comma-separated list of optional fields to include in the response

Get me

get_me
Full Description

Get details of current authenticated user. Tools accept 'me' as a user identifier, so you rarely need to call this just to get the user's GID. Only call this when you need specific user details (e.g., name, email)

Get my tasks

get_my_tasks
Full Description

Get the current user's tasks. Shortcut for common "what's on my plate" queries. Returns tasks assigned to the user. Use when the user asks about their tasks, workload, or what they need to do.

Parameters (0 required, 4 optional)
Optional
completed_sincestring

Filter by completion. Use "now" for incomplete tasks only. Omit for all tasks. Use ISO datetime for tasks completed since a date.

limitnumber

Results per page (1-100). Default: 50.

offsetstring

Pagination offset token from the next_page field of a previous response. If omitted, returns the first page of results.

opt_fieldsstring

Comma-separated list of optional fields to include in the response. returns gid,name,assignee,due_on,completed by default.

Get portfolio

get_portfolio
Full Description

Get detailed portfolio data by ID including name, owner, and projects. Use after finding portfolio ID via search_objects. Returns complete portfolio configuration. Essential for understanding portfolio context and content.

Parameters (1 required, 1 optional)
Required
portfolio_gidstring

Globally unique identifier for the portfolio

Optional
opt_fieldsstring

Comma-separated list of optional fields to include in the response

Get portfolios

get_portfolios
Full Description

List portfolios in workspace owned by the current user. REQUIRES workspace parameter. Returns portfolio names and IDs for portfolios you own. Use for portfolio discovery and management. Supports pagination for workspaces with many portfolios.

Parameters (0 required, 3 optional)
Optional
limitnumber

Results per page (1-100)

offsetstring

Pagination offset token

opt_fieldsstring

Comma-separated list of optional fields to include in the response

Get project

get_project
Full Description

Get detailed project data including name, description, owner, members, and current status. Also returns task counts (num_tasks, num_incomplete_tasks, num_completed_tasks) and optionally sections. A null task_counts or sections value means the data could not be retrieved and should not be interpreted as zero or empty.

Parameters (1 required, 2 optional)
Required
project_idstring

Globally unique identifier for the project.

Optional
include_sectionsboolean

Set to true to include the project's sections (up to 50) in the response.

Default: False
opt_fieldsstring

Comma-separated list of optional fields to include in the response.

[Internal] Get project

get_project_internal
Full Description

DEPRECATED; DO NOT USE. This tool must exist so that it can be invoked programmatically by widget UI, but it should not be called directly by the model.

Parameters (2 required, 2 optional)
Required
project_idstring

Globally unique identifier for the project.

widget_idstring

ALWAYS USE A CONSTANT VALUE OF 'model-generated-widget-id' FOR THIS PARAMETER.

Optional
include_sectionsboolean

Set to true to include the project's sections (up to 50) in the response.

Default: False
opt_fieldsstring

Comma-separated list of optional fields to include in the response.

Get projects

get_projects
Full Description

List projects in a workspace, optionally filtered by team. Returns project names, IDs, owner info, and task counts (num_tasks, num_incomplete_tasks, num_completed_tasks). A null task_counts value means counts could not be retrieved and should not be interpreted as zero.

Parameters (0 required, 5 optional)
Optional
archivedboolean

Include archived projects.

Default: False
limitnumber

Number of projects to return per page (1-100). Defaults to 20.

Default: 20
offsetstring

Pagination offset token from the next_page field of a previous response. If omitted, returns the first page of results.

opt_fieldsstring

Comma-separated list of optional fields to include in the response.

teamstring

When passed in, filters projects on team GID

Get status overview

get_status_overview
Full Description

Get status overview and progress reports for initiatives/projects. Use this tool as a standalone when users ask for: status updates, status reports, project status, work overview, progress overview, initiative status, identified blockers, or any status-related queries. This tool searches projects and portfolios, extracts tasks and status updates, and returns aggregated project details, tasks, and status information. IMPORTANT: Call this tool directly with keywords - do NOT call other search tools first. This tool handles all searching and aggregation internally.

Parameters (1 required, 1 optional)
Required
keywordsstring

Keywords to search for projects. Can be a single keyword (e.g., 'asana') or multiple comma-separated keywords (e.g., 'asana, chatgpt, integration'). The tool searches each keyword separately and combines results from all matching projects (OR logic - matches any keyword).

Optional
opt_fieldsstring

Comma-separated list of optional fields to include in task data (e.g., 'name,notes,assignee,due_on,completed').

Get task

get_task
Full Description

Get full task details by ID. Returns name, description, assignee, due dates, custom fields, projects, dependencies, followers, parent, memberships (project and section), and acknowledgements (hearts and likes). Essential before updating tasks. Use opt_fields for custom field values. Comments and subtasks are included by default. Set include_comments or include_subtasks to false to exclude them. Required for understanding task context.

Parameters (1 required, 4 optional)
Required
task_idstring

Globally unique identifier for the task.

Optional
comment_limitnumber

Max comments to return (1-50). Default is 10.

Default: 10
include_commentsboolean

Include comments of task

Default: True
include_subtasksboolean

Include subtasks of task

Default: True
opt_fieldsstring

Comma-separated list of optional fields to include in the response.

Get tasks

get_tasks
Full Description

List tasks filtered by context (workspace/project/tag/section/user list). One context required. Supports assignee, date filters. Returns task names and IDs. Use for filtered task views and bulk operations.

Parameters (0 required, 10 optional)
Optional
assigneestring

User identifier to assign the task to. Can be "me", an email, or a user GID. Prefer using "me" for the current user rather than calling get_me to look up the GID of the current user.

completed_sincestring

Filter for tasks completed since this date in datetime format.

limitnumber

Number of sections to return per page (1-100).

modified_sincestring

Filter for tasks modified since this date in datetime format.

offsetstring

Pagination offset token.

opt_fieldsstring

Comma-separated list of optional fields to include in the response.

projectstring

Globally unique identifier for the project.

sectionstring

Globally unique identifier for the section.

tagstring

The tag GID to retrieve tasks for

user_task_liststring

Globally unique identifier for the user task list.

Get teams

get_teams
Full Description

List teams in workspace. Returns team names and GIDs. Optionally filter to only teams a specific user belongs to by providing a user GID. Use to discover teams for project context or check user team membership.

Parameters (0 required, 3 optional)
Optional
limitnumber

Number of teams to return per page (1-100). Defaults to 20.

Default: 20
offsetstring

Pagination offset token from the next_page field of a previous response. If omitted, returns the first page of results.

userstring

A user GID to filter teams to only those the user belongs to. When omitted, returns all teams in the workspace.

Get user

get_user
Full Description

Get user details by ID, email, or "me". Returns name, email, workspaces. Use to find user IDs for task assignment. "me" returns authenticated user info. Essential before assigning tasks. When no user_id is provided, defaults to "me" (authenticated user) - equivalent to the former asana_get_user_info tool.

Parameters (0 required, 2 optional)
Optional
opt_fieldsstring

Comma-separated list of optional fields to include in the response.

user_idstring

A string identifying a user. This can be 'me', an email, or the gid of a user. When omitted, defaults to 'me' (authenticated user).

Get users

get_users
Full Description

List users, optionally filtered by team. Returns paginated results with users array and next_page token.

Parameters (0 required, 4 optional)
Optional
limitnumber

Results per page (1-100). Default: 50.

Default: 50
offsetstring

Pagination offset token from the next_page field of a previous response.

opt_fieldsstring

Comma-separated list of optional fields to include in the response. returns gid,name,email by default.

teamstring

Filter by team membership.

List agents in workspace

get_workspace_agents
Full Description

Returns a list of AI Teammate agents (automated agents, not human users) configured in a workspace. AI Teammates are Asana-specific automation agents — they are distinct from human coworkers, teammates, or workspace members. Do NOT use this tool when the user asks about people, users, teammates, or team members; use get_users or search_objects instead. Each agent record includes GID, name, resource_type, and resource_subtype. Use to discover available AI Teammate agents before fetching full details with get_agent. Supports pagination for workspaces with many agents.

Parameters (0 required, 3 optional)
Optional
limitnumber

Results per page (1-100).

offsetstring

Pagination offset token from a previous response.

opt_fieldsstring

Comma-separated list of optional fields to include in the response. Available fields: gid, resource_type, resource_subtype, name.

Get workspace users

get_workspace_users
Full Description

Get all users in workspace. Returns compact users with names and IDs. Results are sorted alphabetically and limited to 2000. Prefer searching more narrowly, like by typeahead or team first instead of this.

Parameters (0 required, 2 optional)
Optional
offsetstring

Pagination offset token from a previous request.

opt_fieldsstring

Comma-separated list of optional fields to include in the response.

[Internal] Log event

log_widget_event
Full Description

DEPRECATED; DO NOT USE. This tool must exist so that it can be invoked programmatically by widget UI, but it should not be called directly by the model.

Parameters (3 required, 1 optional)
Required
actionstring
widget_idstring

ALWAYS USE A CONSTANT VALUE OF 'model-generated-widget-id' FOR THIS PARAMETER.

widget_typestring
Optional
extra_event_attributes_jsonstring

[Internal] Save project changes

save_project_changes_confirm
Full Description

DEPRECATED; DO NOT USE. This tool must exist so that it can be invoked programmatically by widget UI, but it should not be called directly by the model.

Parameters (2 required, 13 optional)
Required
projectGidstring
widget_idstring

ALWAYS USE A CONSTANT VALUE OF 'model-generated-widget-id' FOR THIS PARAMETER.

Optional
customFieldInfosarray
deletedSectionGidsarray
deletedTaskGidsarray
newSectionsarray
newTasksarray
orderedSectionGidsarray
orderedTaskGidsBySectionGidobject
taskMovesarray
taskSubtaskOperationsarray
updatedProjectNamestring
updatedSectionNamesarray
updatedTasksarray
useRichTextTaskDescriptionboolean

[Internal] Save task changes

save_task_changes_confirm
Full Description

DEPRECATED; DO NOT USE. This tool must exist so that it can be invoked programmatically by widget UI, but it should not be called directly by the model.

Parameters (2 required, 6 optional)
Required
taskGidstring
widget_idstring

ALWAYS USE A CONSTANT VALUE OF 'model-generated-widget-id' FOR THIS PARAMETER.

Optional
deletedSubtaskGidsarray
newSubtasksarray
updatedCustomFieldsobject
updatedNativeFieldsobject
updatedSubtasksarray
useRichTextTaskDescriptionboolean

Search objects

search_objects
Full Description

Quick search across Asana objects. ALWAYS use this FIRST before specialized search. Returns most relevant items based on recency and usage. Faster than dedicated search tools for finding specific items. If the user is not specific about which objects to search, use the following priority order: project + task > portfolio > goal + others (user, team, tag, custom_field).

Parameters (1 required, 3 optional)
Required
resource_typestring

The type of resource to search for. Use 'user' for human workspace members. Use 'agent' for AI teammates (e.g. named assistants). Use 'actor' when searching for any entity that can be assigned work (humans + AI teammates).

Options:actoragentcustom_fieldgoalprojectproject_templateportfoliotagtaskteamuser
Optional
countnumber

Number of results to return. Default is 20 if parameter is empty. Minimum 1, maximum 100.

opt_fieldsstring

Comma-separated list of optional fields to include in the response.

querystring

The search query. Can be empty to get default results for the resource type.

[Internal] Search objects

search_objects_internal
Full Description

DEPRECATED; DO NOT USE. This tool must exist so that it can be invoked programmatically by widget UI, but it should not be called directly by the model.

Parameters (2 required, 3 optional)
Required
resource_typestring

The type of resource to search for. Use 'user' for human workspace members. Use 'agent' for AI teammates (e.g. named assistants). Use 'actor' when searching for any entity that can be assigned work (humans + AI teammates).

Options:actoragentcustom_fieldgoalprojectproject_templateportfoliotagtaskteamuser
widget_idstring

ALWAYS USE A CONSTANT VALUE OF 'model-generated-widget-id' FOR THIS PARAMETER.

Optional
countnumber

Number of results to return. Default is 20 if parameter is empty. Minimum 1, maximum 100.

opt_fieldsstring

Comma-separated list of optional fields to include in the response.

querystring

The search query. Can be empty to get default results for the resource type.

Search tasks

search_tasks
Full Description

Premium accounts only. Advanced task search with full-text and complex filters. DEFAULT tool for searching tasks: Use by default any time the user asks to search for tasks. Searches task names, descriptions, and comments. Returns tasks with gid, name, assignee, due_on, completed. When the user uses possessive language like 'my' (e.g., 'my tasks', 'my overdue tasks', 'my high-priority tasks'), you MUST always set assignee_any='me', in addition to any other applicable filters. Unless the user explicitly asks for completed tasks or all tasks, always set completed=false to filter to incomplete tasks only. Use get_tasks for non-Premium workspaces.

Parameters (0 required, 28 optional)
Optional
assignee_anystring

Filter to tasks assigned to any of these users. Comma-separated list of user identifiers ("me", an email, or a user GID).

completedboolean

Filter for completed or incomplete tasks.

completed_at_afterstring

ISO 8601 datetime string for completion datetime after filter.

completed_at_beforestring

ISO 8601 datetime string for completion datetime before filter.

completed_on_afterstring

ISO 8601 date string for completion date after filter.

completed_on_beforestring

ISO 8601 date string for completion date before filter.

created_at_afterstring

ISO 8601 datetime string for creation datetime after filter.

created_at_beforestring

ISO 8601 datetime string for creation datetime before filter.

created_by_anystring

Filter to tasks created by any of these users. Comma-separated list of user identifiers ("me", an email, or a user GID).

created_on_afterstring

ISO 8601 date string for creation date after filter.

created_on_beforestring

ISO 8601 date string for creation date before filter.

custom_fieldsstring

JSON string of custom field filters for task search. Parses to an object whose keys are custom field GIDs. Each value must be a string, number, or boolean only. Values become search query parameters, so nested objects and arrays are invalid. For single-select filters, use the option GID as a string. Examples: {"4578152156":"1200123456789012"}; {"5678904321":42}; {"1200999999999999":true}.

due_onstring

ISO 8601 date string for due date filter.

due_on_afterstring

ISO 8601 date string for due date after filter.

due_on_beforestring

ISO 8601 date string for due date before filter.

followers_anystring

Filter to tasks followed by any of these users. Comma-separated list of user identifiers ("me", an email, or a user GID).

is_subtaskboolean

Filter to subtasks.

limitnumber

Maximum number of results to return (1-100). Default: 50.

Default: 50
modified_at_afterstring

ISO 8601 datetime string for modified datetime after filter.

modified_on_afterstring

ISO 8601 date string for modified date after filter.

opt_fieldsstring

Comma-separated list of optional fields to include in the response.

projects_anystring

Filter to tasks in any of these projects. Comma-separated list of project GIDs.

resource_subtypestring

Filters results by the task's resource_subtype (e.g., milestone).

Options:default_taskmilestoneapproval
sections_anystring

Filter to tasks in any of these sections or columns. Comma-separated list of section GIDs.

sort_ascendingboolean

Sort in ascending order. Defaults to false.

Default: False
sort_bystring

Field to sort by (e.g., 'due_date', 'created_at', 'completed_at', 'likes', 'modified_at'). Defaults to modified_at.

Options:due_datecreated_atcompleted_atlikesmodified_at
Default: modified_at
tags_anystring

Filter to tasks with any of these tags. Comma-separated list of tag GIDs.

textstring

Text to search for in task name or description.

Preview task search results

search_tasks_preview
Full Description

Search for tasks in the workspace and render a preview of the results. Use only when the user explicitly opts in with rendering a preview of the search results. All search filters are optional, but use at least one search filter to limit the results to a specific set of tasks. For example, use the 'completed' filter to show only completed tasks, or when the user uses possessive language like 'my' (e.g., 'my tasks', 'my overdue tasks', 'my high-priority tasks'), you MUST always set assignee_any='me', in addition to any other applicable filters. Use the 'text' filter as a freeform search term to find tasks that match the specified text (exactly) in the task name or description. After calling this tool, do not summarize, list, or mention specific task names in your response.

Parameters (0 required, 14 optional)
Optional
assignee_anystring

Filter to tasks with assignees matching any of the comma-separated list of user identifiers. User identifiers can be "me", an email, or a user GID chosen among those found using asana_get_workspace_users. For example, if the user specifies "my tasks", set assignee_any to "me". Leave blank to show tasks assigned to any user.

completedboolean

Filter to either completed or incomplete tasks only. Leave blank to show both completed and incomplete tasks. Prefer filtering to incomplete tasks only, EXCEPT when the user specifically and EXPLICITLY asks for completed tasks only, or both completed and incomplete tasks.

completed_on_afterstring

Filter to tasks completed after the specified date. Date must be in YYYY-MM-DD format. Leave blank to show tasks completed after any date, including incomplete tasks.

completed_on_beforestring

Filter to tasks completed before the specified date. Date must be in YYYY-MM-DD format. Leave blank to show tasks completed before any date, including incomplete tasks.

created_by_anystring

Filter to tasks created by a user matching any of the comma-separated list of user identifiers. User identifiers can be "me", an email, or a user GID chosen among those found using asana_get_workspace_users. Leave blank to show tasks created by any user.

created_on_afterstring

Filter to tasks created after the specified date. Date must be in YYYY-MM-DD format. Leave blank to show tasks created after any date.

created_on_beforestring

Filter to tasks created before the specified date. Date must be in YYYY-MM-DD format. Leave blank to show tasks created before any date.

due_on_afterstring

Filter to tasks due after the specified date. Date must be in YYYY-MM-DD format. Leave blank to show tasks due after any date, including tasks with no due date.

due_on_beforestring

Filter to tasks due before the specified date. Date must be in YYYY-MM-DD format. Leave blank to show tasks due before any date, including tasks with no due date.

followers_anystring

Filter to tasks followed by any of the comma-separated list of user identifiers. User identifiers can be "me", an email, or a user GID chosen among those found using asana_get_workspace_users. Leave blank to show tasks followed by any user.

projects_anystring

Filter to tasks in any of the comma-separated list of project IDs (GIDs). Project IDs can be chosen among those found using asana_get_projects. Leave blank to show tasks in any project.

start_on_afterstring

Filter to tasks with a start date after the specified date. Date must be in YYYY-MM-DD format. Leave blank to show tasks with a start date after any date, including tasks with no start date.

start_on_beforestring

Filter to tasks with a start date before the specified date. Date must be in YYYY-MM-DD format. Leave blank to show tasks with a start date before any date, including tasks with no start date.

textstring

Freeform text to search for in task names and descriptions.

Update task

update_task
Full Description

Update existing task properties. Change name, notes, assignee, completion status, due dates, custom fields. Requires task ID. Returns updated task data. Use asana_get_task first to understand current state.

Parameters (1 required, 8 optional)
Required
task_idstring

Globally unique identifier for the task to update.

Optional
assigneestring

User identifier to assign the task to. Can be "me", an email, or a user GID.

completedboolean

Mark the task as completed.

custom_fieldsstring

JSON string of custom fields in format: {"field_gid": "value"}.

due_atstring

Due date and time in ISO 8601 format.

due_onstring

Due date in ISO 8601 format (YYYY-MM-DD).

html_notesstring

New task description in HTML format. You can create links to other asana objects with the following instructions: For <a> tags specifically, to make it easier to create @-mentions through the API, we only require that you provide the GID of the object you wish to reference. If you have access to that object, the API will automatically generate the appropriate href and other attributes for you. For example, to create a link to a task with GID "123", you can send the tag <a data-asana-gid="123"/> which will then be expanded to <a href="https://app.asana.com/0/0/123/f" data-asana-accessible="true" data-asana-dynamic="true" data-asana-type="task" data-asana-gid="123">Task Name</a>. You can also generate a link to a task in a specific project or tag by including a data-asana-project or data-asana-tag attribute in the <a> tag. All other attributes, as well as the contents of the tag, are ignored. To keep the contents of your tag and make a custom vanity link, include the property data-asana-dynamic="false" when setting the contents of the tag. You would send <a data-asana-gid="123" data-asana-dynamic="false">This is some custom text!</a> and receive <a data-asana-accessible="true" data-asana-dynamic="false" data-asana-type="task" data-asana-gid="123">This is some custom text!</a> If you do not have access to the referenced object when you try to create a link, the API will not generate an href for you, but will instead look for an href you provide. This allows you to write back <a> tags unmodified even if you do not have access to the resource. If you do not have access to the referenced object and no href is provided, your request will be rejected with a 400 Bad Request error. Similarly, if you provide neither a GID nor a valid href, the request will be rejected with the same error.

namestring

New name for the task.

notesstring

New task description and details.

Update tasks

update_tasks
Full Description

Update one or more tasks in a single operation. Supports changing name, assignee, due_on, start_on, notes, html_notes, completed, parent, dependencies (add/remove), dependents (add/remove), followers (add/remove), and custom_fields. Returns succeeded (tasks where all updates applied), failed (at least one update failed; some updates may have succeeded), and summary. succeeded = all actions for that task succeeded; failed = partial or total failure, with errors array listing all failed actions for that task.

Parameters (1 required)
Required
tasksarray

Array of task update objects (1-50). Each object requires 'task' (the task GID) and one or more optional fields to update: name, assignee (null to unassign), assignee_section (section GID in assignee's My Tasks, null to clear), due_on (YYYY-MM-DD or null), start_on (YYYY-MM-DD or null; due_on must be present), notes, html_notes, completed, approval_status (pending/approved/rejected/changes_requested), parent (null to convert to top-level task), add/remove_dependencies, add/remove_dependents, add/remove_projects, add/remove_followers, and custom_fields. Example: [{"task": "123", "name": "New name", "due_on": "2025-06-01", "completed": true}]