Asana integration
In short
Read projects and create, update and comment on tasks. Connect it on the Integrations page; your app then calls Asana through Sapilon without ever holding an Asana credential.
Lets your app list workspaces and projects, read and create tasks, update them (assign, complete, reschedule) and add comments, as the person whose access token you use.
Connecting
On the Integrations page choose Connect on Asana and fill in:
- Personal access token — Asana → Settings → Apps → Developer apps → Create new token (app.asana.com/0/my-apps).
Sapilon checks the key with the provider before it saves it, and stores it encrypted; it is never shown again.
- The app acts as you: use a shared account for anything long-lived.
What your app can do
Only these requests are available; anything else is refused.
GET /users/meGET /workspacesGET /projectsGET /projects/*/tasksGET|POST /tasksGET|PUT /tasks/*GET|POST /tasks/*/stories
How the agent uses it
Use integrations.request('asana', …); paths are relative to https://app.asana.com/api/1.0. Bodies and answers are wrapped in data.
GET /users/me,GET /workspaces— who and where.GET /projects— Example:{ method: 'GET', path: '/projects', query: { workspace: '1201' } }.GET /projects/{gid}/tasks— Example:{ method: 'GET', path: '/projects/1202/tasks', query: { opt_fields: 'name,completed,assignee.name,due_on' } }.GET|POST /tasks— Example:{ method: 'POST', path: '/tasks', body: { data: { name: 'Call back', projects: ['1202'], due_on: '2026-10-20' } } }.GET|PUT /tasks/{gid}— Example:{ method: 'PUT', path: '/tasks/1203', body: { data: { completed: true } } }.GET|POST /tasks/{gid}/stories— comments. Example:{ method: 'POST', path: '/tasks/1203/stories', body: { data: { text: 'Done' } } }.
Deleting is not allowed.
More from Asana: https://developers.asana.com/reference/rest-api-reference