Asana

Description: Enable agents to interact with tasks, projects, and workspaces in Asana.

Author: Arcade

Code: GitHub

Auth: API Key

PyPI VersionLicensePython VersionsWheel StatusDownloads

The Arcade Asana toolkit provides a pre-built set of tools for interacting with Asana. These tools make it easy to build agents and AI apps that can:

  • Manage teams, projects, and workspaces.
  • Create, update, and search for tasks.
  • Retrieve data about tasks, projects, workspaces, users, etc.
  • Manage task attachments.

Available Tools

Tool NameDescription
GetProjectByIdGet a project by its ID.
ListProjectsList projects associated to one or more teams.
GetTagByIdGet a tag by its ID.
CreateTagCreate a tag.
ListTagsList tags associated to one or more workspaces.
GetTasksWithoutIdSearch and retrieve tasks using full-text and filters when you don't have the task ID.
GetTaskByIdGet a task by its ID.
GetSubtasksFromATaskGet subtasks associated to a task.
UpdateTaskUpdate a task.
MarkTaskAsCompletedMark a task as completed.
CreateTaskCreate a task.
AttachFileToTaskAttach a file to a task.
ListUsersList users that are members of one or more workspaces.
GetUserByIdGet a user by their ID.
GetWorkspaceByIdGet a workspace by its ID.
ListWorkspacesList the user workspaces.
GetTeamByIdGet a team by its ID.
ListTeamsTheCurrentUserIsAMemberOfList the teams the current user is a member of.
ListTeamsList teams associated to a workspace.

If you need to perform an action that’s not listed here, you can get in touch with us to request a new tool, or create your own tools.

GetProjectById


Get a project by its ID.

Parameters

  • project_id (string, required) The ID of the project. E.g. ‘1234567890’

ListProjects


List projects associated to one or more teams.

Parameters

  • team_id (string, optional) The team ID to get projects from. Defaults to None (does not filter by team).
  • workspace_id (string, optional) The workspace ID to get projects from. Defaults to None. If not provided and the user has only one workspace, it will use that workspace. If not provided and the user has multiple workspaces, it will raise an error listing the available workspaces.
  • limit (int, optional, Defaults to 100) The maximum number of projects to return. Min is 1, max is 100. Defaults to 100.
  • next_page_token (string, optional) The token to retrieve the next page of projects. Defaults to None (start from the first page).

GetTagById


Get a tag by its ID.

Parameters

  • tag_id (string, required) The ID of the tag. E.g. ‘1234567890’

CreateTag


Create a tag.

Parameters

  • name (string, required) The name of the tag. E.g. ‘Priority’.
  • description (string, optional) The description of the tag. Defaults to None (no description).
  • color (list of enum TagColor, optional) The color of the tag. Defaults to None (no color).
  • workspace_id (string, None) The ID of the workspace to create the tag in. If not provided, it will associate the tag to the user’s workspace, if there’s only one. Otherwise, it will raise an error.

ListTags


List tags associated to one or more workspaces.

Parameters

  • workspace_id (string, optional) The workspace ID to retrieve tags from. Defaults to None. If not provided and the user has only one workspace, it will use that workspace. If not provided and the user has multiple workspaces, it will raise an error listing the available workspaces.
  • limit (int, optional, Defaults to 100) Maximum number of items to return. Defaults to 100. Maximum allowed is 100.
  • next_page_token (string, optional) The token to retrieve the next page of tags. Defaults to None (start from the first page).

GetTasksWithoutId


Search and retrieve tasks using full-text and filters when you don’t have the task ID.

