Skip to main content

Asana Setup

Configuring a custom Asana OAuth app for use with Caddi

Asana lets you create an OAuth app in its developer console with no vendor approval needed. This guide covers creating the app, allowlisting your workspace, and connecting it to Caddi.

Before you start

You'll need:

  • An Asana account — any plan, including free, can create an app

  • Owner or Admin access to your Caddi organization

  • If your Asana organization is on Enterprise with app allowlisting enabled, an Asana super admin to approve the app

Step 1: Create the app in the Asana developer console

Asana allows only one redirect URI per app. There is no way to add a second, so any additional environment needs its own app registration.

  1. Go to app.asana.com/0/my-apps and click Create new app.

  2. App nameCaddi. This is shown to users on the consent screen and in their authorized-apps list.

  3. Accept the Asana API terms.

  4. Open the OAuth tab.

  5. Redirect URL — enter https://app.trycaddi.com/oauth-callback.

  6. OAuth Permission scopes — select Full permissions, or a granular set (see below).

  7. Copy the Client ID and Client secret from the OAuth tab.

Full permissions is the simplest correct choice: it gives Caddi access to whatever the authorizing user can see, with no administrative or SCIM user-provisioning reach. If you prefer granular scopes, request the :read and :write pair for tasks, projects, stories, attachments, tags, teams, workspaces, users, webhooks, and custom fields.

Step 2: Set distribution so your workspace can authorize

An Asana app can't be authorized from a workspace it hasn't been distributed to. This step is easy to miss and produces a confusing failure.

  1. Open Manage distribution on your app.

  2. Choose Specific workspaces and add the workspaces your team uses — multiple are allowed — or choose Any workspace.

  3. Save.

Step 3: Configure Asana in Caddi

This step must be completed by a Caddi organization owner or admin.

  1. In Caddi, open Integrations in the left sidebar, then click the Integration Setup tab at the top of the page. This tab is only visible to organization owners and admins.

  2. Find Asana in the list and click Configure.

Enter the following values:

  • Client ID — from your Asana app's OAuth tab

  • Client Secret — from the same tab

  • OAuth Scopes — leave blank to inherit Caddi's defaults, which match the Full permissions setting. If you chose granular scopes on the app, enter the matching space-separated strings here.

Click Save Configuration. Caddi validates the credentials immediately — if something is wrong you'll see an error right away, and nothing is stored until validation passes.

Step 4: Connect your account

  1. Go back to the My Connections tab and find Asana.

  2. Click Connect + and sign in to Asana.

  3. Approve the request. You'll be returned to Caddi with the connection active.

How the connection behaves

  • Each user connects their own Asana account. Caddi sees the tasks and projects that user can see.

  • Distribution is per-workspace. A user in a workspace that isn't on the app's allowlist cannot authorize, even with valid credentials.

  • Access tokens last one hour and refresh automatically. Asana refresh tokens are long-lived and don't rotate.

  • A custom connection replaces the standard one. Members of your organization will only see the option to connect through your app.

  • Revoking access. Delete the app in the developer console, or have users revoke it from their Asana authorized-apps list.

Troubleshooting

A user can't authorize even though the credentials are correct

The app's distribution doesn't include their workspace. Open Manage distribution and add it.

A redirect error at sign-in

The single Redirect URL on the app doesn't match https://app.trycaddi.com/oauth-callback. Asana allows only one, so correct it rather than adding another.

An Enterprise workspace blocks the app entirely

App allowlisting is on in that Asana organization. An Asana super admin needs to allow the app from the admin console.

Loops can't reach custom fields or attachments

Granular scopes were selected on the app and don't cover those resources. Switch to Full permissions, or add the missing :read/:write pairs and have users reconnect.

Still stuck? Contact Caddi support with the exact error message you're seeing and the time it occurred.

Automation ideas

Law Firms

New matter → project from template

Caddi creates the Asana project for a new matter from your firm's template, assigns the team, and sets dates from the matter's key deadlines.

Deadline change → task rescheduling

When a court date moves, Caddi recalculates the dependent dates and updates the Asana tasks so the whole chain stays consistent.

Task complete → matter record update

Caddi logs completed Asana work to the matter in your practice management system, keeping the file current without duplicate entry.

RIAs

Onboarding started → task checklist

Caddi creates the client onboarding project with every document request and compliance step assigned to the right owner.

Review cycle → scheduled prep tasks

Ahead of each client review, Caddi creates the prep tasks and links the briefing materials it has assembled.

Did this answer your question?