Reference · Tools

Asana

Manage tasks, projects, subtasks, comments, tags, and users in Asana workspaces

Action Productivity v1

The Asana node connects your BusyBot workflows directly to the Asana REST API, letting you create, read, update, and delete tasks, projects, subtasks, comments, tags, and users inside any workspace. Use it to build workflows like automatically creating a task when a form is submitted, moving tasks between sections based on status changes, or syncing project membership as your team grows.

Node type
Action
Parameters
54
Outputs
Output, Error
Credentials
Asana

Asana

Manage tasks, projects, subtasks, comments, tags, and users in Asana

Overview

Asana is a project management platform that helps teams organize, track, and manage their work. This tool provides full CRUD operations for tasks, projects, subtasks, task comments, task tags, task projects, and users via the Asana REST API (v1.0). Supports creating, reading, updating, and deleting tasks and projects, moving tasks between sections, searching tasks, managing comments/tags/project memberships, and listing users within workspaces.

Category: Productivity
Tool Name: asana
Version: 1

Appearance: Icon: si-asana | Color: #F06A6A

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Asana credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Projectproject
Subtasksubtask
Tasktask
Task CommenttaskComment
Task ProjecttaskProject
Task TagtaskTag
Useruser

Operations

Each resource has its own Operation list, and several resources reuse the same operation values (get, getAll, add, remove). Pick the resource first, then the operation.

ResourceOperationValueDescription
SubtaskCreatecreateCreate a subtask
SubtaskGet ManygetAllGet many subtasks
TaskCreatecreateCreate a task
TaskDeletedeleteDelete a task
TaskGetgetGet a task
TaskGet ManygetAllGet many tasks
TaskMovemoveMove a task
TaskSearchsearchSearch for tasks
TaskUpdateupdateUpdate a task
Task CommentAddaddAdd a comment to a task
Task CommentRemoveremoveRemove a comment from a task
Task ProjectAddaddAdd a task to a project
Task ProjectRemoveremoveRemove a task from a project
Task TagAddaddAdd a tag to a task
Task TagRemoveremoveRemove a tag from a task
UserGetgetGet a user
UserGet ManygetAllGet many users
ProjectCreatecreateCreate a new project
ProjectDeletedeleteDelete a project
ProjectGetgetGet a project
ProjectGet ManygetAllGet many projects
ProjectUpdateupdateUpdate a project

Parameters

Every Asana identifier is a GID — the numeric ID Asana puts in the object’s URL. All identifier fields accept expressions, so you can feed them from an upstream item.

Subtask: Create

ParameterTypeRequiredDefaultDescription
Parent Task ID (taskId)stringYesThe GID of the parent task.
NamestringYesThe name of the subtask to create.
Additional Fields (otherProperties)collectionNo{}Optional properties to set on the new subtask.
— AssigneestringNoUser GID to assign to the subtask. Find in Asana: click user profile > copy GID from URL.
— Assignee StatusoptionsNoinboxSet Assignee status on the subtask (requires Assignee).
Options: inbox, today, upcoming, later
— CompletedbooleanNofalseWhether the subtask should be marked completed.
— Due OnstringNoDate on which the subtask is due (YYYY-MM-DD).
— LikedbooleanNofalseWhether the subtask is liked by the authorized user.
— NotesstringNoThe subtask notes.
— WorkspacestringNoThe workspace GID to create the subtask in. Find in Asana: Admin Console > copy workspace GID from URL.

Subtask: Get Many

ParameterTypeRequiredDefaultDescription
Parent Task ID (taskId)stringYesThe GID of the parent task.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
OptionscollectionNo{}Query options for the request.
— FieldsstringNogid,name,resource_typeComma-separated list of field names to return (e.g., “gid,name,completed,assignee”). Use ”*” for all fields.
— PrettybooleanNofalseWhether to provide “pretty” output.

Task: Create