Parameters

  • keywords (string, optional) Keywords to search for tasks. Matches against the task name and description. Defaults to None (no keyword filter).
  • workspace_id (string, optional) The workspace ID to search for tasks. Defaults to None. If not provided and the user has only one workspace, it will use that workspace. If not provided and the user has multiple workspaces, it will raise an error listing the available workspaces.
  • assignee_id (string, optional) The ID of the user to filter tasks assigned to. Defaults to None (does not filter by assignee).
  • project (string, optional) The ID or name of the project to filter tasks. Defaults to None (does not filter by project).
  • team_id (string, optional) The ID of the team to filter tasks. Defaults to None (does not filter by team).
  • tags (list of strings, optional) Restricts the search to tasks associated to the given tags. Each item in the list can be a tag name (e.g. ‘My Tag’) or a tag ID (e.g. ‘1234567890’). Defaults to None (searches tasks associated to any tag or no tag).
  • due_on (string, optional) Match tasks that are due exactly on this date. Format: YYYY-MM-DD. Ex: ‘2025-01-01’. Defaults to None (searches tasks due on any date or without a due date).
  • due_on_or_after (string, optional) Match tasks that are due on OR AFTER this date. Format: YYYY-MM-DD. Ex: ‘2025-01-01’. Defaults to None (searches tasks due on any date or without a due date).
  • due_on_or_before (string, optional) Match tasks that are due on OR BEFORE this date. Format: YYYY-MM-DD. Ex: ‘2025-01-01’. Defaults to None (searches tasks due on any date or without a due date).
  • completed (bool, optional) Match tasks that are completed. Defaults to False (tasks that are NOT completed).
  • start_on (string, optional) Match tasks that started on this date. Format: YYYY-MM-DD. Ex: ‘2025-01-01’. Defaults to None (searches tasks started on any date or without a start date).
  • start_on_or_after (string, optional) Match tasks that started on OR AFTER this date. Format: YYYY-MM-DD. Ex: ‘2025-01-01’. Defaults to None (searches tasks started on any date or without a start date).
  • ** start_on_or_before** (string, optional) Match tasks that started on OR BEFORE this date. Format: YYYY-MM-DD. Ex: ‘2025-01-01’. Defaults to None (searches tasks started on any date or without a start date).
  • completed (bool, optional) Match tasks that are completed. Defaults to False (tasks that are NOT completed).
  • limit (int, optional, Defaults to 20) Maximum number of tasks to return. Min of 1, max of 20. Defaults to 20.
  • sort_by (enum TaskSortBy, optional) The field to sort the tasks by. Defaults to TaskSortBy.MODIFIED_AT.
  • sort_order (enum SortOrder, optional) The order to sort the tasks by. Defaults to SortOrder.DESCENDING.

GetTaskById


Get a task by its ID.

Parameters

  • task_id (string, required) The ID of the task. E.g. ‘1234567890’
  • max_subtasks (int, optional) The maximum number of subtasks to return. Min of 0 (no subtasks), max of 100. Defaults to 100.

GetSubtasksFromATask


Get subtasks associated to a task.

Parameters

  • task_id (string, required) The ID of the task. E.g. ‘1234567890’
  • limit (int, optional, Defaults to 100) Maximum number of subtasks to return. Defaults to 100. Maximum allowed is 100.
  • next_page_token (string, optional) The token to retrieve the next page of subtasks. Defaults to None (start from the first page).

UpdateTask


Update a task.

Parameters

  • task_id (string, required) The ID of the task. E.g. ‘1234567890’
  • name (string, optional) The new name of the task. Defaults to None (does not change the current name).
  • description (string, optional) The new description of the task. Defaults to None (does not change the current description).
  • completed (bool, optional) The new completion status of the task. Provide True to mark the task as completed, False to mark it as not completed. Defaults to None (does not change the current completion status).
  • start_date (string, optional) The new start date of the task. Format: YYYY-MM-DD. Ex: ‘2025-01-01’. Defaults to None (does not change the current start date).
  • due_date (string, optional) The new due date of the task. Format: YYYY-MM-DD. Ex: ‘2025-01-01’. Defaults to None (does not change the current due date).
  • assignee_id (string, optional) The ID of the user to assign the task to. Defaults to None (does not change the current assignee).

MarkTaskAsCompleted


Mark a task as completed.

Parameters

  • task_id (string, required) The ID of the task. E.g. ‘1234567890’

CreateTask


Create a task.

