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 usUse Cases
Why integrate with Asana
Common scenarios for SaaS companies building Asana integrations for their customers.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
How It Works
From zero to integrated
Go live with Asana in under an hour. No boilerplate, no maintenance burden.
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.
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.
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.
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.
From the Blog
Asana integration guides
Deep dives, architecture guides, and practical tutorials for building Asana integrations.
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