Digital transformation is accelerating because of the digitization of processes, productivity through remote work, and increased collaboration in new tools like Microsoft Teams. Organizations need to look to capture the opportunity these new ways of working represent. Deploying Power BI integrated in Microsoft Teams for an organization is one easy way to capitalize on these trends by enabling more people to find and use data in more decision making.
This guide helps organizations, decision makers, and IT professionals understand and deploy Power BI more broadly to their Microsoft Teams users.
It covers:
- Why deploy Power BI in Microsoft Teams broadly in an organization
- What capabilities become available to users and organizations
- Options that enable organizations to roll-out Power BI in Microsoft Teams quickly
- PowerShell script samples to help automate a roll-out
Why deploy Power BI in Microsoft Teams broadly in an organization
The way we work is fundamentally changing, its faster, often remote, and digitized. Power BI empowers every individual, every team, and every organization with the data they need to make better decisions.
Power BI offers capabilities that make it easy for everyone in an organization to find and use data. It’s because Power BI is designed to meet the needs of both centralized enterprise deployments and self-service users.
Here are some of the capabilities organizations are benefiting from:
- Organizations can certify and promote datasets, Power BI apps, and reports. This enables everyone in an organization to quickly find and use the most authoritative and up-to-date data.
- Easy to use Artificial Intelligence visuals help more people find insights to inform decision making.
- Office like usability in Power BI Desktop and the Power BI service gives users familiar experiences to get started quickly using pre-built reports or designing their own.
- Integrations with Microsoft Excel and Microsoft Teams help users access data right where they work without context switches.
- Enterprise grade security and information protection to help manage, govern, and secure data through out it’s life cycle.
Learn more about all the benefits of Power BI
Microsoft is recognized as a Leader in the 2021 Gartner Magic Quadrant for Analytics and Business Intelligence Platforms. For the third year, Microsoft is positioned furthest to the right for completeness of vision and furthest up in the ability to execute within the Leaders’ quadrant.
Learn more about why customers tell us they chose Power BI.
However, for many users and organizations it’s elusive to ensure everyone knows where the authoritative data is found, where the latest reports and apps are located, and how to effectively use them within a daily, weekly, and monthly work rhythm.
This is where integrating Power BI into Microsoft Teams comes in. When Power BI is in Teams, data can be just one click away in every chat, channel and team. Because Teams is highly collaborative, users quickly show each other how to use data effectively.
Power BI’s Spring 2021 Ignite session shows a real-world example of how these capabilities come together to help analytics at one major organization work effectively directly in Microsoft Teams.
Watch (30 minutes): Drive a data culture with Power BI: Vision, Strategy, and Roadmap
Capabilities Power BI provides when integrated in Microsoft Teams
To help users find, share, and create insights, Power BI has rich integrations in Microsoft Teams enabling teams and individuals to quickly get and use the data they need.
The Power BI app for Teams is available to install from the Teams app store. It provides a data hub where an individual can find all the reports, apps, dashboards, and datasets they have access to. They get the full power of our web based authoring capabilities including our AI visuals to help discover insights quickly.
The Power BI tab enables users in channels, chats, and meeting add reports to the places they collaborate. This makes it easy to ensure everyone has the data they need at their fingertips. Since collaboration is fast paced, with new people joining channels, chats, and meeting, this helps keep team work organized and informed.
In chats, channels, and meeting chat users can quickly share Power BI content using the messaging extension which adds rich metadata cards so power bi content is easy to find, even in long conversations. When users paste links from the power BI service into chat they are automatically unfurled into the same rich metadata cards.
Users in the Power BI service and in the Power BI app for Teams can quickly send links using the Chat in Teams capability. These links preserve all the context of the user’s session, including what page they’re on, what slicers and bookmarks the user was using. When colleagues open these links they’re taken directly to the exact data the user was looking at, in a fully interactive way.
Together these capabilities make it easier for individuals and teams to collaborate. When users learn to use these tool together and in their daily, weekly, and monthly rhythms to inform decision making they create a data culture. Organizations can accelerate the growth and spread of this data culture by broadly deploying Power BI for Microsoft teams.
Learn more: Announcing new Power BI experiences in Microsoft Teams
Options for how to quickly roll-out Power BI in Microsoft Teams
Organizations come in different sizes and circumstances. There’s no one-size fits all approach that will work for every organizations, so it’s important to understand the key steps and milestone when rolling out Power BI in Microsoft Teams. The approaches and scripts covered below can be tailored to meet each situation.
We can use a three step model to accelerate the user of data where people collaborate in Microsoft Teams.
Enable
- Complete pre-requisites for using Power BI in Microsoft Teams
- Communicate to and educate internal user groups
Empower
- Pre-install the Power BI App for users in Teams
- Establish an internal user group to foster a community of practice
Accelerate
- Pre-pin the Power BI App for users in Teams
- Encourage departments to publish datasets, apps, and reports
To complete these steps work with the Teams Admin and Power BI Admin for your organization. They can also be customized and automated to suit the needs of any organization. PowerShell examples at the end of this document provide a starting point to automate the process.
It’s useful to treat the above list as a check list with your organization’s leaders to help tailor an approach that meets your organization’s needs.
Prerequisites for using Power BI in Microsoft Teams
The Power BI app for Microsoft Teams is available to all users in commercial cloud.
In the Team Admin center, ensure Power BI is Allowed. You can search for Power BI in the Manage apps list under Teams apps.
To change the status, select the app and set status to Allowed.
If you use scripts to automate these actions, the App ID 1c4340de-2a85-40e5-8eb0-4f295368978b to manage the Power BI for Microsoft Teams.
When the app is allowed, users can find it in the Teams store and install it. We encourage organizations to enable self-service sign-up so that these users can immediately start to use the app. For those organizations who would prefer users to request a license, we recommend they configure a licensing request URL in the Power BI tenant settings so users quickly find the internal process they need to complete
Learn: Self-service sign-up for Power BI
Benefits
- Users in your organization can find and install Power BI through the Teams app store
- Users who receive links shared through Chat in Teams from the Power BI service can open them in the Power BI app, after they install it
- Once users install the app, they can use all of its capabilities in Teams
Pre-installing the Power BI app in Microsoft Teams
Pre-installing the Power BI app for users in Microsoft Teams provides those users immediate access to:
- Chat and conversation experiences like link preview cards
- Search integrations
- Power BI personal app
- Power BI tab for channels, chats, and meetings
To pre-install the app a Teams Admin create an app setup policy and assigns the policy to users.
To create a policy or add to an existing one, in the Teams Admin center, expand Teams apps, then go to Setup policies.
You can pick an existing policy or create a new one. The example below show a new policy that includes the Power BI app for Microsoft Teams.
Press Add apps then search for Power BI. Two apps will be returned. Pick the one with App ID 1c4340de-2a85-40e5-8eb0-4f295368978b. A trick is to add both, then remove the undesired one.
Learn: How to create an app setup policy in Microsoft Teams
Note: When you pick an app to install, it is automatically added to the Pinned apps sections of the Policy. If this is undesired, remove it from Pinned apps before saving the policy. We’ll cover the benefits of pinning apps in the next section.
After the policy is created you need to assign the policy to users. You can choose how broadly to apply it within your organization. For Power BI customers who use Power BI Premium Capacity or cover their users with Microsoft Office E5 licenses, the most straightforward approach is to add the Power BI app for teams to the Global (Org-wide default) policy, which ensures everyone in the organization is enabled to access Power BI.
Organizations can also target specific users for whom to pre-install Power BI in Teams. This targeted roll-out is easily accomplished because Teams allows policies to be assigned to security groups, distribution lists, and even batches of individual users. Using groups enables organizations to automatically assign the policy to the right set of users.
Learn: How to assign policies to users in Teams
Note: Use the New-CsGroupPolicyAssignment PowerShell commandlet to assign a policy to a group. An example script is provided later in this document. The Teams Admin portal UI only assigns policies to users but not to groups.
There are several approaches that are easy to apply quickly, though more sophisticated rules are also possible.
- Pre-install for certain departments within your organization – Most organizations use security groups already to manage access at the department level, and these departments keep the group memberships up to date. You can use an existing group and assign the app setup policy to the desired departments
- Pre-install for licensed Power BI users – When a user is licensed for Power BI in your organization, it’s a good signal they can benefit from using it more often. Create a security group in Azure AD for all licensed Power BI users, then assign it to the app setup policy. You can use Azure Active Directory dynamic groups or PowerShell to keep the group membership up to date.
- Pre-install for active Power BI users – Additionally, you can pre-install the Power BI app for Microsoft Teams for users who are actively using Power BI. This many not have the same benefits as the other approaches in terms of educating users and broadening use of data, but for some organizations it’s a great way to start quickly, and then evaluate before broadening the pre-install to more users.
If your organization has Azure Active Directory dynamic groups, it a great way to automatically configure group membership without needing to build and maintain PowerShell scripts.
The PowerShell script examples later on this in this document help you get started automating the group membership if you don’t have access to Azure AD dynamic groups. They show examples of applying a policy to licensed users and for active users. They also show how to apply the policy to a group. They can also be extended for bespoke inclusion rules needed by your organization.
Learn: How to create a dynamic group in Azure Active Directory
Benefits
- Users in your organization have the Power BI app and experiences available and can discover it more easily
- It is easier to add, share, and return to data and insights in Power BI without leaving Teams
- As Power BI experiences evolve users will gain those benefits automatically
- All the outcome of enabling the Power BI app in Teams
Pre-pinning the Power BI app in Microsoft Teams
Pre-pinning the Power BI app for Microsoft Teams builds on the app setup policy described earlier, and in addition makes the Power BI app appear on the Teams left rail next to Activity, Chat, Calendar, Teams, Calls, and Files. This step helps users find data one click away and keep it top of mind.
Importantly, once the app is pre-pinned for users, it’s easier to made it a data hub within Teams. This works best when the organization publishes datasets, and certifies or promotes them. Users will discover these datasets directly within the Power BI app along side the reports, Power BI apps, and dashboards they have access to and use frequently.
To pre-pin the Power BI app for Microsoft Teams, create or update an app setup policy as discussed earlier. In the Pinned apps section, ensure the Power BI app with App Id 1c4340de-2a85-40e5-8eb0-4f295368978b is included.
Note: Currently when a Teams Admin deploys a policy with pinned apps, it removes any user pinned apps. In the coming months, this behavior will be changed so that user pinned apps are preserved when a policy is applied.
Benefits
- Power BI is always one-click away for users through the Microsoft Teams left rail
- It’s easier to build a data hub in Teams and accelerate adoption across the organization
- All the outcomes of pre-installing the Power BI app in Microsoft Teams
Communicate to and educate internal users groups
When rolling out Power BI in Teams, it’s useful to help users get started by helping them find the capabilities. Here’s a selection of resources that you can leverage to tailor communication to your organization.
Watch: Overview demo
Learn: Overview blog
Documentation links:
Collaborate in Microsoft Teams with Power BI
Add the Power BI app to Microsoft Teams
Embed Power BI content in Microsoft Teams
Chat in Microsoft Teams directly from the Power BI service
Get a Power BI link preview in Microsoft Teams
Establish an internal user group to foster a community of practice
For many individuals in organizations, it’s hard to meet others who have the same job role, interests, and working on similar solutions. This makes it harder to try new tools and feeling like you’re doing it right.
Because Microsoft Teams is fundamentally collaborative, it’s a great idea use a team to solve this challenge. Many organizations have successfully used the following pattern to build and grow a vibrant community of Power BI users, learn about user needs, and to identify and grow talented data professionals.
Steps:
- Create a new team for a Power BI community
- Seed it with content by summarizing monthly Power BI update blogs to community members
- Hold office hours once or twice a month
- Record the meeting and share in the Team
- Use a survey tool to ask the community questions
As these internal communities grow, you can even make the easier to find by updating the Power BI Discussion Forum link in the Power BI tenant settings.
To take it up a level and formalize your efforts to support Power BI, consider establishing a center of excellence.
Encourage departments to publish datasets, apps, and reports
The Power BI app for Microsoft Teams can be used to build a data hub that’s easy to find because it’s available directly in Teams.
You can help users have a great experience when they first open Power BI in Teams by taking a few steps. First, you can feature specific content on Power BI home. The selected reports and apps will appear in the Featured section making them easy to find. By adding an image snapshot the home page will look very welcoming for new users.
Many users will use the datasets page in Power BI as a data hub to find authoritative data. The hub helps Power BI and Excel users start connecting to data they have permission to. By encouraging these live connections to Power BI dataset you help users move away from manual export based workflows. To help ensure users see the highest quality datasets ensure to use the Certified and Promoted options for datasets. These datasets will appear in the recommended datasets list making them easier to find.
Often departments in an organization need to share data often with other departments. Encouraging your organization to publish datasets and then find them in the Power BI app for Teams removes friction for users to know where to go to find the data they need.
Using Power BI as a data hub works especially well when the Power BI app for Microsoft Teams is pinned to the Teams left rail by default. However, if you only pre-installing the Power BI app users still benefit and you can train them to find the Power BI in the Teams app list.
Learn more:
Power BI datasets hub (preview)
Feature content on Power BI Home
Certify and Promote content in Power BI
PowerShell Scripts to help automate a roll-out of Power BI to Microsoft Teams users
The script below helps you automate assigning users to a Teams app setup policy that includes the Power BI app for Teams. It covers examples of:
- Identifying licensed Power BI users
- Identifying active Power BI users
- Creating and adding the users to a security group
- Assigning the security group to an app setup policy
When executed periodically, such as nightly or weekly, the final script you create will ensure the desired users in your organization has the Power BI app installed and pinned as specified in the policy.
To run this script you must:
- Have permission to call AAD
- Have permission to create AAD Groups
- Have Teams Administrator role to assign the policy
# Instructions: # 1. Install PowerShell #(https://docs.microsoft.com/powershell/scripting/windows-powershell/install/installing-windows-powershell) # and the Power BI PowerShell cmdlets #(Install-Module MicrosoftPowerBIMgmt) # https://docs.microsoft.com/powershell/power-bi/overview?view=powerbi-ps # # NOTE: Must be running on MicrosoftPowerBIMgmt version 1.0.342 or later for Credentials to work. # # 2. Install the Azure AD PowerShell cmdlets #(Install-Module -Name AzureAD) # # As of March 2021, this requires AzureAD Preview cmdlets # Install-Module -Name AzureADPreview -AllowClobber Connect-AzureAD # Update this path to where you would like the file to be # saved to. $OUTPUT_PATH = "C:\Temp\PowerBIUsers.csv" #**** You can choose how broadly to roll out the policy by # combining approaches defined below # #** Identifying Users Approach 1: # Users with Power BI licenses # # The script below shows how to find all users with any # Power BI license assigned to them. You can be selective # or broad by including or excluding the license types in # the if… elseif block. # # Users can have the following licenses: # Power BI Pro or Microsoft Office E5 have BI_AZURE_P2 # Power BI Premium Per User have BI_AZURE_P3 # Power BI (Free) have BI_AZURE_P0 # # For a complete list of service plans refer to # https://docs.microsoft.com/azure/active-directory/enterprise-users/licensing-service-plan-reference # # NOTE: This does not include people that opted for a # Power BI Pro Trial or PPU Trial within the service. # There is no way to get trial information programmatically. $PBIUsers = @() $AllUsers = Get-AzureADUser -Filter "UserType eq 'Member'" $UserDetails = foreach ($user in $AllUsers){ $validUser = $False $licenseDetails = Get-AzureADUserLicenseDetail -ObjectId $user.objectid | Select-Object -ExpandProperty ServicePlans foreach($sp in $licenseDetails){ if($sp.ServicePlanName -eq "BI_AZURE_P2" -and $sp.ProvisioningStatus -eq "Success"){$validUser = $True} elseif($sp.ServicePlanName -eq "BI_AZURE_P3" -and $sp.ProvisioningStatus -eq "Success"){$validUser = $True} elseif($sp.ServicePlanName -eq "BI_AZURE_P0" -and $sp.ProvisioningStatus -eq "Success"){$validUser = $True} } # User has a Power BI license - add them to the list if($validUser -eq $True){$PBIUsers += $user} } # Could have duplicates so exclude dupes $LicensedUsers = $PBIUsers | SELECT ObjectId #** Identifying Users Approach 2: # Active Power BI Users # #** Identifying Users Approach 2.a: # Users who have signed into Power BI # # NOTE: This requires the user running this command to have # an Azure AD Premium license. $SignedInUsers = Get-AzureADAuditSignInLogs -Filter "appDisplayName eq 'Microsoft Power BI'" | Select-Object @{Name="ObjectId";Expression={$_.UserId}} -Unique # ** Identifying Users Approach 2.b: # Users who have used Power BI (via Audit Log) # # Use the approach provided in this blog: # https://powerbi.microsoft.com/blog/using-power-bi-audit-log-and-powershell-to-assign-power-bi-pro-licenses/ #**** Choose which users to include in the app setup policy **** # # ** Select users approach 1: # All licensed users (at your desired licensing level) # # This approach helps you expand awareness of Power BI in your # organization, to more quickly drive a data culture. $FinalUserList = $LicensedUsers | SELECT ObjectId #** Select users approach 2: Active users # # This approach helps you slowly add users who use Power BI. # It helps existing users get more done in Teams. However, # it can be harder to communicate proactively to your # organization to educate them on the availability of Power BI # in Teams, since these users will get the app pre-installed # or pre-pinned only after they use the Power BI service. # The list of sign-in users can be hard to retrieve for longer # than 24 hours since the commandlets can take a long time # to run. If you’re looking for a more gradual roll-out # approach a great option is to use security groups # for specific departments in your app setup-policy. # # Note: signedIn users will include all users, those with # licenses, those on trials, and those to sign-in but didn’t # have a license and needed to request a license. # $FinalUserList = $SignedInUsers | SELECT ObjectId #** Select users approach 3: # Licensed and Active users # # This approach ensures only those users who are both have # signed in and have an assigned Power BI license get the # Power BI app. This can work well but will miss many users # who occasionally use Power BI. Use the earlier strategies # to encourage these occasional users to use Power BI more # often in decision making. It also won't include trial users. # $FinalUserList = Compare-Object $LicensedUsers $SignedInUsers -IncludeEqual | Where-Object {$_.SideIndicator -eq "=="} | Select-Object -ExpandProperty InputObject | SELECT ObjectId # Optional Export the list to a file # $FinalUserList | SELECT ObjectId | Export-Csv -Path $OUTPUT_PATH -NoTypeInformation -Force # Add the users to a security group, creating one if it doesn’t # exist $group = Get-AzureADGroup -Filter "DisplayName eq 'Power BI in Teams Setup Policy Group'" if($group.count -lt 1) { New-AzureADGroup -Description "Group used to automatically pre-install or pre-pin Power BI in Microsoft Teams" -DisplayName "Power BI in Teams Setup Policy Group" -MailEnabled $false -SecurityEnabled $true -MailNickName "pbiMSTPolicy" $group = Get-AzureADGroup -Filter "DisplayName eq 'Power BI in Teams Setup Policy Group'" } foreach($user in $FinalUserList){ Add-AzureADGroupMember -ObjectId $group.ObjectId -RefObjectId $user.ObjectId } #**** Assign an app setup policy to the group # # NOTE 1: First go to Teams Admin center to create the desired # app setup policy as outlined earlier in this document. To run # this command the user must have the Microsoft Teams # Administrator role. # # NOTE 2: Teams policies apply in a precedence order and # individual users may only be in one policy. The examples # sets -Rank 1 to make the policy have the highest # precedence, but this could be superseded by a future # policy action. # # NOTE 3: Teams app pinning policies when applied cause user # pinned apps to be unpinned. If you’re worried about this # impact in your organization, create a policy that installs # the app, but does not pre-pin it. # # Refer to documentation # https://docs.microsoft.com/en-us/powershell/module/teams/new-csgrouppolicyassignment?view=teams-ps # https://docs.microsoft.com/en-us/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview # # Required if you’re using PowerShell 5.1 Install-Module PowerShellGet -Force -AllowClobber # NOTE: Documentation says you should request a preview version of # MicrosoftTeams, however the current production version is # 2.0.0.0 and includes the require functions. Install-Module MicrosoftTeams # You may need to call Connect-AzureAD first Import-Module MicrosoftTeams $credential = Get-Credential Connect-MicrosoftTeams -Credential $credential New-CsGroupPolicyAssignment -GroupId $group.ObjectId -PolicyType TeamsAppSetupPolicy -PolicyName "Power BI in Teams Setup Policy Group" -Rank 1 # There are several alternative options you may evaluate, # though leveraging a security group is likely the easiest # to maintain. These include direct installation of an app # and batch assignment of users to a policy. # # Refer to # https://docs.microsoft.com/en-us/powershell/module/teams/add-teamsappinstallation?view=teams-ps # https://docs.microsoft.com/en-us/powershell/module/teams/new-csbatchpolicyassignmentoperation?view=teams-ps # Add-TeamsAppInstallation -AppId 1c4340de-2a85-40e5-8eb0-4f295368978b -UserId <please provide> # New-CsBatchPolicyAssignmentOperation -PolicyType TeamsAppSetupPolicy -PolicyName "Power BI in Teams Setup Policy Group" -Identity $users_ids -OperationName "Batch assign Power BI"
Thank you for reading this guide and we hope it has helped you enable Power BI for Microsoft Teams more broadly in your organization.