Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Asana connector

OAuth 2.0Project ManagementCollaborationProductivity

Connect to Asana. Manage tasks, projects, teams, and workflow automation

Asana connector

  1. Terminal window
    npm install @scalekit-sdk/node

    Full SDK reference: Node.js | Python

  2. Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Register your Asana credentials with Scalekit so it handles the token lifecycle. You do this once per environment.

    Dashboard setup steps

    Register your Scalekit environment with the Asana connector so Scalekit handles the authentication flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically. Then complete the configuration in your application as follows:

    1. Set up auth redirects

      • In Scalekit dashboard, go to AgentKit > Connections > Create Connection. Find Asana and click Create. Copy the redirect URI. It looks like https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback.

        Copy redirect URI from Scalekit dashboard

      • Go to Asana Developer Console and click Create new app. Enter an app name.

      • In the left menu, go to OAuth. Under Redirect URLs, click Add redirect URL, paste the redirect URI from Scalekit, and click Add.

        Add redirect URL in Asana Developer Console

    2. Enable multi-workspace install Optional

      Enable this if you want users outside your Asana workspace to install the app.

      • In your app settings, go to OAuthApp permissions.

      • Under App install permissions, enable Allow users outside your workspace to install this app.

        Enable multi-workspace install in Asana

    3. Get client credentials

    4. Add credentials in Scalekit

      • In Scalekit dashboard, go to AgentKit > Connections and open the connection you created.

      • Enter your credentials:

        Add credentials in Scalekit dashboard

      • Click Save.

  4. quickstart.ts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENV_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'asana'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Asana:', link)
    process.stdout.write('Press Enter after authorizing...')
    await new Promise(r => process.stdin.once('data', r))
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'asana_me_get',
    toolInput: {},
    })
    console.log(result)

Connect this agent connector to let your agent:

  • List workspaces, workspace teams, webhooks — List all workspaces the authenticated user has access to
  • Get workspace, user, team — Get details of a specific workspace by its GID
  • User team remove, team add — Remove a user from a team
  • Update task, tag, section — Update an existing task’s properties
  • Parent task set — Set or change the parent task of a task
  • Tag task remove, task add — Remove a tag from a task
Proxy API call
const result = await actions.request({
connectionName: 'asana',
identifier: 'user_123',
path: '/api/1.0/users/me',
method: 'GET',
});
console.log(result);

Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.

asana_attachment_delete#Delete an attachment permanently.1 param

Delete an attachment permanently.

NameTypeRequiredDescription
attachment_gidstringrequiredGID of the attachment to delete
asana_attachment_get#Get details of a specific attachment by its GID.2 params

Get details of a specific attachment by its GID.

NameTypeRequiredDescription
attachment_gidstringrequiredGID of the attachment to retrieve
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_me_get#Get the profile of the authenticated user.1 param

Get the profile of the authenticated user.

NameTypeRequiredDescription
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_project_create#Create a new project in a workspace.10 params

Create a new project in a workspace.

NameTypeRequiredDescription
namestringrequiredName of the project
workspacestringrequiredGID of the workspace to create the project in
colorstringoptionalColor of the project
default_viewstringoptionalDefault view for the project
due_onstringoptionalDue date for the project (YYYY-MM-DD)
notesstringoptionalFree-form text description for the project
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
privacy_settingstringoptionalPrivacy setting for the project
start_onstringoptionalStart date for the project (YYYY-MM-DD)
teamstringoptionalGID of the team to share the project with
asana_project_delete#Delete a project permanently.1 param

Delete a project permanently.

NameTypeRequiredDescription
project_gidstringrequiredGID of the project to delete
asana_project_duplicate#Create a duplicate of an existing project.4 params

Create a duplicate of an existing project.

NameTypeRequiredDescription
namestringrequiredName for the duplicated project
project_gidstringrequiredGID of the project to duplicate
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
teamstringoptionalGID of the team for the duplicated project
asana_project_get#Get details of a specific project by its GID.2 params

Get details of a specific project by its GID.

NameTypeRequiredDescription
project_gidstringrequiredGID of the project to retrieve
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_project_tasks_list#List all tasks in a specific project.2 params

List all tasks in a specific project.

NameTypeRequiredDescription
project_gidstringrequiredGID of the project to list tasks from
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_project_update#Update an existing project's properties.10 params

Update an existing project's properties.

NameTypeRequiredDescription
project_gidstringrequiredGID of the project to update
archivedbooleanoptionalWhether the project is archived
colorstringoptionalColor of the project
default_viewstringoptionalDefault view for the project
due_onstringoptionalDue date for the project (YYYY-MM-DD)
namestringoptionalNew name for the project
notesstringoptionalFree-form text description for the project
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
privacy_settingstringoptionalPrivacy setting for the project
start_onstringoptionalStart date for the project (YYYY-MM-DD)
asana_projects_list#List projects in a workspace or team.3 params