ParameterTypeRequiredDefaultDescription
WorkspacestringYesThe workspace GID to create the task in. Find in Asana: Admin Console > copy workspace GID from URL.
NamestringYesThe name of the task to create.
Additional Fields (otherProperties)collectionNo{}Optional properties to set on the task.
— AssigneestringNoUser GID to assign to the task.
— Assignee StatusoptionsNoinboxSet Assignee status on the task (requires Assignee).
Options: inbox, today, upcoming, later
— CompletedbooleanNofalseWhether the task should be marked completed.
— Due OnstringNoDate on which the task is due (YYYY-MM-DD).
— LikedbooleanNofalseWhether the task is liked by the authorized user.
— NotesstringNoThe task notes.
— ProjectsstringNoComma-separated list of project GIDs to add the task to.

Task: Delete

ParameterTypeRequiredDefaultDescription
Task ID (id)stringYesThe GID of the task.

Task: Get

ParameterTypeRequiredDefaultDescription
Task ID (id)stringYesThe GID of the task.

Task: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
Filters (filters)collectionNo{}Filter criteria for tasks. At least one of project, section, or workspace+assignee is required.
— AssigneestringNoUser GID to filter by. Note: If you specify assignee, you must also specify the workspace.
— FieldsstringNogid,name,resource_typeComma-separated list of fields to return (e.g., “gid,name,completed”). Use ”*” for all fields.
— PrettybooleanNofalseWhether to provide “pretty” output.
— ProjectstringNoProject GID to filter tasks on.
— SectionstringNoSection GID to filter tasks on.
— WorkspacestringNoWorkspace GID to filter tasks on. Note: If you specify workspace, you must also specify the assignee.
— Completed SincestringNoOnly return tasks completed since this time (ISO 8601 format, e.g. 2026-01-01T00:00:00Z).
— Modified SincestringNoOnly return tasks modified since this time (ISO 8601 format).

Task: Move

ParameterTypeRequiredDefaultDescription
Task ID (id)stringYesThe GID of the task to move.
Project ID (projectId)stringYesThe project GID containing the target section.
Section IDstringYesThe section GID to move the task to. Find in Asana: open the project > click section > copy GID from URL.
ParameterTypeRequiredDefaultDescription
WorkspacestringYesThe workspace GID to search tasks in.
Filters (searchTaskProperties)collectionNo{}Search criteria.
— CompletedbooleanNofalseWhether the task is marked completed.
— TextstringNoText to search for in name or notes.

Task: Update

ParameterTypeRequiredDefaultDescription
Task ID (id)stringYesThe GID of the task.
Additional Fields (otherProperties)collectionNo{}Optional properties to set on the task.
— AssigneestringNoUser GID to assign to the task.
— Assignee StatusoptionsNoinboxSet Assignee status on the task (requires Assignee).
Options: inbox, today, upcoming, later
— CompletedbooleanNofalseWhether the task should be marked completed.
— Due OnstringNoDate on which the task is due (YYYY-MM-DD).
— NamestringNoThe new name of the task.
— LikedbooleanNofalseWhether the task is liked by the authorized user.
— NotesstringNoThe task notes.
— ProjectsstringNoComma-separated list of project GIDs to add the task to.

Task Comment: Add

ParameterTypeRequiredDefaultDescription
Task ID (id)stringYesThe GID of the task to add the comment to.
Is Text HTMLbooleanNofalseWhether the comment body is HTML or plain text.
TextstringYesThe comment text (plain text or HTML depending on “Is Text HTML” setting).
Additional Fields (additionalFields)collectionNo{}Optional comment properties.
— PinnedbooleanNofalseWhether to pin the comment.

Task Comment: Remove

ParameterTypeRequiredDefaultDescription
Comment ID (id)stringYesThe GID of the comment/story to remove.

Task Project: Add

ParameterTypeRequiredDefaultDescription
Task ID (id)stringYesThe GID of the task to add the project to.
ProjectstringYesThe project GID where the task will be added.
Additional Fields (additionalFields)collectionNo{}Optional placement for the task inside the project.
— Insert AfterstringNoA task GID in the project to insert the task after, or null to insert at the beginning.
— Insert BeforestringNoA task GID in the project to insert the task before, or null to insert at the end.
— SectionstringNoA section GID to insert the task into. The task will be inserted at the bottom of the section.

Task Project: Remove

ParameterTypeRequiredDefaultDescription
Task ID (id)stringYesThe GID of the task to remove from the project.
ProjectstringYesThe project GID to remove the task from.

