Resources · n8n integration

Asana n8n integrationAutomate Asana with n8n.

Asana holds the plan, n8n makes it move. The Asana n8n integration exposes 22 operations across 7 resources, from opening a task to tagging it, commenting on it or moving it between sections. The Asana Trigger listens through a webhook, so a change on a watched task lands in seconds.

Verified Trustpilot reviews · AI, automation & growth agency

Why automate

What does the Asana n8n integration actually do?

The Asana n8n integration connects the Asana REST API to a workflow builder. One node reads and writes tasks, subtasks, projects, comments, tags, task-project links and users. A second node, the Asana Trigger, starts a workflow when something changes on a task or a project you point it at. Both ship with n8n, and both use the same credential, which is the login you save once in n8n and reuse everywhere.

Three shapes of workflow come up again and again. The first is intake. A form, an email or a CRM update lands, and task.create opens the task in the right workspace with the assignee and the due date already filled. Nobody retypes anything, and the task ID comes back in the response, so the next node can tag it or file it in a project.

The second is status routing. The trigger watches a task or a project, the workflow reacts: task.move shifts the item into another section, taskComment.add leaves a trace of what happened, and a message goes to Slack so the people who care see it without opening Asana at all.

The third is reporting. task.getAll with Return All pulls a filtered list, and the rows go to Google Sheets for a weekly view, or to Notion when that is where the team already reads. Shops running two trackers at once mirror Asana into Jira Software the same way, one operation on each side.

The node does not cover every Asana object. It exposes 7 resources, and anything outside them has no operation here. That is where the HTTP Request node comes in: it calls any endpoint of the Asana API directly and reuses the same credential through predefined authentication, so you keep one login for the whole workflow instead of two.

Two limits are worth knowing before you build. Some operations of this node stopped working on January 17, 2023 after changes on Asana's side, and n8n 1.22.2 or later is required to get them back. On the list operations, leaving Return All off caps the result at Limit, which quietly truncates an export that looks complete. If the team is still choosing a platform, the n8n review digs into hosting and cost.

Connect

How do you connect Asana to n8n?

  1. 01

    Create a personal access token in Asana

    Open the Asana developer console at app.asana.com/0/my-apps. In the Personal access tokens section, select Create new token, enter a Token name such as n8n integration, check the box agreeing to the Asana API terms, then select Create token. Copy the token, it goes into n8n in the next step.

  2. 02

    Save the credential in n8n

    In n8n, open the Credentials menu and create an Asana credential using the Access token method. Paste the value into the Access Token field and save. A credential is created once and reused: every Asana node and every Asana Trigger you add afterwards picks it from a dropdown, in any workflow, so nothing is ever retyped.

  3. 03

    Switch to OAuth2 when the setup calls for it

    OAuth2 is the other supported method. Self-hosting n8n means registering an application first: in the developer console, open My apps, select Create new app, name it, pick a purpose, agree to the Asana API terms. Then open OAuth in the left menu, copy the OAuth Redirect URL shown by n8n, add it with Add redirect URL, and paste the Client ID and Client Secret back into the n8n credential.

Triggers

What starts a workflow from Asana ?

Asana Trigger is the node that starts a workflow when Asana calls n8n. Activate the workflow: n8n gives you the webhook URL to register in Asana, and every call becomes an execution.

What you see in n8n

Configuration notes

01Configure the Asana TriggerThe trigger starts a workflow when something happens on one Asana object. n8n registers a webhook, a URL that Asana calls on its own, when you activate the workflow, so each event lands in seconds with no polling and no interval to set.

The trigger starts a workflow when something happens on one Asana object. n8n registers a webhook, a URL that Asana calls on its own, when you activate the workflow, so each event lands in seconds with no polling and no interval to set.

Key parameters

  • Resource: required, the ID of the resource to subscribe to. It can be a task or a project, so the trigger points at one board or one item rather than at a whole workspace.
  • Workspace Name or ID: optional. It names the workspace the resource is registered under, and is only required when you want to allow overriding existing webhooks. Pick it from the list or pass an ID with an expression, the n8n syntax that reads a field from the incoming item.
When to use it
whenever the workflow should follow one project or one task closely, and react to what happens there instead of sweeping Asana on a schedule.
02New Asana eventThe trigger documentation lists a single event, New Asana event. There is no list of event types to tick, and that changes the way you build: the workflow wakes on any change to the watched resource, then sorts out what happened downstream.

The trigger documentation lists a single event, New Asana event. There is no list of event types to tick, and that changes the way you build: the workflow wakes on any change to the watched resource, then sorts out what happened downstream.