Parameters

  • name (string, required) The name of the task. E.g. ‘My Task’
  • description (string, optional) The description of the task. Defaults to None (no description).
  • start_date (string, optional) The start date of the task. Format: YYYY-MM-DD. Ex: ‘2025-01-01’. Defaults to None (no start date).
  • due_date (string, optional) The due date of the task. Format: YYYY-MM-DD. Ex: ‘2025-01-01’. Defaults to None (no due date).
  • parent_task_id (string, optional) The ID of the parent task. Defaults to None (no parent task).
  • workspace_id (string, optional) The ID of the workspace to associate the task to. Defaults to None.
  • project (string, optional) The ID or name of the project to associate the task to. Defaults to None (no project).
  • assignee_id (string, optional) The ID of the user to assign the task to. Defaults to None (does not assign the task to anyone).
  • tags (list of strings, optional) The tags to associate with the task. Multiple tags can be provided in the list. Each item in the list can be a tag name (e.g. ‘My Tag’) or a tag ID (e.g. ‘1234567890’). If a tag name does not exist, it will be automatically created with the new task. Defaults to None (no tags associated).

Observations:

A new task must be associated to at least one of the following: parent_task_id, project, or workspace_id. If none of these are provided and the account has only one workspace, the task will be associated to that workspace. If none are provided and the account has multiple workspaces, an error will be raised with a list of available workspaces.

AttachFileToTask


Attach a file to a task.

Parameters

  • task_id (string, required) The ID of the task. E.g. ‘1234567890’
  • file_name (string, required) The name of the file to attach with format extension. E.g. ‘Image.png’ or ‘Report.pdf’.
  • file_content_stream (string, required) The string contents of the file to attach. Use this if the file is a text file. Defaults to None.
  • file_content_base64 (string, required) The base64-encoded binary contents of the file. Use this for binary files like images or PDFs. Defaults to None.
  • file_content_url (string, required) The URL of the file to attach. Use this if the file is hosted on an external URL. Defaults to None.
  • file_encoding (string, optional) The encoding of the file to attach. Only used with file_content_str. Defaults to ‘utf-8’.

Observations:

Provide exactly one of file_content_str, file_content_base64, or file_content_url, never more than one or none.

  • Use file_content_str for text files (will be encoded using file_encoding)
  • Use file_content_base64 for binary files like images, PDFs, etc.
  • Use file_content_url if the file is hosted on an external URL

ListUsers


List users that are members of one or more workspaces.

Parameters

  • workspace_id (string, optional) The workspace ID to list users from. Defaults to None. If no workspace ID is provided, it will use the current user’s workspace , if there’s only one. If the user has multiple workspaces, it will raise an error.
  • limit (int, optional, Defaults to 500) The maximum number of users to retrieve. Min is 1, max is 500. Defaults to 500.
  • next_page_token (string, optional) The token to retrieve the next page of users. Defaults to None (start from the first page).

GetUserById


Get a user by their ID.

Parameters

  • user_id (string, required) The ID of the user. E.g. ‘1234567890’

GetTeamById


Get a team by its ID.

Parameters

  • team_id (string, required) The ID of the team. E.g. ‘1234567890’

ListTeamsTheCurrentUserIsAMemberOf


List the teams the current user is a member of.

Parameters

  • workspace_id (string, optional) The workspace ID to list teams from. Defaults to None. If no workspace ID is provided, it will use the current user’s workspace , if there’s only one. If the user has multiple workspaces, it will raise an error.
  • limit (int, optional, Defaults to 100) The maximum number of teams to retrieve. Min is 1, max is 100. Defaults to 100.
  • next_page_token (string, optional) The token to retrieve the next page of teams. Defaults to None (start from the first page).

ListTeams


List teams associated to a workspace.

Parameters

  • workspace_id (string, optional) The workspace ID to list teams from. Defaults to None. If no workspace ID is provided, it will use the current user’s workspace, if there’s only one. If the user has multiple workspaces, it will raise an error listing the available workspaces.

GetWorkspaceById


Get a workspace by its ID.

Parameters

  • workspace_id (string, required) The ID of the workspace. E.g. ‘1234567890’

ListWorkspaces


List the user workspaces.

Parameters

  • limit (int, optional, Defaults to 100) The maximum number of workspaces to retrieve. Min is 1, max is 100. Defaults to 100.
  • next_page_token (string, optional) The token to retrieve the next page of workspaces. Defaults to None (start from the first page).

Auth

The Arcade Asana toolkit uses the Asana auth provider to connect to users’ Asana accounts.

With the hosted Arcade Engine, there’s nothing to configure. Your users will see Arcade as the name of the application that’s requesting permission.

With a self-hosted installation of Arcade, you need to configure the Asana auth provider with your own Asana app credentials.