Skip to content

Ticketing

Asana
API integration

Ship Ticketing features without building the integration. Full Asana API access via Proxy, normalized data through Unified APIs, and 190+ MCP-ready tools for AI agents — all extensible to your exact use case.

Talk to us
Asana

Use Cases

Why integrate with Asana

Common scenarios for SaaS companies building Asana integrations for their customers.

01

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.

02

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.

03

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.

04

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.

05

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

Ship these features with Truto + Asana

Concrete product features your team can ship faster by leveraging Truto’s Asana integration instead of building from scratch.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

SuperAI

Asana AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

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.

Why Truto

Why use Truto’s MCP server for Asana

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 600+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

Unified APIs

Unified APIs for Asana

Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.

Unified User Directory API

Activities

Activities are the actions performed by users in the source application.

View Docs

Groups

Groups are a collection of users in the source application. In some applications, they might also be called Teams.

View Docs

Organizations

Organizations are the top level entity in the source application. Users are associated with an organization.

View Docs

Users

The User object represents a User.

View Docs

Workspaces

Workspaces represent concepts like teams, workspaces, projects in apps that support them

View Docs

Unified Ticketing API

Attachments

Attachments are the files associated with a ticket or a comment.

View Docs

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.

View Docs

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.

View Docs

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.

View Docs

Tags

Tags represent a common classification approach used in various ticketing systems. A Ticket may have one or more Tags associated with them.

View Docs

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.

View Docs

Ticket Types

Ticket Types represent the classification system used by the underlying products for Tickets. Some examples are bugs, feature, incident, etc.

View Docs

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.

View Docs

Users

Users represent the people using the underlying ticketing system. They are usually called agents, team members, admins, etc.

View Docs

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.

View Docs

Unified Search API

Search

Search endpoint for all the apps.

View Docs

How It Works

From zero to integrated

Go live with Asana in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Asana account

Use Truto’s frontend SDK to connect your customer’s Asana account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Asana

Truto’s Proxy API is a 1-to-1 mapping of the Asana API. You call us, we call Asana, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Asana’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Asana on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

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.

Asana

Get Asana integrated into your app

Our team understands what it takes to make a Asana integration successful. A short, crisp 30 minute call with folks who understand the problem.

Talk to us