Skip to content

1. Solution overview

Srinivas Varukala edited this page Jan 22, 2023 · 10 revisions

High Level Design

This sample application is built on several Microsoft technologies, including; Power Platform, Teams, SharePoint Online and Azure. The Power App can be run directly inside the Teams experience as a Teams app, or via a supported browser, or directly from iOS, Android or a Windows client.

The following diagram provides a high level overview of the different components that are leveraged by this application.

The user-interface is provided by a Power Apps. You can delegate access to the Power App through membership of the O365 Group, or through per user permissions defined in the App itself.

A dedicted SharePoint site is created to host SharePoint Lists and Document libraries that are used to store Call Queue schedules and change (audit) logs.

There are several Azure Functions that are leveraged by the Power App to view and manage the agents within a Call Queue. These Azure functions allow the PowerApp to view, update and process the schedule for a specific Call Queue made via processing Teams PowerShell cmdlets. Actions validated on the Power Apps trigger a Power Automate custom connector flow, which in turn trigger the associated Azure functions.

Azure KeyVault is used to securely store the secret and credentials required by the solution. With this design, secrets & credentials management of the "service account" and of the "service principal" can be stored securely. This will allow an admin to be delegated permissions to use the PowerApp without the admin requiring any additional Teams RBAC role assignment.

Power Automate calls the Azure Functions providing the appropriate credentials from the Key Vault. The Azure Function retrieves the "service account" credentials that has the "Teams Communications Administrator" role and execute the PowerShell scripts associated with the Azure functions.

Clone this wiki locally