ClawLink

How to connect Asana to OpenClaw

Connect Asana to OpenClaw with ClawLink in one click — 153 tools your AI agent can call from chat via hosted OAuth. No API keys, no manual setup.

Get started for free
OpenClaw
OpenClaw
ClawLink
ClawLink
Asana
Asana
AsanaOAUTH2MCP

Track tasks, projects, and workflows. Once connected, OpenClaw can read and act on Asana from chat — pairing, token refresh, and tool wiring handled for you.

153 tools

The usual route to Asana access for OpenClaw is an MCP server you configure and keep running, plus your own OAuth app or API keys. ClawLink gives OpenClaw a more practical Asana setup: install one ClawHub skill, connect Asana in the browser, and OpenClaw can call real Asana actions from any chat surface with no auth, token refresh, or tool wiring to build yourself.

Copy this prompt into OpenClaw, or open the Asana skill on ClawHub.

Prompt for OpenClaw
Before installing anything, inspect the ClawHub skill metadata and setup requirements.
If the skill asks you to install a third-party package or CLI, verify its source, maintainer, and package contents before running the install command.
Install the skill "Asana" (hith3sh/asana-workspace) from ClawHub only after those checks pass.
Skill page: https://clawhub.ai/hith3sh/asana-workspace
Keep the work scoped to this skill only.
After install, help me finish setup from verified skill metadata.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Setup

It takes three steps to connect OpenClaw to Asana.

  1. 1

    Install the plugin

    Paste the setup prompt into OpenClaw, or install from the terminal and ask OpenClaw to pair:

    openclaw plugins install clawhub:clawlink-plugin
  2. 2

    Connect Asana

    One-click OAuth in the dashboard.

  3. 3

    Use it from chat

    Ask OpenClaw: "What can you do with Asana?"

Install by command

The setup prompt above does all of this in one paste. By hand, it is one install command plus a browser approval:

openclaw plugins install clawhub:clawlink-plugin

Then ask OpenClaw to set up ClawLink. It starts browser pairing and prints an approval link — open it, approve the device, return to the chat, and say done. Finally, connect Asana in the ClawLink dashboard — a one-click OAuth approval, no API keys.

Verify the connection by asking OpenClaw:

Run asana_get_current_user to find my workspaces, then use asana_get_multiple_tasks with me as assignee in <workspace>. Show me everything incomplete, grouped by project, with due dates.

Using a different agent?

The OpenClaw plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:

npx -y @useclawlink/cli login

login opens the same browser approval and stores a credential locally. Once Asana is connected in the dashboard, that agent calls the same 153 Asana tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.

Asana MCP for OpenClaw

Looking for a Asana MCP server for OpenClaw? ClawLink connects Asana to OpenClaw and exposes 153 Asana tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using Hermes instead? The Hermes Asana integration works the same way.

Search results currently give this question two answers, and both hand you a token. One installs a community skill that wants an Asana personal access token pasted into your config; the other has you mint the same token and call the API yourself. ClawLink takes the third path: you approve Asana in the browser through its OAuth flow, the credential stays on the ClawLink server, and OpenClaw can call the 153 Asana tools below. There is no developer console trip, nothing in openclaw.json, and revoking access is a click rather than a token you have to remember exists.

What the OpenClaw Asana integration can do

153 Asana tools are ready for OpenClaw once the account is connected. The 30 below are the ones people reach for most; your agent can call all 153.

30 of 153 Asana tools for OpenClaw

