---
title: Asana API Integration on Truto
slug: asana
category: Ticketing
canonical: "https://truto.one/integrations/detail/asana/"
---

# Asana API Integration on Truto



**Category:** Ticketing  
**Status:** Generally available

## Unified APIs

### Unified User Directory API

- **Activities** — Activities are the actions performed by users in the source application.
- **Groups** — Groups are a collection of users in the source application. In some applications, they might also be called Teams.
- **Me** — 
- **Organizations** — Organizations are the top level entity in the source application. Users are associated with an organization.
- **Users** — The User object represents a User.
- **Workspaces** — Workspaces represent concepts like teams, workspaces, projects in apps that support them

### Unified Ticketing API

- **Attachments** — Attachments are the files associated with a ticket or a comment.
- **Collections** — Tickets and contacts can be grouped into Collections. Collection resource usually maps to the various grouping systems used in the underlying product. Some examples are lists, projects, epics, etc. You can differentiate between these grouping systems using the type attribute of a Collection.
- **Comments** — Comments represent the communication happening on a Ticket, both between a User and a Contact and the internal things like notes, private comments, etc. A Ticket can have one or more Comments.
- **Fields** — Fields represent the attributes defined for various entities in the underlying product. Depending on the underlying product, custom attributes can be defined by a User on various entities like Ticket, Contact, etc. is_user_defined attribute within Field can be used to differentiate between custom and system defined Fields.
- **Tags** — Tags represent a common classification approach used in various ticketing systems. A Ticket may have one or more Tags associated with them.
- **Teams** — Teams represent the grouping system used for Users. These are usually called groups, teams, agent groups, etc. in the underlying products. A User can belong to one or more Teams.
- **Ticket Types** — Ticket Types represent the classification system used by the underlying products for Tickets. Some examples are bugs, feature, incident, etc.
- **Tickets** — Core resource which represents some work that needs to be carried out. Tickets are usually mapped to issues, tasks, work items, etc. depending on the underlying product.
- **Users** — Users represent the people using the underlying ticketing system. They are usually called agents, team members, admins, etc.
- **Workspaces** — Workspaces represent the top-level subdivision in a ticketing system. They usually have their own set of settings, tickets, statuses, priorities and users. Some of the usual terminologies used by the products for the top-level subdivision are projects, bases, spaces, workspace, etc. A Workspace could belong to an Organization.

### Unified Search API

- **Search** — Search endpoint for all the apps.

## MCP-ready AI tools

Truto exposes 190 tools for Asana that AI agents can call directly.

