Asana
Create, find and update tasks and subtasks in Asana, comment on them, move them between projects and sections, tag them, attach files, and manage projects, sections, tags and users.
Connect Asana
- In the sidebar, open Connections and press Add connection.
- Type
asanaand choose Asana. - Press Sign in with Asana, then choose your account in Asana’s window and allow access.
Sign in with Asana, or paste a personal access token (Asana › My settings › Apps › Developer console › Create new token). A token acts as the person who made it, in the workspaces they belong to.
What if it says “Asana sign-in isn’t set up here”?
Signing in with Asana needs a Asana app on this installation, and it has none yet.
On Cloud: The sheet says “It’s set up once for everyone who uses this service, not by an organization.”
Self-hosted: An admin of the installation sees Set up Asana sign-in instead, and sets it up once for everyone. Everyone else sees who to ask.
- Create an app in Asana’s developer settings (Asana’s guide).
- In GoRunner, copy the Redirect address to add in Asana’s developer settings, and add it to the app.
- Paste the Client ID and Client secret, then press Save and sign in.
Can I use my own Asana app?
Yes. In the sheet, open Use your own Asana app and paste its Client ID and Client secret. Add the redirect address it shows to your app first. The connection then signs in through your app instead of the installation’s.
Connections says how to sign in again, rename or delete it. In a product that embeds GoRunner, Add connection can be missing: then your provider makes connections for you.
Start a workflow
Add a trigger and choose Asana. The trigger uses the same connection as the steps.
On Asana Event
Fires when Asana delivers events for the project, task, team or workspace below. Publishing the workflow registers an Asana webhook; unpublishing removes it. Every delivery is verified (X-Hook-Signature) and an unsigned or wrongly signed one is refused. Asana sends events in batches: the events of one delivery that match start one run, all of them under events, the first one's fields at the top. Asana's retry of a delivery starts no second run. Asana removes a webhook it could not deliver to for 24 hours; publish again to restore it.
- Watch · Required
What to watch. A team or workspace delivers only project, goal, portfolio and membership events (Asana's rule).
Options: A project (its tasks, subtasks, comments, sections), A task (it, its subtasks and comments), A team (its projects, goals, portfolios and members), A workspace (its projects, goals, portfolios and members).
Default: A project (its tasks, subtasks, comments, sections).
- Workspace · Optional
The workspace to watch, or the one to choose the project or team from.
- Project · Required
The project to watch.
Shows when Watch is A project (its tasks, subtasks, comments, sections).
- Task · Required
The task's id, or its link in Asana.
Shows when Watch is A task (it, its subtasks and comments).
- Team · Required
The team to watch.
Shows when Watch is A team (its projects, goals, portfolios and members).
- On Changes To · Optional
Which records' events start the workflow. Empty: every event of a project or task. A team or workspace takes Projects, Goals, Portfolios, Team members and Workspace members only, and needs at least one.
Options: Tasks and subtasks, Comments and activity, Sections, Attachments, Projects, Tags, Team members, Workspace members, Project members, Goals, Portfolios.
- Events · Optional
Which kinds of event start the workflow. Empty: all of them. Added and removed are a record put into or taken out of another (a task into a project or section).
Options: Added, Changed, Removed, Deleted, Restored.
- Changed Fields · Optional
Only changes to these fields count as Changed, comma-separated (Asana's field names). Empty: a change to any field.
Shows when Watch is A project (its tasks, subtasks, comments, sections) or A task (it, its subtasks and comments).
A later step can use its data, such as {{trigger.action}}, {{trigger.change}}, {{trigger.count}} and 5 more. See Use data from earlier steps.
Do things in Asana
Add an Asana step, choose a Resource, then an Operation. Choose a row to see its fields.
- TaskCreate · Get · Get Many · Update · Delete · Move to Section · Search
- SubtaskCreate · Get Many
- Task CommentAdd · Get Many · Remove
- Task TagAdd · Remove
- Task ProjectAdd · Remove
- ProjectCreate · Get · Get Many · Update · Delete
- SectionCreate · Get Many
- TagCreate · Get Many
- AttachmentUpload · Get · Get Many · Delete
- UserGet · Get Many
Later steps read a step’s output by its name: see Use data from earlier steps.
Limits
- A reply from Asana can be up to 16 MB (a file download can have its own limit). A larger one fails the step; it is never cut short.
- When Asana says to slow down (429), the step waits as long as it asks, if the step’s time allows. Otherwise it fails and says when to try again.
Not in your list? See When an app isn’t here.
For developers
In the API, which calls apps pieces, Asana is pieceId: "asana" with actionId: "asana", set by resource and an operation_… field, such as operation_attachment. Its trigger is asanatrigger / asana_event. Get an app returns every field.
It can change something outside the run (writes_external). See How versions and side effects work.
Asana › Task
Create
- Workspace · Optional
The workspace: where a new task goes (unless it goes into Projects), the workspace to search, or the one an Assignee filter looks in.
- Name · Required
The task's name.
- Projects · Optional
Projects to put the task in: ids or links, separated by commas. With projects, the Workspace may be left empty.
- Notes · Optional
The task's description, as plain text.
- Assignee · Optional
Who does it: "me", an email address, or a user id.
- Due On · Optional
The due date (YYYY-MM-DD). Set this or Due At, not both.
- Due At · Optional
The due date and time (ISO 8601 with a zone, such as 2026-11-07T17:00:00Z).
- Start On · Optional
The start date (YYYY-MM-DD). Asana needs a due date with it, later than the start.
- Custom Fields · Optional
Custom field values by custom field id, such as {"1201234567890555": "High", "1201234567890556": 3}. An enum takes the option's id.
- More Fields · Optional
Any other task property Asana takes, such as {"html_notes": "<body>…</body>", "resource_subtype": "milestone", "liked": true}.
- Tags · Optional
Tag ids to put on the task, separated by commas.
- Followers · Optional
Who follows the task: "me", email addresses or user ids, separated by commas.
Get
- Task · Required
The task's id, or its link in Asana.
- Fields · Optional
The properties to return, comma-separated (Asana's opt_fields), such as name,assignee.name,due_on,custom_fields. Empty returns the whole record.
Get Many
- Workspace · Optional
The workspace: where a new task goes (unless it goes into Projects), the workspace to search, or the one an Assignee filter looks in.
- Project · Optional
Tasks in this project.
- Section · Optional
Tasks in this section of the project.
- Assignee · Optional
Tasks assigned to "me", an email address or a user id, in the Workspace. Set a Project, a Section, or an Assignee with a Workspace.
- Completed Since · Optional
Keep incomplete tasks and those completed since this time (ISO 8601). "now" keeps incomplete tasks only.
- Modified Since · Optional
Only tasks changed since this time (ISO 8601).
- Return All · Optional
Read every task, page by page (at most 2000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many tasks to return (1–2000).
Default: 50.
Shows when Return All is off.
- Fields · Optional
The properties to return, comma-separated (Asana's opt_fields), such as name,assignee.name,due_on,custom_fields. Empty returns: name, resource_subtype, completed, completed_at, assignee.name, due_on, due_at, start_on, notes, permalink_url, created_at, modified_at, parent.name, projects.name, tags.name.
Update
- Task · Required
The task's id, or its link in Asana.
- Name · Optional
A new name. Empty keeps the name.
- Completed · Optional
Mark the task complete or incomplete.
Options: Leave as is, Mark complete, Mark incomplete.
Default: Leave as is.
- Notes · Optional
The task's description, as plain text.
- Assignee · Optional
Who does it: "me", an email address, or a user id.
- Due On · Optional
The due date (YYYY-MM-DD). Set this or Due At, not both.
- Due At · Optional
The due date and time (ISO 8601 with a zone, such as 2026-11-07T17:00:00Z).
- Start On · Optional
The start date (YYYY-MM-DD). Asana needs a due date with it, later than the start.
- Custom Fields · Optional
Custom field values by custom field id, such as {"1201234567890555": "High", "1201234567890556": 3}. An enum takes the option's id.
- More Fields · Optional
Any other task property Asana takes, such as {"html_notes": "<body>…</body>", "resource_subtype": "milestone", "liked": true}.
Delete
- Task · Required
The task's id, or its link in Asana.
Move to Section
- Task · Required
The task's id, or its link in Asana.
- Project · Optional
The project whose sections to choose from (it is not sent: the section belongs to it).
- Section · Required
The section to move the task to. It goes to the top of the section and leaves the project's other sections.
Search
- Workspace · Optional
The workspace: where a new task goes (unless it goes into Projects), the workspace to search, or the one an Assignee filter looks in.
- Search Text · Optional
Words in the task's name or description. Search needs a premium Asana workspace.
- Completed · Optional
Completed tasks, incomplete ones, or both.
Options: Either, Yes, No.
Default: Either.
- Assignee · Optional
Assigned to any of these: "me" or user ids, separated by commas.
- In Projects · Optional
In any of these projects: ids or links, separated by commas.
- In Sections · Optional
In any of these sections: ids, separated by commas.
- Tagged · Optional
With any of these tags: ids, separated by commas.
- Subtasks · Optional
Subtasks only, top-level tasks only, or both.
Options: Either, Yes, No.
Default: Either.
- Due After · Optional
Due after this date (YYYY-MM-DD).
- Due Before · Optional
Due before this date (YYYY-MM-DD).
- More Filters · Optional
Any other filter of Asana's task search, by its name, such as {"modified_at.after": "2026-11-01T00:00:00Z", "custom_fields.1201234567890555.value": "High"}.
- Sort By · Optional
The order of the results.
Options: Last modified, Created, Due date, Completed, Likes, Best match.
Default: Last modified.
- Oldest First · Optional
Ascending order. Off puts the newest (or highest) first.
Off by default.
- Limit · Optional
How many tasks to return (1–100). Asana's search returns at most 100 per search, with no next page: narrow the filters to find more.
Default: 50.
- Fields · Optional
The properties to return, comma-separated (Asana's opt_fields), such as name,assignee.name,due_on,custom_fields. Empty returns: name, resource_subtype, completed, completed_at, assignee.name, due_on, due_at, start_on, notes, permalink_url, created_at, modified_at, parent.name, projects.name, tags.name.
Asana › Subtask
Create
- Parent Task · Required
The task's id, or its link in Asana.
- Name · Required
The subtask's name.
- Notes · Optional
The task's description, as plain text.
- Assignee · Optional
Who does it: "me", an email address, or a user id.
- Due On · Optional
The due date (YYYY-MM-DD). Set this or Due At, not both.
- Due At · Optional
The due date and time (ISO 8601 with a zone, such as 2026-11-07T17:00:00Z).
- Start On · Optional
The start date (YYYY-MM-DD). Asana needs a due date with it, later than the start.
- Custom Fields · Optional
Custom field values by custom field id, such as {"1201234567890555": "High", "1201234567890556": 3}. An enum takes the option's id.
- More Fields · Optional
Any other task property Asana takes, such as {"html_notes": "<body>…</body>", "resource_subtype": "milestone", "liked": true}.
Get Many
- Parent Task · Required
The task's id, or its link in Asana.
- Return All · Optional
Read every subtask, page by page (at most 2000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many subtasks to return (1–2000).
Default: 50.
Shows when Return All is off.
- Fields · Optional
The properties to return, comma-separated (Asana's opt_fields), such as name,assignee.name,due_on,custom_fields. Empty returns: name, resource_subtype, completed, completed_at, assignee.name, due_on, due_at, start_on, notes, permalink_url, created_at, modified_at, parent.name, projects.name, tags.name.
Asana › Task Comment
Add
- Task · Required
The task's id, or its link in Asana.
- HTML · Optional
Write the comment in Asana's rich text HTML (<b>, <i>, <a href>, <ul>, @-mentions as <a data-asana-gid>) instead of plain text.
Off by default.
- Text · Required
The comment. As HTML, it is wrapped in <body> when it does not start with it.
- Pin · Optional
Pin the comment to the top of the task.
Off by default.
Get Many
- Task · Required
The task's id, or its link in Asana.
- Include Activity · Optional
Also return Asana's activity entries (assigned, moved, due date changed). Off returns comments only.
Off by default.
- Newest First · Optional
Newest first. Off lists them oldest first, as the task shows them.
Off by default.
- Return All · Optional
Read every comment, page by page (at most 2000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many comments to return (1–2000).
Default: 50.
Shows when Return All is off.
Remove
- Comment · Required
The comment's id (the gid of its story). Only its author can delete it.
Asana › Task Tag
Add and Remove
- Task · Required
The task's id, or its link in Asana.
- Workspace · Optional
The workspace whose tags to choose from (it is not sent).
- Tag · Required
The tag.
Asana › Task Project
Add
- Task · Required
The task's id, or its link in Asana.
- Workspace · Optional
The workspace whose projects to choose from (it is not sent).
- Project · Required
The project.
- Section · Optional
Put the task in this section of the project (at its end, unless a position is set).
- Insert After · Optional
Place the task right after this task of the project (its id). Set this or Insert Before, not both.
- Insert Before · Optional
Place the task right before this task of the project (its id).
Remove
- Task · Required
The task's id, or its link in Asana.
- Workspace · Optional
The workspace whose projects to choose from (it is not sent).
- Project · Required
The project.
Asana › Project
Create
- Workspace · Required
The workspace the project is in.
- Team · Optional
The team the project belongs to. Asana requires one in an organization (a company workspace); a personal workspace has no teams.
- Name · Required
The project's name.
- Notes · Optional
The project's description, as plain text.
- Color · Optional
The project's color. Empty leaves it as it is.
Options: Dark pink to No color (19 options).
- Due On · Optional
The due date (YYYY-MM-DD).
- Start On · Optional
The start date (YYYY-MM-DD). Asana needs a due date with it.
- Privacy · Optional
Who can find the project. Empty leaves Asana's default (or the current setting).
Options: Everyone in the workspace, Only members.
- Default View · Optional
The view the project opens in.
Options: List, Board, Calendar, Timeline.
- Owner · Optional
The project's owner: "me", an email address or a user id.
- More Fields · Optional
Any other project property Asana takes, such as {"html_notes": "<body>…</body>", "custom_fields": {"1201234567890555": "High"}}.
Get
- Workspace · Optional
The workspace whose projects to choose from (it is not sent).
- Project · Required
The project.
- Fields · Optional
The properties to return, comma-separated (Asana's opt_fields), such as name,assignee.name,due_on,custom_fields. Empty returns the whole record.
Get Many
- Workspace · Required
The workspace the project is in.
- Archived · Optional
Which projects to list.
Options: Active projects, Archived projects, Both.
Default: Active projects.
- Return All · Optional
Read every project, page by page (at most 2000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many projects to return (1–2000).
Default: 50.
Shows when Return All is off.
- Fields · Optional
The properties to return, comma-separated (Asana's opt_fields), such as name,assignee.name,due_on,custom_fields. Empty returns: name, archived, color, notes, owner.name, team.name, workspace.name, due_on, start_on, privacy_setting, permalink_url, created_at, modified_at.
Update
- Workspace · Optional
The workspace whose projects to choose from (it is not sent).
- Project · Required
The project.
- Name · Optional
A new name. Empty keeps the name.
- Notes · Optional
The project's description, as plain text.
- Color · Optional
The project's color. Empty leaves it as it is.
Options: Dark pink to No color (19 options).
- Due On · Optional
The due date (YYYY-MM-DD).
- Start On · Optional
The start date (YYYY-MM-DD). Asana needs a due date with it.
- Privacy · Optional
Who can find the project. Empty leaves Asana's default (or the current setting).
Options: Everyone in the workspace, Only members.
- Default View · Optional
The view the project opens in.
Options: List, Board, Calendar, Timeline.
- Owner · Optional
The project's owner: "me", an email address or a user id.
- Archived · Optional
Archive the project, or bring it back.
Options: Leave as is, Archive, Restore from archive.
Default: Leave as is.
- More Fields · Optional
Any other project property Asana takes, such as {"html_notes": "<body>…</body>", "custom_fields": {"1201234567890555": "High"}}.
Delete
- Workspace · Optional
The workspace whose projects to choose from (it is not sent).
- Project · Required
The project.
Asana › Section
Create
- Workspace · Optional
The workspace whose projects to choose from (it is not sent).
- Project · Required
The project.
- Name · Required
The new section's name. It is added at the end of the project.
Get Many
- Workspace · Optional
The workspace whose projects to choose from (it is not sent).
- Project · Required
The project.
- Return All · Optional
Read every section, page by page (at most 2000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many sections to return (1–2000).
Default: 100.
Shows when Return All is off.
Asana › Tag
Create
- Workspace · Required
The workspace.
- Name · Required
The tag's name.
- Color · Optional
The tag's color.
Options: Dark pink to No color (19 options).
Get Many
- Workspace · Required
The workspace.
- Return All · Optional
Read every tag, page by page (at most 2000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many tags to return (1–2000).
Default: 50.
Shows when Return All is off.
Asana › Attachment
Upload
- Task · Required
The task's id, or its link in Asana.
- Attach · Optional
Upload a file (up to 100 MB, Asana's limit), or attach a link to something elsewhere.
Options: A file, A link.
Default: A file.
- File · Required
Upload a file, or switch to an expression to use one from an earlier step (such as {{steps.download.result}}). Up to 100 MB.
Shows when Attach is A file.
- URL · Required
The address to attach (https://…).
Shows when Attach is A link.
- Name · Optional
The attachment's name in Asana. Empty uses the file's name (for a link, its address).
Get and Delete
- Attachment · Required
The attachment's id.
Get Many
- Task · Required
The task's id, or its link in Asana.
- Return All · Optional
Read every attachment, page by page (at most 2000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many attachments to return (1–2000).
Default: 50.
Shows when Return All is off.
Asana › User
Get
- User · Required
"me" (the connected user), an email address, or a user id.
Get Many
- Workspace · Required
The workspace whose people to list.
- Return All · Optional
Read every user, page by page (at most 2000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many users to return (1–2000).
Default: 50.
Shows when Return All is off.