ToolWhat it does
Add followers to project asana_add_followers_to_projectAdd followers to an Asana project
Add followers to task asana_add_followers_to_taskAdd followers to an Asana task
Add members to project asana_add_members_to_projectAdd users to an Asana project
Add tag to task asana_add_tag_to_taskAdd an existing tag to an Asana task
Add task dependencies asana_add_task_dependenciesAdd dependency relationships to an Asana task
Add user to team asana_add_user_to_teamAdd a user to a team in Asana
Add user to workspace asana_add_user_to_workspaceAdd a user to an Asana workspace
Approve access request asana_approve_access_requestApprove an access request in Asana
Get a project asana_get_a_projectRetrieves a specific Asana project by its project_gid, with an option to include additional
Get a task asana_get_a_taskRetrieves full details for a specified task GID accessible by the user; use opt_fields to
Get a user task list asana_get_a_user_task_listRetrieves a specific user's task list from Asana by its user_task_list_gid, optionally
Get access requests asana_get_access_requestsRetrieve access requests for a target object
Get allocation asana_get_allocationGet an allocation by ID
Get allocations asana_get_allocationsGet multiple allocations
Get attachment asana_get_attachmentGet a single attachment by its globally unique identifier
Get audit log events asana_get_audit_log_eventsGet audit log events for a workspace
Get current user asana_get_current_userRetrieves the authenticated user's full record, including accessible workspaces, often used as
Get custom field asana_get_custom_fieldGet a single custom field by its globally unique identifier
Get custom fields for workspace asana_get_custom_fields_for_workspaceGet all custom fields in a workspace
Get custom types asana_get_custom_typesGet all custom types associated with a project
Get events asana_get_eventsRetrieve events on a resource to monitor changes
Get favorites for user asana_get_favorites_for_userGet a user's favorites within a specified workspace
Get goal asana_get_goalRetrieve the full record for a single goal by its GID
Get goal relationships asana_get_goal_relationshipsRetrieve goal relationships
Get goals asana_get_goalsRetrieve multiple goals
Get job asana_get_jobRetrieve a job by its globally unique identifier
Get membership asana_get_membershipRetrieve a single membership by its ID
Get memberships asana_get_membershipsRetrieve memberships for goals, projects, portfolios, or custom fields
Get multiple projects asana_get_multiple_projectsReturns a list of projects filtered by workspace or team (one required), with optional archived
Get multiple tasks asana_get_multiple_tasksRetrieves a list of tasks, allowing filtering by assignee (requires workspace), project

Try it: find the Asana tool you need

Browse the 30 Asana tools

Click any tool to see exactly what OpenClaw can do and copy a ready-to-use prompt.

Example prompts

Run asana_get_current_user to find my workspaces, then use asana_get_multiple_tasks with me as assignee in <workspace>. Show me everything incomplete, grouped by project, with due dates.

Call asana_get_multiple_projects to get the real gid for "<project>", then create a task with asana_create_a_task titled "<title>", notes from the discussion above, and due <date>. Give me the new task gid.

Find the task "<title>" with asana_get_multiple_tasks, then update it with asana_update_a_task to set the assignee to <person> and the due date to <date>. Use the gid from the search, not a guessed one, and quote what changed.

Use asana_get_memberships for the project "<project>" and tell me who is already on it. Only if <person> is missing, add them with asana_add_members_to_project.

How the Asana tools take their arguments

Details from the manifest that decide whether an Asana prompt works first time.

  • Asana ids are global unique ids (gids), not numbers. Every tool addressing a task, project, workspace, or user takes a gid, and an example gid from documentation fails exactly like a typo would.
  • The task-list filters are coupled. asana_get_multiple_tasks accepts an assignee filter only together with a workspace, and vice versa. Passing one alone is a documented schema requirement, not a quirk.
  • Task creation needs an anchor. asana_create_a_task requires a workspace, a parent, or projects to attach to, and followers, projects, and tags are set at creation rather than added later.
  • opt_fields is how you ask for more. Reads return core fields by default; if something you expected is missing from a result, the call needs opt_fields rather than a different tool.
  • asana_get_current_user is the first diagnostic. It reports the connected account and its workspaces, which resolves most "nothing found" and "403" confusion before you change anything.

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want Asana working from chat.

ManualClawLink
Connection flowRegister a Asana app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift.Users connect Asana through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code.
Ongoing maintenanceYou own refresh logic, permission debugging, environment config, and every provider-specific edge case for Asana.ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure.
Agent usabilityYou still need to expose the right Asana actions to the runtime in a format your agent can reliably use.153 tools for Asana are already exposed through ClawLink, so the agent can read and act from chat immediately.

Composio also exposes Asana to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for OpenClaw users instead. You install the plugin once, connect Asana in the browser, and the 153 tools above work from chat. There is no SDK, no config file, and no API key handling. Choosing between them? Read the full Composio alternatives comparison.

Troubleshooting

OpenClaw installed the Asana skill but can't call the tools

The ClawHub skill teaches OpenClaw about Asana, but the calls run through the ClawLink plugin and your connected account. Make sure Asana is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.

Connection succeeds but no tools appear

Reconnect Asana from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.

"Tool schema not loaded yet" error when calling Asana tools

Asana tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every Asana call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.

Asana returns 403 or "permission denied" on one action while others work

Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.

Asana returns 403 "Forbidden" or "You do not have access to this resource"

Asana's permission model is per-project and per-role, so work through the causes in this order. First, membership: the connected account may simply not be a member of that project or team, which is the most common cause and is fixed in Asana rather than in ClawLink. Second, role: Asana distinguishes Admin, Editor, and Commenter, and actions like adding members or changing project fields need at least Editor on that project. Third, organization: an account in several organizations sees a different resource set in each, so a gid from one org is invisible from another. Fourth, archived resources, which respond to reads but reject writes. Last, and invisible to every search engine but real here: the agent may have passed a placeholder gid from documentation. Asana gids are global unique ids and cannot be guessed, so have the agent list first and retry with a real one.