- **list_all_asana_tags** — Get all tags from your Asana account. Returns compact tag objects including gid, resource_type, and name fields.
- **get_single_asana_tag_by_id** — Get a tag by id in Asana. Returns fields gid (unique identifier), resource_type, name, color, notes, created_at, followers (array of users following the tag), workspace, and permalink_url.
- **create_a_asana_tag** — Create a new tag in a workspace or organization in Asana. Returns the full record of the newly created tag including gid, resource_type, name, color, notes, created_at, followers, workspace, and permalink_url.
- **update_a_asana_tag_by_id** — Update a tag by id in Asana. Returns the complete updated tag record including gid, resource_type, name, color, notes, created_at, followers, workspace, and permalink_url.
- **delete_a_asana_tag_by_id** — Delete a specific tag by id in Asana. Returns an empty data object on successful deletion.
- **list_all_asana_users** — Get multiple users. Returns user records accessible to the authenticated user. Response includes gid (unique identifier), resource_type, and name fields.
- **get_single_asana_user_by_id** — Get a user by id in Asana. Returns the full user record including gid, resource_type, name, email, photo, and workspaces (requires workspaces:read scope).
- **list_all_asana_workspaces** — Get multiple workspaces visible to the authorized user in Asana. Returns compact workspace records including gid, resource_type, and name fields.
- **asana_workspaces_remove_user** — Remove a user from a workspace or organization in Asana. Requires workspace_id and user identification. Returns an empty data object on success.
- **get_single_asana_workspace_by_id** — Get a workspace by id in Asana. Returns the full workspace record including gid, resource_type, name, email_domains, and is_organization fields.
- **update_a_asana_workspace_by_id** — Update a workspace by id in Asana. Only the name field can be modified. Returns the complete updated workspace including gid, resource_type, name, email_domains, and is_organization.
- **asana_workspaces_add_user** — Add a user to a workspace or organization in Asana by workspace_id. Returns the full user record including gid, resource_type, name, email, and photo.
- **asana_workspaces_events** — Get workspace events for workspace_id in Asana. Returns a list of events with fields user, resource, action, parent, created_at, change, sync, and has_more.
- **list_all_asana_tasks** — Get multiple tasks in Asana. Returns compact task records with key fields such as task id, name, and completion status.
- **get_single_asana_task_by_id** — Get a task by id in Asana. Returns the complete task record including fields like gid, name, resource_type, completed, due_on, assignee, custom_fields, memberships, followers, and permalink_url.
- **create_a_asana_task** — Create a new task in Asana by providing task details in the data object. The response returns the created task's gid, name, resource_subtype, completion status, due dates, assignee, projects, tags, workspace, and other key fields.
- **update_a_asana_task_by_id** — Update a specific task in Asana by task_gid. Returns the complete updated task record including gid, name, resource_subtype, approval_status, completed, due dates, assignee, custom fields, followers, projects, tags, workspace, and other task details.
- **delete_a_asana_task_by_id** — Delete a specific task in Asana by task id. Deleted tasks go to the user's trash and can be recovered within 30 days before permanent removal. Returns an empty data record.
- **asana_tasks_duplicate** — Create and return a job to asynchronously duplicate a task in Asana. Requires task id. Returns job details including gid, resource_type, status, and optionally new_project, new_task, and new_project_template.
- **asana_tasks_subtasks** — Get subtasks of a task in Asana. Requires task id. Returns compact task objects including gid, resource_type, name, and resource_subtype.
- **asana_tasks_create_subtask** — Create a new subtask under the parent task identified by id in Asana. Returns the full record of the newly created subtask including gid, name, resource_subtype, assignee, completed status, due dates, and other task details.
- **list_all_asana_stories** — Get stories from a task in Asana. Requires task_id. Returns compact story objects including gid, resource_type, created_at, created_by, resource_subtype, and text fields.
- **get_single_asana_story_by_id** — Get a story by id in Asana. Returns the full record including gid, resource_type, created_at, text, created_by, likes, and other story details.
- **create_a_asana_story** — Create a story on a task in Asana by providing task_id and story data with text or html_text. Returns the full record of the new story, including gid, resource_type, created_at, text, is_pinned, sticker_name, created_by, liked, likes, and previews.
- **update_a_asana_story_by_id** — Update a story by id in Asana. Only comment stories can have their text updated, and only comment and attachment stories can be pinned. Returns the full updated story record including fields like gid, resource_type, text, is_pinned, created_by, likes, and previews.
- **delete_a_asana_story_by_id** — Delete a story by id in Asana. Only stories created by the user can be deleted. Returns an empty data object on success.
- **list_all_asana_teams** — Get teams in a workspace in Asana. Requires workspace_id. Returns compact team records including gid, resource_type, and name fields.
- **get_single_asana_team_by_id** — Get the full record for a single team in Asana by id. Returns fields including gid, resource_type, name, description, organization, visibility, and access levels.
- **create_a_asana_team** — Create a team in Asana with the required data object including name, description, organization, and visibility. Returns the created team's gid, name, description, organization, visibility, access levels, and endorsement status.
- **update_a_asana_team_by_id** — Update a team by id in Asana. Returns the updated team's gid, resource_type, name, description, html_description, organization with permalink_url, visibility, access levels, and endorsed status.
- **asana_teams_remove_user** — Remove a user from a team in Asana. Requires team_id and user identification in the request body. Returns an empty data object on success.
- **asana_teams_add_user** — Add a user to a team in Asana. Requires team_id and user identification in the body. Returns the complete team membership record including gid, resource_type, user, team, is_guest, is_limited_access, and is_admin.
- **list_all_asana_attachments** — Get attachments for a specified object in Asana. Requires parent parameter (project, project_brief, or task). Returns compact attachment objects including gid, resource_type, name, and resource_subtype.
- **get_single_asana_attachment_by_id** — Get the full record for a single attachment in Asana by id. Returns fields including gid, resource_type, name, resource_subtype, created_at, download_url, permanent_url, host, parent, size, view_url, and connected_to_app.
- **create_a_asana_attachment** — Upload an attachment to a parent task, project, or project_brief in Asana. Requires parent identifier and file upload. Returns attachment object with fields gid, resource_type, name, resource_subtype, created_at, download_url, permanent_url, host, parent, size, view_url, and connected_to_app.
- **asana_attachments_download** — Use this endpoint to download the attachment.
- **delete_a_asana_attachment_by_id** — Delete a specific attachment in Asana by id. Returns an empty data object on success.
- **list_all_asana_projects** — Get multiple projects in Asana. Returns compact project records including gid, resource_type, and name fields. Note: This endpoint may timeout for large domains.
- **get_single_asana_project_by_id** — Get a project by id in Asana.
- **create_a_asana_project** — Create a new project in a workspace or team in Asana. Returns the full record of the created project including gid, name, archived status, color, created_at, custom fields, default view, due date.
- **update_a_asana_project_by_id** — Update a specific project by id in Asana. Returns the complete updated project record including fields like gid, name, archived, color, notes, privacy_setting, start_on, due_on, completed, owner, team, and followers.
- **delete_a_asana_project_by_id** — Delete a specific existing project by id in Asana. Returns an empty data object on successful deletion.
- **asana_projects_duplicate** — Create a job to asynchronously duplicate a project by project id in Asana. Returns job status, new project, new task, and new project template objects.
- **list_all_asana_team_memberships** — Get team memberships in Asana. Returns compact team membership records including gid, resource_type, user, team, is_guest, is_limited_access, and is_admin fields.
- **get_single_asana_team_membership_by_id** — Get a team membership by id in Asana. Returns the complete team membership record including gid, resource_type, user, team, is_guest, is_limited_access, and is_admin fields.
- **list_all_asana_user_team_memberships** — Get compact team membership records for a user in Asana. Requires user_id and workspace_id. Returns fields: gid, resource_type, user, team, is_guest, is_limited_access, is_admin.
- **list_all_asana_workspace_memberships** — Get the workspace memberships for a workspace in Asana. Requires workspace_id. Returns compact workspace membership objects including gid, resource_type, user, and workspace fields.
- **get_single_asana_workspace_membership_by_id** — Get a workspace membership by id in Asana. Returns fields including gid, resource_type, user, workspace, user_task_list, is_active, is_admin, is_guest, is_view_only, vacation_dates, and created_at.
- **list_all_asana_audit_logs** — Get audit log events for a workspace in Asana. Requires workspace_gid. Supports filtering by start_at, end_at, event_type, actor_type, actor_gid, resource_gid, and limit. Returns audit log event fields including gid, created_at, event_type, event_category, actor, resource, details, and context.
- **list_all_asana_user_workspace_memberships** — Get workspace memberships for a user in Asana. Requires user_id. Returns compact workspace membership records including gid, resource_type, user, and workspace fields.
- **list_all_asana_project_sections** — Get sections in a project using project_gid in Asana. Returns compact section objects including gid, resource_type, and name fields.
- **get_single_asana_project_section_by_id** — Get a section by id in Asana. Returns the complete record including gid, resource_type, name, created_at, and project details.
- **create_a_asana_task_setparent** — Set the parent of a task in Asana. Requires task_gid and parent in the request body. Returns the updated task object including gid, resource_type, name, resource_subtype, completed, due_on, assignee, notes, and other key task fields.
- **list_all_asana_workspace_custom_fields** — Get a workspace's custom fields in Asana. Returns compact custom field objects including gid, resource_type, name, type, enum_options, and other key properties.
- **list_all_asana_project_custom_fields** — Get a project's custom fields in Asana by project. Returns a list of custom field settings including gid, resource_type, is_important, parent, and custom_field.
- **create_a_asana_project_custom_field** — Add a custom field setting to a project in Asana using project id and custom_field in the request body. Returns the custom field setting with gid, resource_type, project, is_important, parent, and custom_field fields.
- **delete_a_asana_project_custom_field_by_id** — Remove a custom field from a project in Asana. Requires project id and custom_field in the request body. Returns an empty object on success.
- **list_all_asana_task_search** — Get tasks by searching in a workspace in Asana. Returns task gid, resource_type, name, resource_subtype, and created_by user object. Requires premium workspace or team membership.
- **list_all_asana_typeahead** — Get objects via typeahead in Asana for workspace_gid and resource_type. Returns gid, resource_type, and name fields. Limited to a single page of results; not for exhaustive search.
- **list_all_asana_team_users** — Get users in a team by id in Asana. Returns compact user records including gid, resource_type, and name, sorted alphabetically and limited to 2000.
- **list_all_asana_users_favorites** — Get a user's favorites by user_gid, workspace, and resource_type in Asana. Returns favorites ordered as in the user's sidebar with fields gid, resource_type, and name.
- **list_all_asana_task_tags** — Get a compact representation of all tags for a task in Asana. Requires task_gid. Returns tag gid, resource_type, and name fields.
- **create_a_asana_task_tag** — Add a tag to a task in Asana. Requires task id and tag gid. Returns an empty data object on success.
- **delete_a_asana_task_tag_by_id** — Remove a tag from a task in Asana. Requires task id and tag gid. Returns an empty data object on success.
- **list_all_asana_workspace_tags** — Get tags in a workspace in Asana. Requires workspace_gid. Returns compact tag objects including gid, resource_type, and name fields.
- **create_a_asana_workspace_tag** — Create a tag in a workspace in Asana. Requires workspace_gid and tag data including name, color, notes, and followers. Returns the full record of the newly created tag including gid, name, color, notes, created_at, followers, and workspace details.
- **list_all_asana_project_tasks** — Get tasks from a project in Asana using project_gid. Returns compact task records including gid, resource_type, name, resource_subtype, and optionally created_by. Tasks are ordered by priority within the project.
- **asana_project_tasks_count** — Get task counts for a project in Asana by project gid. Returns num_tasks, num_incomplete_tasks, num_completed_tasks, num_milestones, num_incomplete_milestones, and num_completed_milestones fields.
- **list_all_asana_section_tasks** — Get tasks from a section in Asana. Requires section_gid. Returns compact task objects including gid, resource_type, name, resource_subtype, and optionally created_by.
- **list_all_asana_tag_tasks** — Get tasks associated with a specific tag in Asana. Requires tag_gid. Returns compact task objects including gid, resource_type, name, resource_subtype, and optionally created_by.
- **list_all_asana_task_list_tasks** — Get tasks from a user task list in Asana using user_task_list_gid. Returns task gid, resource_type, name, resource_subtype, and optionally created_by. Filters out inaccessible private tasks.
- **list_all_asana_task_dependencies** — Get dependencies of a task by task id in Asana. Returns compact representations including gid, resource_type, name, and resource_subtype of each dependency.
- **create_a_asana_task_dependency** — Set dependencies for a task using task id in Asana. Returns an empty object on success. A task can have at most 30 dependents and dependencies combined.
- **delete_a_asana_task_dependency_by_id** — Unlink dependencies from a task using task id in Asana. Returns an empty object on success.
- **list_all_asana_task_dependents** — Get dependents of a task in Asana by task id. Returns compact task objects including gid, resource_type, name, and resource_subtype fields.
- **create_a_asana_task_dependent** — Set dependents for a task in Asana by specifying id and dependents array. Returns an empty object on success. A task can have at most 30 dependents and dependencies combined.
- **delete_a_asana_task_dependent_by_id** — Unlink dependents from a task in Asana. Requires id of the task and a list of dependent task gids to remove. Returns an empty object on success.
- **list_all_asana_allocations** — Get multiple allocations in Asana. Returns fields including gid, resource_type, start_date, end_date, effort, assignee, created_by, parent, and resource_subtype.
- **create_a_asana_allocation** — Create a new allocation in Asana with required parameters start_date, end_date, assignee, and parent. Returns the full allocation record including gid, resource_type, start_date, end_date, effort, assignee, created_by, parent, and resource_subtype.
- **get_single_asana_allocation_by_id** — Get the complete allocation record for a single allocation in Asana. Requires id. Returns fields including gid, resource_type, start_date, end_date, effort, assignee, created_by, parent, and resource_subtype.
- **delete_a_asana_allocation_by_id** — Delete a specific allocation by id in Asana. Returns an empty object on successful deletion.
- **update_a_asana_allocation_by_id** — Update an allocation by id in Asana. Returns the complete updated allocation record including gid, resource_type, start_date, end_date, effort, assignee, created_by, parent, and resource_subtype.
- **create_a_asana_batch** — Submit parallel requests to Asana's API using batch. Requires body parameter 'data' with array of actions each having 'relative_path' and 'method'. Supports query parameters 'opt_fields' and 'opt_pretty'. Returns array of results with status_code, headers, and body.
- **delete_a_asana_custom_field_by_id** — Delete a specific custom field in Asana by custom_field_gid. Locked fields can only be deleted by the user who locked them. Returns an empty data object on success.
- **get_single_asana_custom_field_by_id** — Get the complete definition of a custom field's metadata in Asana. Requires id. Returns fields including gid, resource_type, name, type, enum_options, date_value, enum_value, multi_enum_values, number_value, text_value, display_value, description.
- **create_a_asana_custom_field** — Create a new custom field in a workspace in Asana. Requires workspace and resource_subtype. Returns the full record of the newly created custom field including gid, name, type, enum_options, and other metadata.
- **update_a_asana_custom_field_by_id** — Update a custom field in Asana by specifying the id and the data object with the fields to change. Returns the complete updated custom field record, including name, enum_options, date_value, enum_value, multi_enum_values, number_value, text_value, and description.
- **create_a_asana_custom_field_enum_option** — Create an enum option for a custom field in Asana using custom_field_gid. Returns the full record of the newly created enum option including name, enabled status, and color.
- **asana_custom_field_enum_options_insert** — Reorder an enum option in a custom field in Asana by moving the enum_option before or after another specified enum option. Requires custom_field_gid and enum_option. Returns reordered enum option details including gid, resource_type, name, enabled, and color.
- **update_a_asana_custom_field_enum_option_by_id** — Update an existing enum option by id in Asana. Returns the full record of the updated enum option including gid, resource_type, name, enabled, and color fields.
- **list_all_asana_portfolio_custom_fields** — Get a portfolio's custom field settings in Asana by portfolio_id. Returns compact custom field setting objects including gid, resource_type, project, is_important, parent, and custom_field.
- **create_a_asana_portfolio_custom_field** — Add a custom field to a portfolio in Asana by creating a custom field setting for the portfolio. Requires portfolio_id and custom_field data. Returns the custom field setting including gid, resource_type, parent, and custom_field details.
- **delete_a_asana_portfolio_custom_field_by_id** — Remove a custom field from a portfolio in Asana. Requires portfolio id and custom_field in the request body. Returns an empty object on success.
- **list_all_asana_custom_types** — Get all custom types associated with a project in Asana. Requires project. Returns gid, resource_type, name, and status_options for each custom type.
- **list_all_asana_events** — Get events on a resource in Asana. Requires resource ID. Returns fields user (who triggered event), resource (triggering resource), action (type of action), parent (parent object), created_at (timestamp), change (change details), sync (sync token), and has_more (more events indicator).
- **list_all_asana_goals** — Get goals filtered by portfolio, project, task, is_workspace_level, team, workspace, and time_periods in Asana. Returns compact goal records including gid, resource_type, name, and owner.
- **get_single_asana_goal_by_id** — Get a goal by id in Asana. Returns the complete goal record including gid, resource_type, name, notes, due_on, start_on, liked status, likes, team, workspace, followers, time_period, metric, owner, current_status_update, and status.
- **update_a_asana_goal_by_id** — Update a goal by id in Asana.Returns the updated goal record including fields like gid, name, notes, due_on, start_on, status, owner, team, workspace, and followers.
- **delete_a_asana_goal_by_id** — Delete a specific goal by id in Asana. Returns an empty object on success.
- **create_a_asana_goal** — Create a new goal in a workspace or team in Asana. Requires data with name, workspace, and optional fields like notes, due_on, start_on, team, owner, followers, and is_workspace_level. Returns the full record of the created goal including gid, name, notes, status, and followers.
- **asana_goals_parent_goals** — Get a compact representation of all parent goals of a goal in Asana. Requires goal_gid. Returns fields gid, resource_type, name, and owner in the response.
- **create_a_asana_goal_metric** — Create and add a goal metric to a specified goal in Asana using goal id. Returns the goal's gid, resource_type, name, notes, due_on, start_on, status, metric, owner, and other key fields. Replaces existing metric if present.
- **update_a_asana_goal_metric_by_id** — Update a goal metric's current_number_value for the goal identified by goal id in Asana. Returns the complete updated goal metric record including gid, resource_type, name, notes, due_on, status, and related fields.
- **create_a_asana_goal_collaborator** — Add collaborators to a goal by goal id in Asana. Returns the updated goal including fields gid, resource_type, name, html_notes, notes, due_on, start_on, is_workspace_level, liked, likes, team, workspace, followers, time_period, metric, owner, current_status_update, and status.
- **delete_a_asana_goal_collaborator_by_id** — Remove collaborators from a goal in Asana by goal id. Returns the updated goal including fields gid, resource_type, name, notes, due_on, start_on, liked, likes, team, workspace, followers, status, and other related properties.
- **list_all_asana_goal_relationships** — Get goal relationships filtered by supported_goal in Asana. Returns compact goal relationship records including gid, resource_type, resource_subtype, supporting_resource, and contribution_weight.
- **get_single_asana_goal_relationship_by_id** — Get a goal relationship by id in Asana. Returns the complete updated goal relationship record including gid, resource_type, resource_subtype, supporting_resource, contribution_weight, and supported_goal.
- **update_a_asana_goal_relationship_by_id** — Update a goal relationship by id in Asana. Returns the complete updated goal relationship record including gid, resource_type, resource_subtype, supporting_resource, contribution_weight, and supported_goal.
- **create_a_asana_goal_relationship** — Create a goal relationship by adding a supporting resource to a goal in Asana. Requires goal_gid and supporting_resource. Returns the created goal relationship with gid, resource_type, resource_subtype, supporting_resource, contribution_weight, and supported_goal.
- **delete_a_asana_goal_relationship_by_id** — Removes a supporting goal relationship for the parent goal identified by goal_gid in Asana. Returns an empty object on success.
- **get_single_asana_job_by_id** — Get a job by id in Asana. Returns the full job record including gid, resource_type, resource_subtype, status, new_project, new_task, and new_project_template fields.
- **list_all_asana_memberships** — Get multiple memberships in Asana. Returns compact membership records including goal_membership, project_membership, portfolio_membership, or custom_field_membership.
- **create_a_asana_membership** — Create a new membership in Asana with member and parent. Returns the full record of the newly created membership including access_level and member details.
- **get_single_asana_membership_by_id** — Get a membership by id in Asana. Returns a project_membership, goal_membership, portfolio_membership, or custom_field_membership record with key membership details.
- **update_a_asana_membership_by_id** — Update a membership by id in Asana. Returns the full record of the updated membership including access_level and membership details.
- **delete_a_asana_membership_by_id** — Delete a specific membership by id in Asana. Returns an empty data object on successful deletion.
- **get_single_asana_organization_export_by_id** — Get details on a specific organization export request by id in Asana. Returns fields gid (unique identifier), resource_type, created_at (creation time), download_url (URL to download export, may be null if in progress), state (export status), and organization (workspace info).
- **create_a_asana_organization_export** — Create an organization export request in Asana with the organization parameter. Returns gid, resource_type, created_at, download_url, state, and organization fields in the response.
- **list_all_asana_portfolios** — Get multiple portfolios in Asana. Requires workspace. Returns a list of portfolios with fields gid, resource_type, and name. Supports pagination with limit and offset.
- **get_single_asana_portfolio_by_id** — Get a portfolio by id in Asana. Returns the complete portfolio record including gid, resource_type, name, archived status, color, created_at, created_by, custom_field_settings.
- **create_a_asana_portfolio** — Create a new portfolio in Asana using the given name and workspace. Returns the portfolio's gid, resource_type, name, archived status, color, created_at, created_by, current_status_update, due_on, custom_fields, members, owner.
- **update_a_asana_portfolio_by_id** — Update a portfolio by id. Returns the complete updated portfolio record including gid, resource_type, name, archived status, color, created_at, created_by, custom_field_settings, current_status_update, due_on, custom_fields, workspace, public status, and other key portfolio details.
- **delete_a_asana_portfolio_by_id** — Delete an existing portfolio in Asana by id. Returns an empty data object on success.
- **list_all_asana_portfolio_items** — Get a list of items in a portfolio in Asana by portfolio_id. Returns compact portfolio item objects including gid, resource_type, and name fields.
- **create_a_asana_portfolio_item** — Add an item to a portfolio in Asana. Requires portfolio_id and item. Returns an empty data object on success.
- **delete_a_asana_portfolio_item_by_id** — Remove an item from a portfolio in Asana using portfolio_id and item. On success, it returns an empty data object.
- **create_a_asana_portfolio_membership** — Add users as members to a portfolio in Asana by specifying the portfolio_id and members array. Returns the updated portfolio with fields like gid, name, archived, color, created_at, custom_fields, and members.
- **delete_a_asana_portfolio_membership_by_id** — Remove specified users from a portfolio in Asana by id and the members array.
- **list_all_asana_portfolio_memberships** — Get multiple portfolio memberships in Asana. Returns compact portfolio membership objects including gid, resource_type, portfolio, user, and access_level fields.
- **get_single_asana_portfolio_membership_by_id** — Get a portfolio membership by id in Asana. Returns fields gid, resource_type, portfolio (the portfolio the user is a member of), user (the user object), and access_level (admin, editor, or viewer).
- **list_all_asana_single_portfolio_memberships** — Get memberships from a portfolio in Asana by portfolio_id. Returns compact portfolio membership records including gid, resource_type, portfolio, user, and access_level fields.
- **get_single_asana_project_brief_by_id** — Get the full record for a project brief in Asana by id. Returns fields including gid, resource_type, title, html_text, text, permalink_url, and associated project.
- **update_a_asana_project_brief_by_id** — Update a project brief by id in Asana. Returns the complete updated project brief including gid, resource_type, title, html_text, text, permalink_url, and associated project.
- **delete_a_asana_project_brief_by_id** — Delete a specific project brief in Asana by id. Returns an empty data object on success.
- **create_a_asana_project_brief** — Create a new project brief for a project in Asana using project_id. Returns the full record including gid, resource_type, title, html_text, text, permalink_url, and associated project.
- **list_all_asana_project_statuses** — Get compact project status updates for a project in Asana. Requires project_id. Returns fields gid, resource_type, and title for each status update.
- **get_single_asana_project_status_by_id** — Get a project status by id in Asana. Returns fields including gid, resource_type, title, text, html_text, color, author, created_at, created_by, and modified_at.
- **delete_a_asana_project_status_by_id** — Delete a specific project status in Asana by id. Returns an empty object on successful deletion.
- **create_a_asana_project_status** — Create a new project status update for the project identified by project_id in Asana. Returns the full record including gid, resource_type, title, text, html_text, color, author, created_at, created_by, and modified_at.
- **list_all_asana_project_templates** — Get multiple project templates in Asana. You should specify one of team, workspace parameters. Returns compact project template records including gid, resource_type, and name fields.
- **get_single_asana_project_template_by_id** — Get a project template by id in Asana. Returns the complete project template record including gid, resource_type, name, description, public status, owner, team, requested_dates, requested_roles, and color.
- **delete_a_asana_project_template_by_id** — Delete a specific project template in Asana by id. Returns an empty data object on success.
- **asana_project_templates_instantiate_project** — Create and return a job to asynchronously instantiate a project from a project template in Asana. Returns job gid, status, new_project, new_task, and new_project_template objects.
- **create_a_asana_project_template** — Create and return a job to asynchronously instantiate a project from a project template in Asana. Returns job gid, status, new_project, new_task, and new_project_template objects.
- **list_all_asana_team_project_templates** — Get a team's project templates by team_id in Asana. Returns compact project template records including gid, resource_type, and name. Supports pagination with limit and offset.
- **asana_rules_run** — Trigger a rule using the rule_trigger_id in Asana. Requires rule_trigger_id as a path parameter and action_data in the request body. Returns a message detailing the result.
- **create_a_asana_section** — Create a section in a project in Asana. Requires project_id and section name. Returns the full record of the newly created section, including gid, resource_type, name, created_at, and project details.
- **update_a_asana_section_by_id** — Update a section by id in Asana. Requires section_gid and name in the data object. Returns the updated section record, including gid, resource_type, name, created_at, and project.
- **delete_a_asana_section_by_id** — Delete a specific section by id in Asana. The section must be empty and not the last remaining section. Returns an empty data object on success.
- **asana_sections_insert** — Move or insert a section in a project in Asana. Requires project_id and section. One of before_section or after_section is required. Returns an empty data object on success.
- **asana_sections_add_task** — Add a task to a specific section in Asana by section_id and task. The task will be inserted at the top unless insert_before or insert_after is specified. On success, it returns an empty object.
- **list_all_asana_status_updates** — Get status updates from an object in Asana. Requires parent (GID for a project, portfolio, or goal). Returns compact status update records including gid, resource_type, title, and resource_subtype.
- **delete_a_asana_status_update_by_id** — Delete a specific status update in Asana by id. Returns an empty data object on success.
- **get_single_asana_status_update_by_id** — Get a status update by id in Asana. Returns fields including gid, resource_type, title, text, status_type, author, created_at, modified_at, liked, likes, num_likes, and parent.
- **create_a_asana_status_update** — Create a status update with required parameters text, status_type, and parent in Asana. Returns the full record including gid, resource_type, title, text, status_type, author, created_at, modified_at, num_likes, and parent.
- **list_all_asana_task_templates** — Get multiple task templates in Asana. Requires a project parameter. Returns task templates with fields gid, resource_type, and name.
- **get_single_asana_task_template_by_id** — Get a task template by id in Asana. Returns the task template's gid, resource_type, name, project, template configuration, created_by user, and created_at timestamp.
- **delete_a_asana_task_template_by_id** — Delete a specific task template in Asana by id. Returns an empty data object on success.
- **asana_task_templates_instantiate_task** — Create a job to asynchronously instantiate a task from a task template in Asana using the task_template_id parameter. Returns job details including gid, resource_type, resource_subtype, status, new_project, new_task, and new_project_template.
- **list_all_asana_user_teams** — Get teams for a user in Asana. Requires user_id and organization. Returns compact team records including gid, resource_type, and name.
- **list_all_asana_single_team_memberships** — Get compact team memberships for a team in Asana by providing team_id. Returns fields including gid, resource_type, user, team, is_guest, is_limited_access, and is_admin.
- **list_all_asana_time_periods** — Get time periods for a workspace in Asana. Requires workspace. Returns fields including gid (unique identifier), resource_type, start_on, end_on, period (cadence and index), and display_name.
- **get_single_asana_time_period_by_id** — Get a time period by id in Asana. Returns fields gid, resource_type, end_on, start_on, period, display_name, and parent in the response.
- **list_all_asana_time_tracking_entries** — Get time tracking entries for a task in Asana. Requires task_id. Returns entries with gid, resource_type, duration_minutes, entered_on, attributable_to, and created_by fields.
- **get_single_asana_time_tracking_entry_by_id** — Get a time tracking entry by id in Asana. Returns fields gid, resource_type, duration_minutes, entered_on, attributable_to, created_by, task, and created_at in the response.
- **create_a_asana_time_tracking_entry** — Create a time tracking entry on a task in Asana. Requires task_id and data with duration_minutes. Returns the created entry with gid, resource_type, duration_minutes, entered_on, attributable_to, created_by, task, and created_at fields.
- **update_a_asana_time_tracking_entry_by_id** — Update a specific time tracking entry in Asana by id. Returns the complete updated time tracking entry including gid, resource_type, duration_minutes, entered_on, attributable_to, created_by, task, and created_at.
- **delete_a_asana_time_tracking_entry_by_id** — Delete a specific time tracking entry in Asana by providing the id. Returns an empty data object on successful deletion.
- **list_all_asana_workspace_users** — Get users in a workspace in Asana. Requires workspace_id. Returns compact user records including gid, resource_type, and name, sorted alphabetically and limited to 2000 users.
- **list_all_asana_user_task_lists** — Get a user's task list by user_id and workspace in Asana. Returns fields gid, resource_type, name, and owner object in the response.
- **get_single_asana_user_task_list_by_id** — Get a user task list by id in Asana. Returns the full record including gid, resource_type, name, owner, and workspace fields.
- **list_all_asana_webhooks** — Get the compact representation of all webhooks registered for the authenticated user in the given workspace in Asana. Returns fields including gid, resource_type, active, resource.
- **create_a_asana_webhook** — Establish a webhook subscription by providing resource and target URL in Asana. Returns webhook details including gid, resource, target, active status, and timestamps.
- **get_single_asana_webhook_by_id** — Get a webhook by id in Asana. Returns the full webhook record including gid, resource_type, active status, resource details, target URI, creation time, last failure and success timestamps, delivery retry count, next attempt time, failure deletion timestamp, and filters applied.
- **update_a_asana_webhook_by_id** — Update a webhook's filters by id in Asana. The filters array sent will completely overwrite the existing filters. Returns webhook details including gid, resource_type, active status, resource, target URI, timestamps, and filters.
- **delete_a_asana_webhook_by_id** — Delete a webhook by id in Asana. This permanently removes the webhook and returns an empty object on success.
- **create_a_asana_task_project** — Add a project to a task in Asana. Requires task id. Supports optional location parameters to specify position within the project or section. Returns an empty data block.
- **delete_a_asana_task_project_by_id** — Remove a project from a task in Asana. Requires task id and project in the request body. Returns an empty data object on success.
- **list_all_asana_task_projects** — Get projects a task is in by task id in Asana. Returns compact project objects including gid, resource_type, and name fields.
- **create_a_asana_task_follower** — Add followers to a task in Asana using task id. Returns the updated task object including gid, resource_type, name, completed status, assignee, followers, and other key task details.
- **delete_a_asana_task_follower_by_id** — Remove specified followers from a task in Asana by task id. Returns the complete updated task record including gid, name, resource_type, completed status, assignee, followers, and other key task details.
- **get_single_asana_task_by_custom_id_by_id** — Get a task by workspace_id and id in Asana. Returns fields including gid, resource_type, name, resource_subtype, assignee, completed, due_on, memberships, custom_fields, followers, notes, and permalink_url.
- **list_all_asana_team_projects** — Get projects for a team in Asana using team_id. Returns compact project objects including gid, resource_type, and name fields.
- **create_a_asana_team_project** — Create a project in a team in Asana using team_id. Returns the full record of the newly created project including gid, name, archived status, color, created_at, privacy_setting, due_on, start_on, notes, owner, team, workspace, and other project details.
- **list_all_asana_workspace_projects** — Get all projects in a workspace using workspace_id. Returns compact project records including gid, resource_type, and name fields. Note: This endpoint may timeout for large domains.
- **create_a_asana_workspace_project** — Create a project in a workspace using Asana. Returns the full record of the newly created project, including gid, name, archived status, color, created_at, and current_status_update.
- **create_a_asana_project_follower** — Add followers to a project by project_id in Asana. Returns the updated project including fields like gid, name, members, followers, and privacy_setting.
- **delete_a_asana_project_follower_by_id** — Remove specified followers from a project in Asana using project id. Returns the updated project with fields including gid, name, archived, color, created_at, members, modified_at, notes, privacy_setting, completed, followers, owner, team, permalink_url, and workspace.
- **delete_a_asana_project_user_by_id** — Remove specified users from members of a project in Asana using project id. Returns the updated project with fields including gid, name, archived, color, created_at, members, completed, privacy_setting, and permalink_url.
- **create_a_asana_project_user** — Add users to a project in Asana by specifying project id and members array. Returns the updated project with fields like gid, name, members, followers, and privacy_setting.