Key parameters

  • Resource: the task or project ID sets the scope of what arrives. Aim it at one task and the workflow stays quiet; aim it at a busy project and every change comes through. It is required: left empty, it blocks the node's execution and nothing starts.
When to use it
put a filter or a switch straight after the trigger, then read the object with task.get or project.get before acting. That pattern keeps one workflow readable even when the watched project is noisy, and it costs one extra node.
Actions

What can the Asana node do?

The Asana node exposes 22 operations across 7 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.

Resources × operations matrix
ResourceCreateGetGet ManyUpdateDeleteAddRemoveMoveSearch
Project✓✓✓✓✓
Subtask✓✓
Task✓✓✓✓✓✓✓
Task Comment✓✓
Task Project✓✓
Task Tag✓✓
User✓✓

Project

5 operations
01

Create a project

project.create

What you see in n8n

Notes & use cases

Adds a new project to an Asana workspace and returns its project ID, ready to receive tasks later in the same run.

Key parameters

  • Name: the project name, often built from an expression such as {{ $json.company }} so every new account gets its own board.
  • Workspace Name or ID: the workspace to create the project in, chosen from the dropdown or passed as an ID through an expression.
  • Additional Fields: four optional extras, including Privacy Setting (private, private_to_team, public_to_workspace), Due On in YYYY-MM-DD format, Notes and Color.
Use cases
a deal marked won in the CRM spins up the onboarding project, with the privacy setting already right so nobody has to fix it afterwards.
02

Delete a project

project.delete

What you see in n8n

Notes & use cases

Removes a project from Asana. Only one identifier is asked for, which is why this operation usually sits at the end of a cleanup branch rather than in the middle of a flow.

Key parameters

  • Project ID: the project to delete. Nothing else is requested, so the safety check belongs upstream, in an IF node that confirms you are pointing at the disposable board.
Use cases
a quarterly tidy-up clears the throwaway projects opened for one-off events, once their tasks have been exported somewhere else.
03

Get a project

project.get

What you see in n8n

Notes & use cases

Reads one project and returns its fields. This is how a workflow checks a name, a set of notes or a due date before deciding what to do next.

Key parameters

  • Project ID: the project to read, commonly taken from the trigger with {{ $json.resource }} or from an earlier list operation.
Use cases
before the weekly digest goes out, the workflow re-reads the project so the message carries its current notes rather than a copy written three weeks ago.
04

Get many projects

project.getAll

What you see in n8n

Notes & use cases

Lists the projects of a workspace. It earns its place when the workflow knows the workspace but not yet the ID of the board it needs to work on.

Key parameters

  • Workspace Name or ID: required, the workspace to list projects from.
  • Return All: on, n8n walks the API pages and brings back every project; off, it stops at the number set in Limit.
  • Additional Fields: Archived narrows the answer to projects whose archived field matches, and Teams Name or ID restricts it to one team.
Use cases
a monthly export writes every active project into a spreadsheet, Return All on so the list never stops halfway.
05

Update a project

project.update

What you see in n8n

Notes & use cases

Changes an existing project without touching its tasks. Worth noting: the workspace is required here on top of the ID, which is not the case for the read operations.

Key parameters

  • Workspace Name or ID and Project ID: both required to target the project.
  • Update Fields: seven fields live here, including Name, Notes, Owner, Due On, Color, Privacy Setting and Team Name or ID. Leave the collection empty and the call changes nothing at all.
Use cases
when a delivery date slips, the workflow writes the new value into Due On and rewrites Notes with the reason.

Subtask

2 operations
06

Create a subtask

subtask.create

What you see in n8n

Notes & use cases

Hangs a subtask under an existing task, so a checklist lives inside the parent instead of crowding the project view.

Key parameters

  • Parent Task ID and Name: the task to operate on, and the name of the subtask to create.
  • Additional Fields: seven options, among them Assignee Name or ID, Due On, Notes, Completed and Assignee Status (inbox, today, upcoming, later), which only works if an assignee is set.
Use cases
every new client task is expanded into three standard subtasks, brief, production and review, by looping the same node three times.
07

Get many subtasks

subtask.getAll

What you see in n8n

Notes & use cases

Returns the subtasks attached to one parent task. The natural use is counting what is still open before letting a workflow close the parent.

Key parameters

  • Parent Task ID: the task whose subtasks you want.
  • Return All and Limit: the usual pair, all the subtasks or a capped number of them.
  • Options: Field Names or IDs chooses the fields to return, which keeps the payload small, and Pretty asks Asana for readable output.
