Tuesday, December 7, 2021

Creating a team and channel aware Power Apps

Must read

Vesa Nopanenhttps://myteamsday.com/
MVP for Office Apps & Services (Teams & Collaboration focus), Principal Consultant in Office 365 and Modern Work. Extremely passionate about Microsoft Teams's power to change how people work together. Helping and coaching customers to find benefits, solutions and value when adopting new tools, methods, ways or working and practices into daily work-life equation. I am always eager to challenge current situation and dig out new possibilities and ways to think and work. You could describe me as a jack of all trades but my main focus area and deep personal driver is Microsoft Teams since it has changed the way I work and did a giant step forward to make it possible to work from anywhere - the location does not matter even us much as it mattered before. Microsoft Teams opened the path for many organizations to rethink their practices, worklife, culture and start the change. That's why I am very passionate about Teams.

Dataverse for Teams has enabled lots of new possibilities how to use Power Apps with Microsoft Teams. When a new Power App (canvas) is created to a team then it gets the Teams object/ component that can be used to retrieve information like “in which team and channel this app is in”. And yes – this works also in Private Channels!

That is the key to retrieving lots of other information that can be used automatically. The first one is of course the Teams Theme: you can make your application Teams mode aware. Automatically.

I covered ThisMeeting in my earlier blog post, so let’s take a look more about the scenario where the app is added to team channel as a tab. But first – I want to start with Teams.Theme.Name:

In this Fill-part Teams.Theme.Name tells what is the name of theme currently used in Teams. If theme is switched the app can react instantly to that. These are just like Power Fx (or more commonly Excel formulas) that are recalculated instantly. In this example it is not in the dark mode.

Of course you want to extend this to text color too.

Quite awesome – and quite easy to add!

In those screenshots can be seen that there has been several information that was retrieved from the team and channel where the app was in

  • Team ID, DisplayName and GroupID (GUID) can be found via Teams.ThisTeam. For example Teams.ThisTeam.DisplayName
  • Channel, ID and Kind name follow the same format Teams.ThisChannel.DisplayName. Of course it is nice to know that the channel is “Regular”.. or Private.

And yes – it is possible to add Power Apps to Private Channels as tabs.

Then when you have stored in the Team’s GroupID you can also fetch the Microsoft Team -object to that particular team to open more options. I created to this app similar structure as to meeting aware app : Splash screen is opened first, there is a timer for a second and when timer ends information is retrieved. This gives the app time to load and fill in the information.

In that part I get the team ID as GUID and then get Team information to a variable by calling MicrosoftTeams.GetTeam with GroupID parameter. This information can be then reused in the actual application screen (named companion in this example) – to retrieve team’s GIF settings for example. Yes – that is of course the first thing to get! 😁

But that is just a bit of what that Microsoft Teams Connector can really do. Check out more from Docs!
That is the same functionality that can be found from Power Automate Microsoft Teams Connector. That one allows you to easily

  • Posting messages or adaptive cards to team channel
  • Creating a new team or managing it’s members
  • Creating a team meeting
  • Listing teams & channels
  • etc..

In the example I created the application that would be used to contact IT. Adding a ticket to IT adds it to IT team’s planner with information about the originating team and channel attached into it. In more real life use case the team and channel information can be used to automatically show right data in the right context.

That is the big thing: Power Apps can have context automatically. When the team and channel is known then backend can support automatic attaching the application to the right customer, project, cost center, business unit etc.. Making a smart application can feel like a natural extension to Microsoft Teams.

More articles

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Latest articles