Asana
Description: Enable agents to interact with tasks, projects, and workspaces in Asana.
Author: Arcade
Code: GitHub
Auth: API Key
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 Name | Description |
---|---|
GetProjectById | Get a project by its ID. |
ListProjects | List projects associated to one or more teams. |
GetTagById | Get a tag by its ID. |
CreateTag | Create a tag. |
ListTags | List tags associated to one or more workspaces. |
GetTasksWithoutId | Search and retrieve tasks using full-text and filters when you don't have the task ID. |
GetTaskById | Get a task by its ID. |
GetSubtasksFromATask | Get subtasks associated to a task. |
UpdateTask | Update a task. |
MarkTaskAsCompleted | Mark a task as completed. |
CreateTask | Create a task. |
AttachFileToTask | Attach a file to a task. |
ListUsers | List users that are members of one or more workspaces. |
GetUserById | Get a user by their ID. |
GetWorkspaceById | Get a workspace by its ID. |
ListWorkspaces | List the user workspaces. |
GetTeamById | Get a team by its ID. |
ListTeamsTheCurrentUserIsAMemberOf | List the teams the current user is a member of. |
ListTeams | List 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 usingfile_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.