Use cases
an end-of-day check reads the subtasks of each deliverable and nudges the owner when one of them is still unchecked.

Task

7 operations
08

Create a task

task.create

What you see in n8n

Notes & use cases

The busiest operation of the node. It creates a task in a workspace and returns the task ID that the comment, tag and project operations then reuse.

Key parameters

  • Workspace Name or ID and Name: where the task goes, and what it is called.
  • Additional Fields: eight options, including Assignee Name or ID, Due On, Notes, Project Names or IDs and Completed. Filing the task at creation time saves a second call.
Use cases
an inbound support email becomes a task assigned to whoever is on duty, with the body of the message copied into Notes.
09

Delete a task

task.delete

What you see in n8n

Notes & use cases

Erases a task for good. There is no undo on the n8n side, so this one belongs behind a filter that has already confirmed the target.

Key parameters

  • Task ID: the ID of the task to delete, usually carried over from a search or a list operation rather than typed in by hand.
Use cases
a deduplication branch removes the second task when the same form is submitted twice within a few minutes, keeping the board honest without anyone reviewing it.
10

Get a task

task.get

What you see in n8n

Notes & use cases

Fetches a single task with its fields. Plenty of workflows call it right after the trigger, to turn a bare resource ID into something a human message can use.

Key parameters

  • Task ID: the ID of the task to get the data of, typically {{ $json.resource }} when the value comes from the trigger.
Use cases
the trigger signals that something moved, this operation re-reads the name and the assignee, and only then does the notification get written.
11

Get many tasks

task.getAll

What you see in n8n

Notes & use cases

No parameter is required here, and that is exactly the trap: with nothing set, the call reaches far wider than anyone intended.

Key parameters

  • Return All and Limit: every match, or a capped number.
  • Filters: eight of them, including Project Name or ID, Section Name or ID, Completed Since and Modified Since. Two are linked: Assignee Name or ID requires Workspace Name or ID, and the reverse is true as well.
Use cases
the Monday report pulls the tasks of one project modified since last week, through Modified Since.
12

Move a task

task.move

What you see in n8n

Notes & use cases

Sends a task into a section of a project. That is how a card changes column on a board without any of its other fields being rewritten.

Key parameters

  • Task ID, Project Name or ID and Section Name or ID: all three are required. The section list is drawn from the project you picked, so choose the project first.
Use cases
when a review is approved in another tool, the task slides from the in-progress section to the ready-to-publish one, and the board reflects reality without a manual drag.
14

Update a task

task.update

What you see in n8n

Notes & use cases

Edits a task in place. Only the ID is required, and everything you actually want to change sits in the optional collection.

Key parameters

  • Task ID: the task to update the data of.
  • Additional Fields: eight fields, including Completed, Name for the new name of the task, Due On, Assignee Name or ID, Notes and Project Names or IDs.
Use cases
setting Completed to true closes the tasks whose linked ticket was resolved elsewhere, so nobody keeps a board green by hand on Friday afternoon.

Task Comment

2 operations
15

Add a task comment

taskComment.add

What you see in n8n

Notes & use cases

Posts a comment on a task. It is the cheapest way to leave an audit trail where the work lives, rather than in a log nobody opens.

Key parameters

  • Task ID and Text: the task to comment on, and the plain text of the comment.
  • Is Text HTML: tells the node whether the body is HTML or simple text.
  • Additional Fields: Pinned keeps the comment at the top of the thread.
Use cases
every deployment writes a pinned comment naming the version that shipped, so the thread doubles as a history.
16

Remove a task comment

taskComment.remove

What you see in n8n

Notes & use cases

Deletes one comment from a thread. Watch the identifier it expects: the comment ID, not the task ID, so keep the value returned when the comment was added.

Key parameters

  • Comment ID: the ID of the comment to be removed. Storing it in the same run, or in a small table, is what makes the cleanup possible later.
Use cases
an automation clears its own status comments once the task is closed, so the thread keeps only what a person actually wrote.

Task Project

2 operations
17

Add a task project

taskProject.add

What you see in n8n

Notes & use cases

Files an existing task into a project without creating anything new. A task can belong to several projects at the same time in Asana, which is what makes this useful.

Key parameters

  • Task ID and Project Name or ID: the task to file, and where it goes.
  • Additional Fields: Insert After and Insert Before take a task in the project to position against, and Section drops the task at the bottom of a section.
Use cases
a triaged bug joins both the sprint project and the QA project in one run.
18

Remove a task project