Task Tag: Add

ParameterTypeRequiredDefaultDescription
Task ID (id)stringYesThe GID of the task.
TagstringYesThe tag GID. Find in Asana by navigating to a tag and copying the GID from the URL.

Task Tag: Remove

ParameterTypeRequiredDefaultDescription
Task ID (id)stringYesThe GID of the task.
TagstringYesThe tag GID. Find in Asana by navigating to a tag and copying the GID from the URL.

User: Get

ParameterTypeRequiredDefaultDescription
User IDstringYesAn identifier for the user. Can be an email address, user GID, or the keyword “me” for the current user.

User: Get Many

ParameterTypeRequiredDefaultDescription
WorkspacestringYesThe workspace GID to get users from.

Project: Create

ParameterTypeRequiredDefaultDescription
NamestringYesThe name of the project to create.
WorkspacestringYesThe workspace GID to create the project in.
TeamstringYesThe team GID this project will be assigned to. Find in Asana: Team Settings > copy GID from URL.
Additional Fields (additionalFields)collectionNo{}Optional project properties.
— ColoroptionsNononeColor of the project.
Options: dark-blue, dark-brown, dark-green, dark-orange, dark-pink, dark-purple, dark-red, dark-teal, dark-warm-gray, light-blue, light-green, light-orange, light-pink, light-purple, light-red, light-teal, light-warm-gray, light-yellow, none
— Due OnstringNoThe day on which this project is due (YYYY-MM-DD).
— NotesstringNoBasic description or notes for the project.
— Privacy SettingoptionsNoprivateThe privacy setting of the project.
Options: private, private_to_team, public_to_workspace

Project: Delete

ParameterTypeRequiredDefaultDescription
Project ID (id)stringYesThe GID of the project.

Project: Get

ParameterTypeRequiredDefaultDescription
Project ID (id)stringYesThe GID of the project.

Project: Get Many

ParameterTypeRequiredDefaultDescription
WorkspacestringYesThe workspace GID to list projects from.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
Additional Fields (additionalFields)collectionNo{}Optional listing filters.
— ArchivedbooleanNofalseWhether to only return archived projects.
— TeamstringNoTeam GID to filter projects by.

Project: Update

ParameterTypeRequiredDefaultDescription
WorkspacestringYesThe workspace GID.
Project ID (id)stringYesThe GID of the project to update.
Update FieldscollectionNo{}Project fields to change. Only the fields you add are sent.
— ColoroptionsNononeColor of the project.
Options: dark-blue, dark-brown, dark-green, dark-orange, dark-pink, dark-purple, dark-red, dark-teal, dark-warm-gray, light-blue, light-green, light-orange, light-pink, light-purple, light-red, light-teal, light-warm-gray, light-yellow, none
— Due OnstringNoThe day on which this project is due (YYYY-MM-DD).
— NamestringNoThe name of the project.
— NotesstringNoBasic description or notes for the project.
— OwnerstringNoThe user GID of the new owner for this project.
— Privacy SettingoptionsNoprivateThe privacy setting of the project.
Options: private, private_to_team, public_to_workspace
— TeamstringNoThe team GID to assign this project to.

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo5Maximum number of items to process concurrently. Asana rate limits apply, so keep this low.

Output Data

The Asana response is merged into the output item’s JSON at the top level — the returned object’s fields sit alongside the fields the input item already carried, so downstream nodes address them directly ({{ $json.gid }}) rather than through a wrapper property. Everything else on the item passes through, and binary data is forwarded unchanged. A response field with the same name as an existing item field overwrites it.

How many items you get back depends on the operation:

OperationsOutput
Get Many on subtasks, tasks, users and projects, and task SearchOne output item per record returned — a page of 50 tasks becomes 50 output items from a single input item. A response with no records produces no output items for that input.
Create, Get and Update on tasks, subtasks and projects; Task Comment Add; User GetOne output item carrying the fields of the returned Asana object.
Task Delete; Task Move; Task Comment Remove; Task Project Add and Remove; Task Tag Add and Remove; Project DeleteOne output item carrying success: true — these calls confirm the change instead of returning a record.

