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
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.
How do you connect Asana to n8n?
- 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 asn8n 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. - 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.
- 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.
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 Trigger
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.
02New Asana event
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.
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.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.
| Resource | Create | Get | Get Many | Update | Delete | Add | Remove | Move | Search |
|---|---|---|---|---|---|---|---|---|---|
| Project | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
| Subtask | ✓ | ✓ | |||||||
| Task | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
| Task Comment | ✓ | ✓ | |||||||
| Task Project | ✓ | ✓ | |||||||
| Task Tag | ✓ | ✓ | |||||||
| User | ✓ | ✓ |
Operations index
Project
5 operationsCreate a project
project.createWhat 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 inYYYY-MM-DDformat, Notes and Color.
Delete a project
project.deleteWhat 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.
Get a project
project.getWhat 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.
Get many projects
project.getAllWhat 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.
Update a project
project.updateWhat 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.
Subtask
2 operationsCreate a subtask
subtask.createWhat 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.
Get many subtasks
subtask.getAllWhat 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.
Task
7 operationsCreate a task
task.createWhat 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.
Delete a task
task.deleteWhat 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.
Get a task
task.getWhat 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.
Get many tasks
task.getAllWhat 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.
Move a task
task.moveWhat 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.
Search a task
task.searchWhat you see in n8n
Notes & use cases
Looks for tasks inside one workspace using text. Different from the list operation: here Asana matches the words in the name or in the notes.
Key parameters
- Workspace Name or ID: required, the workspace the search runs in.
- Filters: Text is the string to look for in name or notes, and Completed keeps or excludes tasks already marked done.
Update a task
task.updateWhat 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.
Task Comment
2 operationsAdd a task comment
taskComment.addWhat 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.
Remove a task comment
taskComment.removeWhat 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.
Task Project
2 operationsAdd a task project
taskProject.addWhat 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.
Remove a task project
taskProject.removeWhat 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.
Task Tag
2 operationsAdd a task tag
taskTag.addWhat 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.
Remove a task tag
taskTag.removeWhat 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.
User
2 operationsGet a user
user.getWhat 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
meto mean the account behind the credential making the request.
Get many users
user.getAllWhat 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.
Need help automating Asana with n8n?
A person reads every message.

