Skip to content
Talk to an Engineer Dashboard

Asana

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

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

Asana logo

Supports authentication: OAuth 2.0

  1. In Scalekit dashboard, go to Agent AuthCreate Connection.

  2. Find Asana from the list of providers and click Create.

  3. Click Use your own credentials and copy the redirect URI — it will look like https://{your-env-url}/sso/v1/oauth/{connection_id}/callback.

  4. Navigate to the Asana Developer Console and select Create new app.

  5. Enter a name and a description for your application, then click Create app.

  6. In your app settings, go to OAuth and under Redirect URLs, click Add redirect URL.

  7. Paste the redirect URI copied from Scalekit and click Add.

Asana provides your Client ID and Client Secret in the OAuth section of your app settings.

  1. In Scalekit dashboard, go to Agent AuthConnections and open the connection you created.

  2. Enter your credentials:

    • Client ID (from above)
    • Client Secret (from above)
    • Permissions (scopes — see Asana OAuth Scopes)
  3. Click Save

Connect a user’s Asana account and make API calls on their behalf — Scalekit handles OAuth and token management automatically.

import scalekit.client, os
from dotenv import load_dotenv
load_dotenv()
connection_name = "asana" # get your connection name from connection configurations
identifier = "user_123" # your unique user identifier
# Get your credentials from app.scalekit.com → Developers → Settings → API Credentials
scalekit_client = scalekit.client.ScalekitClient(
client_id=os.getenv("SCALEKIT_CLIENT_ID"),
client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
env_url=os.getenv("SCALEKIT_ENV_URL"),
)
actions = scalekit_client.actions
# Authenticate the user
link_response = actions.get_authorization_link(
connection_name=connection_name,
identifier=identifier
)
# present this link to your user for authorization, or click it yourself for testing
print("🔗 Authorize Asana:", link_response.link)
input("Press Enter after authorizing...")
# Make a request via Scalekit proxy
result = actions.request(
connection_name=connection_name,
identifier=identifier,
path="/api/1.0/users/me",
method="GET"
)
print(result)