Asana connector
OAuth 2.0Project ManagementCollaborationProductivityConnect to Asana. Manage tasks, projects, teams, and workflow automation
Asana connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. 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> -
Set up the connector
Section titled “Set up the connector”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:
-
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.
-
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.

-
-
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 OAuth → App permissions.
-
Under App install permissions, enable Allow users outside your workspace to install this app.

-
-
Get client credentials
- In Asana Developer Console, select your app.
- Under OAuth, copy your Client ID and Client Secret.
-
Add credentials in Scalekit
-
In Scalekit dashboard, go to AgentKit > Connections and open the connection you created.
-
Enter your credentials:
- Client ID (from above)
- Client Secret (from above)
- Permissions (scopes — see Asana OAuth scopes reference)

-
Click Save.
-
-
-
Authorize and make your first call
Section titled “Authorize and make your first call”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.actionsconst connector = 'asana'const identifier = 'user_123'// Generate an authorization link for the userconst { 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 callconst result = await actions.executeTool({connector,identifier,toolName: 'asana_me_get',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "asana"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Asana:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="asana_me_get",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”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
Common workflows
Section titled “Common workflows”Proxy API call
const result = await actions.request({ connectionName: 'asana', identifier: 'user_123', path: '/api/1.0/users/me', method: 'GET',});console.log(result);result = actions.request( connection_name='asana', identifier='user_123', path="/api/1.0/users/me", method="GET",)print(result)Tool list
Section titled “Tool list”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.
attachment_gidstringrequiredGID of the attachment to deleteasana_attachment_get#Get details of a specific attachment by its GID.2 params
Get details of a specific attachment by its GID.
attachment_gidstringrequiredGID of the attachment to retrieveopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_me_get#Get the profile of the authenticated user.1 param
Get the profile of the authenticated user.
opt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_project_create#Create a new project in a workspace.10 params
Create a new project in a workspace.
namestringrequiredName of the projectworkspacestringrequiredGID of the workspace to create the project incolorstringoptionalColor of the projectdefault_viewstringoptionalDefault view for the projectdue_onstringoptionalDue date for the project (YYYY-MM-DD)notesstringoptionalFree-form text description for the projectopt_fieldsstringoptionalComma-separated list of optional fields to include in responseprivacy_settingstringoptionalPrivacy setting for the projectstart_onstringoptionalStart date for the project (YYYY-MM-DD)teamstringoptionalGID of the team to share the project withasana_project_delete#Delete a project permanently.1 param
Delete a project permanently.
project_gidstringrequiredGID of the project to deleteasana_project_duplicate#Create a duplicate of an existing project.4 params
Create a duplicate of an existing project.
namestringrequiredName for the duplicated projectproject_gidstringrequiredGID of the project to duplicateopt_fieldsstringoptionalComma-separated list of optional fields to include in responseteamstringoptionalGID of the team for the duplicated projectasana_project_get#Get details of a specific project by its GID.2 params
Get details of a specific project by its GID.
project_gidstringrequiredGID of the project to retrieveopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_project_tasks_list#List all tasks in a specific project.2 params
List all tasks in a specific project.
project_gidstringrequiredGID of the project to list tasks fromopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_project_update#Update an existing project's properties.10 params
Update an existing project's properties.
project_gidstringrequiredGID of the project to updatearchivedbooleanoptionalWhether the project is archivedcolorstringoptionalColor of the projectdefault_viewstringoptionalDefault view for the projectdue_onstringoptionalDue date for the project (YYYY-MM-DD)namestringoptionalNew name for the projectnotesstringoptionalFree-form text description for the projectopt_fieldsstringoptionalComma-separated list of optional fields to include in responseprivacy_settingstringoptionalPrivacy setting for the projectstart_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.
opt_fieldsstringoptionalComma-separated list of optional fields to include in responseteamstringoptionalGID of a team to filter projects byworkspacestringoptionalGID of the workspace to list projects fromasana_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.
section_gidstringrequiredGID of the section to add the task totaskstringrequiredGID of the task to move into this sectioninsert_afterstringoptionalInsert the task after this task GID within the sectioninsert_beforestringoptionalInsert the task before this task GID within the sectionasana_section_create#Create a new section in a project.3 params
Create a new section in a project.
namestringrequiredName of the sectionproject_gidstringrequiredGID of the project to create a section inopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_section_delete#Delete a section from a project.1 param
Delete a section from a project.
section_gidstringrequiredGID of the section to deleteasana_section_get#Get details of a specific section by its GID.2 params
Get details of a specific section by its GID.
section_gidstringrequiredGID of the section to retrieveopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_section_update#Update the name of a section.3 params
Update the name of a section.
namestringrequiredNew name for the sectionsection_gidstringrequiredGID of the section to updateopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_sections_list#List all sections in a project.2 params
List all sections in a project.
project_gidstringrequiredGID of the project to list sections fromopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_story_create#Add a comment or story to a task.3 params
Add a comment or story to a task.
task_gidstringrequiredGID of the task to add the comment totextstringrequiredText of the comment to add to the taskopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_story_get#Get details of a specific story by its GID.2 params
Get details of a specific story by its GID.
story_gidstringrequiredGID of the story to retrieveopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_subtask_create#Create a subtask under an existing task.6 params
Create a subtask under an existing task.
namestringrequiredName of the subtasktask_gidstringrequiredGID of the parent taskassigneestringoptionalGID of the user to assign, or 'me'due_onstringoptionalDue date for the subtask (YYYY-MM-DD)notesstringoptionalFree-form description for the subtaskopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_tag_create#Create a new tag in a workspace.4 params
Create a new tag in a workspace.
namestringrequiredName of the tagworkspacestringrequiredGID of the workspace to create the tag incolorstringoptionalColor for the tagopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_tag_delete#Delete a tag permanently.1 param
Delete a tag permanently.
tag_gidstringrequiredGID of the tag to deleteasana_tag_get#Get details of a specific tag by its GID.2 params
Get details of a specific tag by its GID.
tag_gidstringrequiredGID of the tag to retrieveopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_tag_update#Update a tag's name or color.4 params
Update a tag's name or color.
tag_gidstringrequiredGID of the tag to updatecolorstringoptionalNew color for the tagnamestringoptionalNew name for the tagopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_tags_list#List tags in a workspace.2 params
List tags in a workspace.
opt_fieldsstringoptionalComma-separated list of optional fields to include in responseworkspacestringoptionalGID of the workspace to list tags fromasana_task_add_followers#Add followers to a task.3 params
Add followers to a task.
followersstringrequiredComma-separated GIDs of users to add as followerstask_gidstringrequiredGID of the taskopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_task_add_project#Add a task to a project.5 params
Add a task to a project.
projectstringrequiredGID of the project to add the task totask_gidstringrequiredGID of the task to add to a projectinsert_afterstringoptionalInsert the task after this task in the projectinsert_beforestringoptionalInsert the task before this task in the projectsectionstringoptionalGID of a section in the project to place the taskasana_task_add_tag#Add a tag to a task.2 params
Add a tag to a task.
tagstringrequiredGID of the tag to add to the tasktask_gidstringrequiredGID of the taskasana_task_create#Create a new task in Asana.9 params
Create a new task in Asana.
namestringrequiredName of the taskassigneestringoptionalGID of the user to assign, or 'me'due_onstringoptionalDue date for the task (YYYY-MM-DD)followersstringoptionalComma-separated GIDs of users to follow the tasknotesstringoptionalFree-form text description of the taskopt_fieldsstringoptionalComma-separated list of optional fields to include in responseprojectsstringoptionalComma-separated GIDs of projects to add the task tostart_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.
task_gidstringrequiredGID of the task to deleteasana_task_duplicate#Create a duplicate of an existing task.4 params
Create a duplicate of an existing task.
namestringrequiredName for the duplicated tasktask_gidstringrequiredGID of the task to duplicateincludestringoptionalComma-separated list of fields to copy (assignee, attachments, dates, dependencies, notes, projects, subtasks, tags)opt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_task_get#Get details of a specific task by its GID.2 params
Get details of a specific task by its GID.
task_gidstringrequiredGID of the task to retrieveopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_task_remove_followers#Remove followers from a task.3 params
Remove followers from a task.
followersstringrequiredComma-separated GIDs of users to remove as followerstask_gidstringrequiredGID of the taskopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_task_remove_project#Remove a task from a project.2 params
Remove a task from a project.
projectstringrequiredGID of the project to remove the task fromtask_gidstringrequiredGID of the task to remove from a projectasana_task_remove_tag#Remove a tag from a task.2 params
Remove a tag from a task.
tagstringrequiredGID of the tag to remove from the tasktask_gidstringrequiredGID of the taskasana_task_set_parent#Set or change the parent task of a task.5 params
Set or change the parent task of a task.
parentstringrequiredGID of the new parent task. Use null to make it a top-level task.task_gidstringrequiredGID of the task to set parent forinsert_afterstringoptionalA subtask GID to insert this task after in the parentinsert_beforestringoptionalA subtask GID to insert this task before in the parentopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_task_stories_list#List stories (comments and activity) on a task.2 params
List stories (comments and activity) on a task.
task_gidstringrequiredGID of the task to list stories fromopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_task_subtasks_list#List all subtasks of a task.2 params
List all subtasks of a task.
task_gidstringrequiredGID of the parent taskopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_task_update#Update an existing task's properties.8 params
Update an existing task's properties.
task_gidstringrequiredGID of the task to updateassigneestringoptionalGID of the user to assign, or 'me', or null to unassigncompletedbooleanoptionalMark the task as complete or incompletedue_onstringoptionalDue date for the task (YYYY-MM-DD)namestringoptionalNew name for the tasknotesstringoptionalUpdated description for the taskopt_fieldsstringoptionalComma-separated list of optional fields to include in responsestart_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.
assigneestringoptionalGID or 'me' to filter tasks by assigneecompleted_sincestringoptionalOnly return tasks completed after this date-time (ISO 8601)opt_fieldsstringoptionalComma-separated list of optional fields to include in responseprojectstringoptionalGID of a project to filter tasks bysectionstringoptionalGID of a section to filter tasks byworkspacestringoptionalGID 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.
team_gidstringrequiredGID of the teamuserstringrequiredGID of the user to add to the teamopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_team_get#Get details of a specific team by its GID.2 params
Get details of a specific team by its GID.
team_gidstringrequiredGID of the team to retrieveopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_team_remove_user#Remove a user from a team.2 params
Remove a user from a team.
team_gidstringrequiredGID of the teamuserstringrequiredGID of the user to remove from the teamasana_user_get#Get the profile of a specific user by GID.2 params
Get the profile of a specific user by GID.
user_gidstringrequiredGID of the user. Use 'me' for the authenticated user.opt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_users_list#List users in a workspace.2 params
List users in a workspace.
workspace_gidstringrequiredGID of the workspace to list users fromopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_webhooks_list#List all webhooks for a workspace.3 params
List all webhooks for a workspace.
workspacestringrequiredGID of the workspace to list webhooks foropt_fieldsstringoptionalComma-separated list of optional fields to include in responseresourcestringoptionalGID of a resource to filter webhooks byasana_workspace_get#Get details of a specific workspace by its GID.2 params
Get details of a specific workspace by its GID.
workspace_gidstringrequiredGID of the workspace to retrieveopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_workspace_teams_list#List all teams in a workspace.2 params
List all teams in a workspace.
workspace_gidstringrequiredGID of the workspaceopt_fieldsstringoptionalComma-separated list of optional fields to include in responseasana_workspaces_list#List all workspaces the authenticated user has access to.1 param
List all workspaces the authenticated user has access to.
opt_fieldsstringoptionalComma-separated list of optional fields to include in response