## How it works

1. **Link your customer's Asana account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Asana.** The Proxy API is a 1-to-1 mapping of the Asana API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Escalate support tickets to Asana engineering projects** — Helpdesk and support platforms can let agents push bug reports or feature requests directly into Asana as tasks, then sync comments and completion status back — so customers get notified when issues are resolved without anyone switching tools.
- **Automate post-sales onboarding project creation** — CRM and revenue platforms can spin up standardized Asana onboarding projects from templates when deals close, attach contracts, and assign the right CS reps — eliminating the manual handoff between Sales and Customer Success.
- **Sync work items bi-directionally with your platform** — Any SaaS product that tracks work internally can offer a native Asana integration that keeps tickets, statuses, assignees, and comments in sync across both systems, so teams never have to reconcile data manually.
- **Pull time tracking data into billing and invoicing tools** — Agency management and billing platforms can read Asana time tracking entries per project and user to auto-generate accurate invoices, removing the friction of manual time reconciliation at month-end.
- **Push live metrics into Asana Goals for executive alignment** — BI and analytics platforms can programmatically update Asana Goal metrics with real-time data like ARR or pipeline value, keeping company OKRs current without anyone manually editing progress bars.

## What you can build

- **Two-way task and ticket sync** — Create, update, and complete Asana tasks from your product and reflect Asana changes back using the Unified Ticketing API's Tickets resource, covering assignees, due dates, custom fields, and completion status.
- **Cross-platform comment threading** — Mirror comments between your app and Asana Stories so engineers and support agents can collaborate without leaving their native tool, using the Unified Ticketing API's Comments resource.
- **One-click project scaffolding from templates** — Let users instantiate complex multi-task Asana projects from pre-built templates with a single action in your product, using the project template instantiation endpoint.
- **Custom field mapping for contextual metadata** — Push your product's data — external IDs, deal values, priority levels — into Asana custom fields so users see relevant context directly on their tasks without switching apps.
- **Real-time webhook-driven status updates** — Subscribe to Asana project and task changes via webhooks so your platform reacts instantly to task completions, section moves, or field updates instead of relying on polling.
- **Automated time tracking extraction for invoicing** — Pull time tracking entries by project and user from Asana to generate billing line items, timesheets, or utilization reports natively in your platform.

