A project room has tasks of its own, and your team has Asana. This keeps the two the same, without anybody copying anything: the room's tasks go to one Asana project, and what changes in Asana comes back to the room.
Connect Asana
On the rooms page, signed in, under the room's task tools: paste a personal access token from Asana. That is the only place a token goes. The connection then belongs to your organization, and both the room and the API work through it.
Point the room at a project
Pick the project in the room's task tools, or list what the connection reaches and choose from the API's answer:
curl "https://makehybrid.com/asana/v1/connections" \ -H "X-API-KEY: $MAKEHYBRID_KEY" curl "https://makehybrid.com/asana/v1/connections/$CONNECTION_ID/projects" \ -H "X-API-KEY: $MAKEHYBRID_KEY"
Read and write the same tasks from your own code
With no since, the tasks that are not done. With since — a time in milliseconds — the ones Asana changed after it, oldest first, which is how to follow a project without reading it whole each time.
curl "https://makehybrid.com/asana/v1/connections/$CONNECTION_ID/projects/$PROJECT_ID/tasks?since=1761480000000" \
-H "X-API-KEY: $MAKEHYBRID_KEY"
curl -X POST https://makehybrid.com/asana/v1/connections/$CONNECTION_ID/projects/$PROJECT_ID/tasks \
-H "X-API-KEY: $MAKEHYBRID_KEY" -H "Content-Type: application/json" \
-d '{"title":"Write the brief","status":"open","due":"2026-11-02"}'
A patch changes only what it names. Send {"status":"done"} and the title, the notes, the assignee and the date stay as they are — the task is read first and your fields written over it.
Or ask an agent
The same seven calls are tools at https://makehybrid.com/asana/mcp/<your API key>, and a room's own AI agent can use them with the API's agent ticked under Can use. In a room, where the agent is called @scout:
- @scout list what is still open in our Asana launch project, and add a task for the pricing page.
Questions people ask
Which project does a room's task go to?
The one the room is linked to. One room, one project at a time; link a second room to a second project if you need both.
What if the token stops working?
The API answers 409 errors/disconnected and the room's sync stops rather than guessing. A member connects Asana again on the rooms page and both resume.
Does this work the same for ClickUp, HubSpot and Jira?
Yes, call for call. Only the word changes: ClickUp calls a project a list and HubSpot calls it a pipeline, and both are project_id here.