List projects in a workspace or team.

NameTypeRequiredDescription
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
teamstringoptionalGID of a team to filter projects by
workspacestringoptionalGID of the workspace to list projects from
asana_section_add_task#Move a task into a specific section within a project.4 params

Move a task into a specific section within a project.

NameTypeRequiredDescription
section_gidstringrequiredGID of the section to add the task to
taskstringrequiredGID of the task to move into this section
insert_afterstringoptionalInsert the task after this task GID within the section
insert_beforestringoptionalInsert the task before this task GID within the section
asana_section_create#Create a new section in a project.3 params

Create a new section in a project.

NameTypeRequiredDescription
namestringrequiredName of the section
project_gidstringrequiredGID of the project to create a section in
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_section_delete#Delete a section from a project.1 param

Delete a section from a project.

NameTypeRequiredDescription
section_gidstringrequiredGID of the section to delete
asana_section_get#Get details of a specific section by its GID.2 params

Get details of a specific section by its GID.

NameTypeRequiredDescription
section_gidstringrequiredGID of the section to retrieve
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_section_update#Update the name of a section.3 params

Update the name of a section.

NameTypeRequiredDescription
namestringrequiredNew name for the section
section_gidstringrequiredGID of the section to update
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_sections_list#List all sections in a project.2 params

List all sections in a project.

NameTypeRequiredDescription
project_gidstringrequiredGID of the project to list sections from
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_story_create#Add a comment or story to a task.3 params

Add a comment or story to a task.

NameTypeRequiredDescription
task_gidstringrequiredGID of the task to add the comment to
textstringrequiredText of the comment to add to the task
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_story_get#Get details of a specific story by its GID.2 params

Get details of a specific story by its GID.

NameTypeRequiredDescription
story_gidstringrequiredGID of the story to retrieve
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_subtask_create#Create a subtask under an existing task.6 params

Create a subtask under an existing task.

NameTypeRequiredDescription
namestringrequiredName of the subtask
task_gidstringrequiredGID of the parent task
assigneestringoptionalGID of the user to assign, or 'me'
due_onstringoptionalDue date for the subtask (YYYY-MM-DD)
notesstringoptionalFree-form description for the subtask
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_tag_create#Create a new tag in a workspace.4 params

Create a new tag in a workspace.

NameTypeRequiredDescription
namestringrequiredName of the tag
workspacestringrequiredGID of the workspace to create the tag in
colorstringoptionalColor for the tag
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_tag_delete#Delete a tag permanently.1 param

Delete a tag permanently.

NameTypeRequiredDescription
tag_gidstringrequiredGID of the tag to delete
asana_tag_get#Get details of a specific tag by its GID.2 params

Get details of a specific tag by its GID.

NameTypeRequiredDescription
tag_gidstringrequiredGID of the tag to retrieve
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_tag_update#Update a tag's name or color.4 params

Update a tag's name or color.

NameTypeRequiredDescription
tag_gidstringrequiredGID of the tag to update
colorstringoptionalNew color for the tag
namestringoptionalNew name for the tag
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_tags_list#List tags in a workspace.2 params

List tags in a workspace.

NameTypeRequiredDescription
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
workspacestringoptionalGID of the workspace to list tags from
asana_task_add_followers#Add followers to a task.3 params

Add followers to a task.

NameTypeRequiredDescription
followersstringrequiredComma-separated GIDs of users to add as followers
task_gidstringrequiredGID of the task
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_task_add_project#Add a task to a project.5 params

Add a task to a project.

NameTypeRequiredDescription
projectstringrequiredGID of the project to add the task to
task_gidstringrequiredGID of the task to add to a project
insert_afterstringoptionalInsert the task after this task in the project
insert_beforestringoptionalInsert the task before this task in the project
sectionstringoptionalGID of a section in the project to place the task
asana_task_add_tag#Add a tag to a task.2 params

Add a tag to a task.

NameTypeRequiredDescription
tagstringrequiredGID of the tag to add to the task
task_gidstringrequiredGID of the task
asana_task_create#Create a new task in Asana.9 params

Create a new task in Asana.

NameTypeRequiredDescription
namestringrequiredName of the task
assigneestringoptionalGID of the user to assign, or 'me'
due_onstringoptionalDue date for the task (YYYY-MM-DD)
followersstringoptionalComma-separated GIDs of users to follow the task
notesstringoptionalFree-form text description of the task
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
projectsstringoptionalComma-separated GIDs of projects to add the task to
start_onstringoptionalStart date for the task (YYYY-MM-DD)
workspacestringoptionalGID of the workspace to create the task in (required if no project)
asana_task_delete#Delete a task permanently.1 param

Delete a task permanently.

NameTypeRequiredDescription
task_gidstringrequiredGID of the task to delete
asana_task_duplicate#Create a duplicate of an existing task.4 params