## FAQs

### What authentication methods does the Asana integration support?

Truto handles OAuth 2.0 for Asana, managing token exchange and refresh automatically. Your end users authorize via Asana's standard OAuth consent flow — you never touch their credentials.

### How does Asana's data model map to the Unified Ticketing API?

Asana Tasks map to Tickets, Projects and Sections map to Collections, Stories map to Comments, Custom Fields map to Fields, Tags map to Tags, Teams map to Teams, Workspaces map to Workspaces, and Users map to Users. Attachments are also supported as a first-class resource.

### Can I read and write custom fields on Asana tasks?

Yes. You can list custom fields on projects and workspaces, create or update custom field values on tasks, and even manage enum options — all through dedicated endpoints like list_all_asana_project_custom_fields and create_a_asana_custom_field.

### Does Truto handle Asana's pagination and rate limits?

Yes. Truto abstracts away Asana's cursor-based pagination and manages rate limit handling, so you get consistent paginated responses without writing retry logic or tracking offsets yourself.

### Can I listen for real-time changes instead of polling?

Yes. The integration supports creating and managing Asana webhooks via create_a_asana_webhook, so you can subscribe to changes on projects or tasks and react in real time.

### What write operations are supported beyond creating tasks?

The integration supports a wide range of writes: creating subtasks, adding tasks to projects and sections, managing dependencies and dependents, attaching files, adding/removing team and project members, creating stories (comments), setting parent tasks, duplicating tasks and projects, and updating goals and goal metrics.

## Related reading

- [Connect Asana to Claude: Automate Task Management via MCP](https://truto.one/blog/connect-asana-to-claude-manage-team-collaboration-track-goals/) — Learn how to connect Asana to Claude using a managed MCP server. Automate task tracking, project triage, and cross-functional workflows with AI agents.
- [Connect Asana to ChatGPT: Automate Tasks & Sync Project Workflows via MCP](https://truto.one/blog/connect-asana-to-chatgpt-automate-tasks-sync-project-workflows/) — Learn how to connect Asana to ChatGPT using a managed MCP server. Automate task creation, sync project workflows, and bypass Asana API rate limits.
- [Connect Asana to AI Agents: Coordinate Teams & Automate Goal Tracking](https://truto.one/blog/connect-asana-to-ai-agents-coordinate-teams-automate-goal-tracking/) — Give your AI agents secure, authenticated access to Asana. Learn how to fetch Asana tools via Truto's SDK and build multi-step workflows in LangChain.