List operations return the fields named by the Fields option (opt_fields), which defaults to gid,name,resource_type; use * to ask for the full task field set.

Usage Examples

  • Create a new task in Asana workspace
  • Get all tasks assigned to a user in a project
  • Update task status to completed
  • Add a comment to an Asana task
  • Move a task to a different section
  • Search for tasks in a workspace
  • Create a new Asana project under a team
  • Add a tag to a task
  • Get all users in a workspace

Example Configuration

Create a task in a workspace, assigned and scheduled for today:

{
  "type": "asana",
  "parameters": {
    "resource": "task",
    "operation": "create",
    "workspace": "1234567890123456",
    "name": "{{ $json.title }}",
    "otherProperties": {
      "assignee": "9876543210987654",
      "assignee_status": "today",
      "due_on": "{{ $datetime.date }}",
      "notes": "Filed automatically from {{ $json.source }}",
      "projects": "1111222233334444"
    }
  }
}

List up to 50 tasks in a project, asking for the fields you actually need:

{
  "type": "asana",
  "parameters": {
    "resource": "task",
    "operation": "getAll",
    "returnAll": false,
    "limit": 50,
    "filters": {
      "project": "1111222233334444",
      "modified_since": "2026-01-01T00:00:00Z",
      "opt_fields": "gid,name,completed,due_on,assignee"
    }
  }
}

Add a pinned comment to the task an upstream node just returned:

{
  "type": "asana",
  "parameters": {
    "resource": "taskComment",
    "operation": "add",
    "id": "{{ $json.gid }}",
    "isTextHtml": false,
    "text": "Build {{ $json.buildNumber }} passed — moving to review.",
    "additionalFields": {
      "is_pinned": true
    }
  }
}

Move a task into another section of its project:

{
  "type": "asana",
  "parameters": {
    "resource": "task",
    "operation": "move",
    "id": "{{ $json.gid }}",
    "projectId": "1111222233334444",
    "section": "5544332211009988"
  }
}

Create a project under a team, visible to the whole workspace:

{
  "type": "asana",
  "parameters": {
    "resource": "project",
    "operation": "create",
    "name": "Q1 Marketing Campaign",
    "workspace": "1234567890123456",
    "team": "7788990011223344",
    "additionalFields": {
      "color": "dark-green",
      "due_on": "2026-03-31",
      "notes": "Launch plan and asset tracking",
      "privacy_setting": "public_to_workspace"
    }
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Manage Asana tasks, projects, subtasks, comments, tags, and users via the Asana REST API.

Frequently asked questions

What credential do I need to connect the Asana node?

The node uses the Asana credential type, which you configure with a Personal Access Token from your Asana account settings. You create and manage this credential once in BusyBot and can reuse it across any Asana nodes in your workspace. There is no OAuth flow — the token is tied directly to the Asana account that generates it.

Can I manage both tasks and subtasks, or just top-level tasks?

The node handles subtasks as a distinct resource, separate from standard tasks. This means you can create subtasks under an existing task, retrieve them, update them, or delete them independently. If your workflow needs to decompose a task into smaller pieces after creation, you can chain Asana nodes to handle the parent task first, then the subtasks in subsequent steps.

What happens if the API call fails — does the workflow stop?

The node has two separate outputs: Output and Error. On a successful API call, data flows through the Output path. If the request fails — for instance due to an invalid task ID or a permissions issue — execution is routed to the Error output instead. This lets you build explicit error-handling branches rather than having the entire workflow halt silently.

Can I search for tasks or do I have to know the exact task ID?

The node supports searching tasks, so you are not limited to direct lookups by ID. This is useful when you want to find tasks matching certain criteria within a workspace without hardcoding identifiers. Once you retrieve the task from a search, you can pass its ID downstream to update, comment on, or move it.

Does the node support moving tasks between sections within a project?

Yes, moving tasks between sections is a supported operation. This is distinct from updating a task's fields — it specifically repositions the task within a project's section structure, which maps to how tasks appear in board and list views inside Asana. You will need the target section's ID, which you can retrieve using the node's project or section read operations.

Build with the Asana node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Asana credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.