Create a duplicate of an existing task.

NameTypeRequiredDescription
namestringrequiredName for the duplicated task
task_gidstringrequiredGID of the task to duplicate
includestringoptionalComma-separated list of fields to copy (assignee, attachments, dates, dependencies, notes, projects, subtasks, tags)
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_task_get#Get details of a specific task by its GID.2 params

Get details of a specific task by its GID.

NameTypeRequiredDescription
task_gidstringrequiredGID of the task to retrieve
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_task_remove_followers#Remove followers from a task.3 params

Remove followers from a task.

NameTypeRequiredDescription
followersstringrequiredComma-separated GIDs of users to remove as followers
task_gidstringrequiredGID of the task
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_task_remove_project#Remove a task from a project.2 params

Remove a task from a project.

NameTypeRequiredDescription
projectstringrequiredGID of the project to remove the task from
task_gidstringrequiredGID of the task to remove from a project
asana_task_remove_tag#Remove a tag from a task.2 params

Remove a tag from a task.

NameTypeRequiredDescription
tagstringrequiredGID of the tag to remove from the task
task_gidstringrequiredGID of the task
asana_task_set_parent#Set or change the parent task of a task.5 params

Set or change the parent task of a task.

NameTypeRequiredDescription
parentstringrequiredGID of the new parent task. Use null to make it a top-level task.
task_gidstringrequiredGID of the task to set parent for
insert_afterstringoptionalA subtask GID to insert this task after in the parent
insert_beforestringoptionalA subtask GID to insert this task before in the parent
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_task_stories_list#List stories (comments and activity) on a task.2 params

List stories (comments and activity) on a task.

NameTypeRequiredDescription
task_gidstringrequiredGID of the task to list stories from
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_task_subtasks_list#List all subtasks of a task.2 params

List all subtasks of a task.

NameTypeRequiredDescription
task_gidstringrequiredGID of the parent task
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_task_update#Update an existing task's properties.8 params

Update an existing task's properties.

NameTypeRequiredDescription
task_gidstringrequiredGID of the task to update
assigneestringoptionalGID of the user to assign, or 'me', or null to unassign
completedbooleanoptionalMark the task as complete or incomplete
due_onstringoptionalDue date for the task (YYYY-MM-DD)
namestringoptionalNew name for the task
notesstringoptionalUpdated description for the task
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
start_onstringoptionalStart date for the task (YYYY-MM-DD)
asana_tasks_list#List tasks filtered by project, section, assignee, or workspace.6 params

List tasks filtered by project, section, assignee, or workspace.

NameTypeRequiredDescription
assigneestringoptionalGID or 'me' to filter tasks by assignee
completed_sincestringoptionalOnly return tasks completed after this date-time (ISO 8601)
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
projectstringoptionalGID of a project to filter tasks by
sectionstringoptionalGID of a section to filter tasks by
workspacestringoptionalGID of the workspace (required if assignee is set without project)
asana_team_add_user#Add a user to a team.3 params

Add a user to a team.

NameTypeRequiredDescription
team_gidstringrequiredGID of the team
userstringrequiredGID of the user to add to the team
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_team_get#Get details of a specific team by its GID.2 params

Get details of a specific team by its GID.

NameTypeRequiredDescription
team_gidstringrequiredGID of the team to retrieve
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_team_remove_user#Remove a user from a team.2 params

Remove a user from a team.

NameTypeRequiredDescription
team_gidstringrequiredGID of the team
userstringrequiredGID of the user to remove from the team
asana_user_get#Get the profile of a specific user by GID.2 params

Get the profile of a specific user by GID.

NameTypeRequiredDescription
user_gidstringrequiredGID of the user. Use 'me' for the authenticated user.
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_users_list#List users in a workspace.2 params

List users in a workspace.

NameTypeRequiredDescription
workspace_gidstringrequiredGID of the workspace to list users from
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_webhooks_list#List all webhooks for a workspace.3 params

List all webhooks for a workspace.

NameTypeRequiredDescription
workspacestringrequiredGID of the workspace to list webhooks for
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
resourcestringoptionalGID of a resource to filter webhooks by
asana_workspace_get#Get details of a specific workspace by its GID.2 params

Get details of a specific workspace by its GID.

NameTypeRequiredDescription
workspace_gidstringrequiredGID of the workspace to retrieve
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_workspace_teams_list#List all teams in a workspace.2 params

List all teams in a workspace.

NameTypeRequiredDescription
workspace_gidstringrequiredGID of the workspace
opt_fieldsstringoptionalComma-separated list of optional fields to include in response
asana_workspaces_list#List all workspaces the authenticated user has access to.1 param

List all workspaces the authenticated user has access to.

NameTypeRequiredDescription
opt_fieldsstringoptionalComma-separated list of optional fields to include in response