Ask the agent to diagnose it:

Call asana_get_current_user, then asana_get_multiple_projects, and tell me which workspaces and projects this connection can actually see. Do not retry the failed call yet.
Asana task search returns nothing but the task exists

Nearly always the workspace, not the search. asana_get_multiple_tasks filters by workspace, and its assignee and workspace filters are coupled — Asana requires them together, so passing one without the other is a schema error rather than an empty result. The second cause is scope of the query itself: a task in a project the connected account cannot see does not appear, exactly as it would not in the Asana web app for that user. Ask the agent to name the workspace explicitly and to confirm which projects it can enumerate before concluding that anything is missing.

Ask the agent to diagnose it:

List the workspaces from asana_get_current_user, then run asana_get_multiple_tasks against each one with the assignee set to me, and show me what comes back per workspace.
An Asana tool returns "tool not found" or the agent invents an asana_asana_ name

Tool schemas load on demand, so the first Asana call in a fresh session can arrive before the catalog is ready — retry once and it normally clears. If the same name fails twice the name is wrong rather than missing, and the error lists the closest real tools. The names already include the integration prefix, so they are asana_get_a_task and asana_get_multiple_projects, and an agent adding another produces something that never existed. Note that if you are running Asana's own MCP server rather than this integration, a genuine tool-not-found there usually means the client is still pointed at the retired V1 endpoint and needs to be moved to the v2 one and re-authenticated.

Ask the agent to diagnose it:

List the Asana tools you actually have access to, then tell me which one fetches a single task by gid and use that exact name.
OAuth finished in the browser but the account is still missing

Try reconnecting Asana and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.

FAQ

Is there a OpenClaw Asana integration?

Yes. ClawLink is the fastest way to connect OpenClaw to Asana: link your Asana account once in the browser and OpenClaw can call the Asana API through 153 ready-made tools — no custom code or token handling.

How do I add Asana to OpenClaw with ClawLink?

Paste the setup prompt from this page into OpenClaw. It installs the ClawLink Asana skill from ClawHub, then you click Connect in the dashboard to authorize Asana. OpenClaw calls the tools from the next message — no config files or API keys to manage.

How long does it take to connect Asana to OpenClaw?

About two minutes. Sign in, click Connect next to Asana in the dashboard, authenticate, and OpenClaw can use it from the next chat message.

Why use ClawLink instead of wiring Asana up myself?

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want Asana working from chat.

Do I need an Asana personal access token?

No, and this is the main difference from what most guides recommend. The connection uses Asana's OAuth consent flow: you sign in once, approve access, and the token lives on the ClawLink server rather than in a file on your machine. The community route you will see suggested — install a PAT-based skill, generate a token in Asana's developer console, paste it in — works, but it puts a long-lived credential carrying your full account access into a config file that tends to get copied between machines and committed by accident. An OAuth grant can be revoked from the dashboard and stops working immediately.

What can the agent actually do in Asana?

The toolset is broad rather than a task-and-comment subset: tasks and subtasks, projects and sections, portfolios, goals and goal relationships, teams and workspaces, custom fields, tags, attachments, time tracking, allocations, memberships, and audit log events. That breadth is the practical argument for this route — several of the official and community options cover the common half of Asana and stop, so a workflow that touches goals, portfolios, or custom fields runs out of tools. Whatever you use, the agent still acts with your account's permissions.

Is it safe to connect Asana to an AI agent?

The connection uses Asana's own OAuth consent screen, so you approve access there, the agent never sees your password, and you can disconnect from the ClawLink dashboard at any time, after which Asana rejects further calls. The comparison worth making is against the alternative these search results recommend: a personal access token carries your account's access, sits in a file, and keeps working until somebody remembers to revoke it. The boundary in both cases is the same one — the agent can do what your Asana account can do — so connect with the account whose access you actually intend it to have.

Can it work across several Asana workspaces or organizations?

Yes, if your account belongs to them. Asana scopes almost everything by workspace, and that is the usual source of confusing empty results: a task search that returns nothing is often looking in the wrong workspace rather than finding nothing. Ask the agent to run asana_get_current_user first, which reports the workspaces the connection can see, and to name the workspace explicitly in the calls that follow.

OpenClaw installed the Asana skill but can't call the tools

The ClawHub skill teaches OpenClaw about Asana, but the calls run through the ClawLink plugin and your connected account. Make sure Asana is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.