taskProject.remove

What you see in n8n

Notes & use cases

Pulls a task out of a project while the task itself stays alive in the workspace. Nothing is deleted, only the link between the two.

Key parameters

  • Task ID and Project Name or ID: the task, and the project it should leave.
Use cases
when a feature is postponed, the workflow takes its tasks out of the release project and leaves them waiting, which keeps the release board readable without losing any of the work already described.

Task Tag

2 operations
19

Add a task tag

taskTag.add

What you see in n8n

Notes & use cases

Puts a tag on a task. In Asana, tags are how you filter across projects, which a project field alone cannot do.

Key parameters

  • Task ID: the task to add the tag to.
  • Tags Name or ID: the tag to apply, chosen from the list or given as an ID through an expression.
Use cases
any task created from a paying customer's request gets the priority tag on the spot, so a saved view of urgent work stays accurate without anybody maintaining it.
20

Remove a task tag

taskTag.remove

What you see in n8n

Notes & use cases

The mirror operation: it strips a tag off a task. Same two identifiers, opposite effect on the filtered views.

Key parameters

  • Task ID and Tags Name or ID: the task, and the tag that should come off.
Use cases
once an urgent request has shipped, a cleanup step removes the urgent tag. Without it, the urgent view fills up over a couple of months and people stop trusting it, which is the quiet way a tagging system dies.

User

2 operations
21

Get a user

user.get

What you see in n8n

Notes & use cases

Returns one Asana user. The identifier it accepts is unusually flexible, which saves a lookup in most workflows.

Key parameters

  • User ID: an email address, the globally unique identifier for the user, or the keyword me to mean the account behind the credential making the request.
Use cases
a form collects an email, this operation turns it into an Asana user, and the task is assigned to a real person instead of landing unassigned in a backlog nobody scans.
22

Get many users

user.getAll

What you see in n8n

Notes & use cases

Lists the members of a workspace with their names and IDs. That list is what lets a workflow assign work without any identifier written in hard.

Key parameters

  • Workspace Name or ID: required, the workspace to get users in.
Use cases
a round-robin router loads the workspace members every morning and spreads the day's new tasks across them, so a new hire starts receiving work the day the account is created.
Need help

Need help automating Asana with n8n?

A person reads every message.

FAQ

Asana and n8n, common questions

01Is the Asana n8n integration free?
Yes on the n8n side. The Asana node and the Asana Trigger ship with n8n, so there is nothing to install and nothing extra to pay, whether you run n8n Cloud or self-host with Docker or npm. A workflow behaves the same in both cases. What Asana itself costs is a separate question that depends on your Asana plan, and the node changes nothing about it. The credential is reusable too: create it once in the Credentials menu and every workflow that touches Asana picks it from a dropdown.
02What credentials do you need to connect Asana to n8n?
Two methods are supported, Access token and OAuth2. The access token is faster. Open the Asana developer console, go to Personal access tokens, select Create new token, give it a name like n8n integration, agree to the Asana API terms, then paste the value into the Access Token field of the n8n credential. OAuth2 takes more setup. If you self-host n8n, register an application in the developer console first, open the OAuth menu, add the OAuth Redirect URL that n8n displays, then copy the Client ID and the Client Secret into n8n.
03What are the limits of the Asana node in n8n?
Three are worth planning for. The node exposes 22 operations across 7 resources, so anything outside those has to go through the HTTP Request node, which calls any Asana API endpoint using the same credential. On the list operations, Return All left off stops the result at Limit, which produces an export that looks finished and is not. And some operations stopped working on January 17, 2023 when Asana changed its API: n8n 1.22.2 or later is required for them, which matters on an older self-hosted instance.
04Does the Asana Trigger react in real time?
Yes. It works by webhook, which is a URL that n8n registers with Asana when you activate the workflow. Asana then calls that URL itself, so an event on the watched resource reaches the workflow within seconds, with no polling and no interval to configure. The trigger asks for Resource, the ID of the task or project to subscribe to. Workspace Name or ID is optional and only required when you want to allow overriding existing webhooks. There is no event list to tick, so filter after the trigger.
05n8n or Make for Asana?
It depends on where the data should live and how you want to pay for it. n8n runs self-hosted through Docker or npm, or on n8n Cloud, and the same workflow behaves identically either way, which matters when task content has to stay on servers you control. Make is hosted only, with no self-hosting option, and bills per operation, which is easy to predict at small volumes and less so on a busy Asana workspace. Both are visual builders. Decide on hosting, data control and cost model rather than on the interface.