Asana
Description
Section titled “Description”Integration with Asana through its REST API 1.0. The family covers the task lifecycle: create a task in a project, read it, update any field, list everything in a project, comment, and delete.
Authentication is handled by the credentials module (provider asana), using a Bearer token — an Asana Personal Access Token (PAT).
Operations
Section titled “Operations”Nodes at a glance
Section titled “Nodes at a glance”| Node | Internal name | HTTP call |
|---|---|---|
| Asana: Create task | asanaCreateTask | POST /tasks |
| Asana: Get task | asanaGetTask | GET /tasks/{gid} |
| Asana: Update task | asanaUpdateTask | PUT /tasks/{gid} |
| Asana: List tasks | asanaListTasks | GET /tasks?project={gid} |
| Asana: Delete task | asanaDeleteTask | DELETE /tasks/{gid} |
| Asana: Add comment | asanaAddComment | POST /tasks/{gid}/stories |
Configuration
Section titled “Configuration”Every node in the family shares one parameter; the rest are documented on each operation page.
| Parameter | Type | Required | Description |
|---|---|---|---|
| credentials_id | credentials | Yes | Asana credential (provider asana) |
Credentials
Section titled “Credentials”Provider: asana. Create it in Credentials → Add → Asana.
| Field | Description |
|---|---|
access_token | Personal Access Token, created at app.asana.com/0/my-apps. Masked in logs. |
default_workspace_gid | Optional. Workspace gid used when a node does not specify one. |
timeout | Optional. Request timeout in milliseconds (default 20000). |
Authentication is Bearer (Authorization: Bearer <PAT>). The Test button calls GET /users/me and returns the name of the authenticated account.
Important: gid identifiers
Section titled “Important: gid identifiers”In Asana every object is identified by a gid — a string of digits, not a number. Tasks, projects, workspaces, users and comments all use one. Keep them as text in your workflow so no leading digits are lost.
You can read a project’s gid from its URL in Asana (app.asana.com/0/<project_gid>/…), or discover resources with the HTTP node.
Important: the data envelope
Section titled “Important: the data envelope”Asana wraps every request and response inside a { "data": … } envelope. The nodes handle that for you: they wrap what you send and unwrap what comes back, so what reaches the next node is the object itself — no extra data level to navigate.
Output
Section titled “Output”Each node returns the Asana payload in data, plus a _meta object with the module version and timing:
{ "data": { "gid": "1209876543210987", "resource_type": "task", "name": "Follow-up: ACME Inc.", "completed": false }, "_meta": { "moduleVersion": "1.0.0", "success": true, "gid": "1209876543210987", "totalMs": 305 }}On failure the node stops the branch and returns an error object instead:
{ "data": {}, "error": { "message": "project: Not a recognized ID", "type": "validation", "status": 400 }}API Used
Section titled “API Used”- Asana REST API 1.0 — https://developers.asana.com/reference/rest-api-reference
- Dynamic variables such as
{{data.customer}}are resolved in the text parameters:name,notes,project_gid,assignee,due_on,task_gidandtext. They are not resolved inside thefieldsJSON, inopt_fields, inlimitor inworkspace_gid. - Retries are automatic and capped at 3 attempts with exponential backoff for network errors, timeouts,
429(honouringRetry-After) and5xx. Validation,404and authentication errors are not retried. - The default request timeout is 20 seconds; raise it with the
timeoutfield in the credential. - The token is never written in full to the logs — only a masked form such as
1/12…9f0a.
See also
Section titled “See also”- Jira (Atlassian) — the equivalent family for tickets and issues.
- Dynamic variables — how
{{data.field}}is resolved. - Retry queue (DLQ) — how failed executions are retried.
- HTTP node — for Asana endpoints not covered by these nodes.