Available to eligible Asana Gov organizations using supported Microsoft Teams paid plans.
Asana Gov customers can connect Asana to Microsoft Teams. This version focuses on secure communication inside government cloud environments.
You need an active Asana account in an Asana Gov organization and access to Microsoft Teams with permission to add apps. Your organization may require admin approval before you can install the app. If the installation fails, contact your Microsoft 365 or Asana admin to review app permissions and tenant allowlists.
Asana Gov customers should ensure that users sign in with their Gov organization to keep data routing within supported regions and services.
After installation, open the Asana bot in your chats and click Sign in to connect your Asana account. If prompted, select your Asana domain and complete authentication.
Personal notifications let you receive Asana updates in a one-to-one chat with the Asana bot in Teams.
Open the Asana bot chat and click Link project or type “link project” to choose the Asana work you want to follow, such as My tasks or a specific project. You can update your preferences at any time by opening the Asana bot chat and clicking Settings.
The Asana Gov app is designed for government cloud requirements and limits functionality to features that meet those standards. Links and notifications honor Asana permissions. Users only see information they can access in Asana.
This integration has undergone functional testing within an Asana Gov instance to ensure all functionality is working as intended. The integration hasn't yet been evaluated and assessed in accordance with FedRAMP security and authorization boundary requirements, but customers can make a risk-based decision and take on any risk due to the integration not being FedRAMP authorized.
When someone connects their Microsoft account to Asana, Microsoft shows a permissions screen listing what Asana is asking to access.
Each item on that screen is called a scope. These are limited, purpose-specific permissions. They are not broad admin permissions, and they do not give Asana access to unrelated Microsoft data like email, calendars, files, or historical Teams messages.
|
Scope |
Simple explanation |
Why it’s needed |
Justification for use |
What it does not mean |
Screenshot of where this is used |
|
openid |
Lets Asana confirm that the person signing in with Microsoft is really the correct user. |
This is a standard part of Microsoft sign-in. It gives Asana a secure identity token, allowing Asana to verify the user’s identity after login. |
Without this, Asana would not be able to safely trust the Microsoft login. |
This scope is about secure sign-in, not about reading Teams content. |
|
|
profile |
Provides Asana with a stable Microsoft account identifier so it can match the Microsoft account to the correct Asana user. |
Microsoft accounts can change display names or email addresses over time. Asana needs a permanent, unique ID so the connection continues to point to the right person. |
This helps keep the integration reliable and prevents account mismatches. |
This is not broad profile scraping. The important part here is the unique account ID. |
|
|
offline_access |
Allows Asana to maintain the connection in the background, so users don't need to sign in again every hour. |
Microsoft access tokens expire quickly. This permission allows Microsoft to grant Asana a refresh token, enabling Asana to renew the connection automatically. |
Without it, connected features would break frequently, and users would have to reconnect their Microsoft account over and over. This is especially important for Rules that automatically send Teams messages. |
It does not give Asana unlimited access to unrelated Microsoft data. It simply keeps the connection active without repeated manual sign-ins. |
General entire integration |
|
user.read |
Allows Asana to read basic information about the signed-in Microsoft user. |
Asana uses this to correctly identify the current user when showing direct-message chat options during Rule setup. It also uses it to default-assign tasks to the currently signed-in user. For example, if a user is choosing a 1:1 chat, Asana needs to know which participant is “you” so it can label the chat clearly as the other person rather than showing an ambiguous name. |
This supports a clean and understandable setup experience for direct-message automations. |
This is basic profile access, not access to email, files, or message history. |
|
|
team.readbasic.all |
Allows Asana to see the names and basic details of the Teams workspaces the user belongs to. |
When someone sets up a Rule to send a message to a Teams channel, Asana needs to show them a searchable list of Teams workspaces to choose from. |
Without it, the user would be unable to select the correct Team during setup. |
This does not give Asana access to messages, files, or full membership details for those Teams workspaces. |
|
|
channel.readbasic.all |
Allows Asana to see the names and basic details of channels inside a Microsoft Team. |
After a user selects a Team, Asana needs to display the available channels in that Team so the user can select the appropriate destination for a Rule. |
This is necessary to make channel selection usable and accurate. |
It does not give Asana access to channel message history or files. It is limited to basic channel information needed for selection. |
|
|
Chat.ReadWrite |
Allows Asana to work with the user’s Teams chats for direct-message workflows. |
This scope supports two parts of the direct-message Rule experience:
Important implementation note for internal use Today, the actual delivery of Rule-triggered messages is handled through the Asana bot service, not by posting as the user through the user’s Microsoft token. Even so, this scope is still used for the setup and configuration experience around chat selection. |
If users want Asana Rules to send messages into Teams chats, Asana needs enough access to identify those chats and support that workflow. |
This should not be described as broad access to the entire chat history for general reading. The use case is specifically tied to chat selection and direct-message automation workflows. |
|
Asana is not requesting:
These are user-delegated permissions tied to the specific integration experience, not sweeping admin permissions.