Deploying Sofa to Teams

This chapter describes how to incorporate the Sofa app directly to Microsoft Teams environment.

The whole process consists of deploying individual partial apps, used at the level of individual teams in Teams, and deploying a "personal app" valid for the whole organization in Teams.

To implement Sofa in the Microsoft Teams environment, you need to start by deploying the partial apps.

If you start by deploying the personal app, the request to grant permission to use the app will end with an error.

Apps are deployed using "app manifests", which is data stored as files in the ZIP archive format. They are primarily available on the web using their URL addresses, which you can find below. It may be useful (but not necessary) to download the manifest files onto your computer drive before starting. Enter the URL address in your browser and the file downloads in the location set in your browser (typically the Downloads folder).

General app deployment procedure

The steps to deploy are the same for all apps. As an example, we will demonstrate deploying the partial app to handle a data box.

Install the app to the Teams environment in the Microsoft 365 admin center window. The address is: https://admin.microsoft.com/

On the left in the admin center window, select Settings. If the option is not visible, select Show all first. A sub-menu is displayed. Select Integrated apps.

To deploy a new app, open the Deployed apps tab and select Upload custom app.

teams39

A wizard opens to guide you through the deployment of a new app. The setup is divided into several tabs.

Selecting the app manifest file

Upload a file with the "app manifest" on the first tab – Upload custom app. Do the following:

  • In App type, select or keep Teams app.

  • In Upload manifest file (.zip), specify the file containing the app manifest. The file must be in the ZIP archive format.

teams40

Select Choose file, look up the ZIP manifest file in the file selection dialog and select Open.

teams41

The manifest file is uploaded and checked. If the check is successful, the message Manifest file validated is displayed in green.

teams42

Otherwise, an error message is displayed with a red indicator and the process cannot continue.

teams43

Select Next in the lower left corner to continue to the next tab.

App configuration

The second tab, Configuration, is used to set up the app. In this case there are no settings needed. You can check in Host products section that the app is intended for Microsoft Teams environment. The tab displays the partial app name: sofaCzechDataBox.

teams44

Select Next to continue to the next tab.

Selecting the users

On the third tab, Users, select the users of your organization to get access to the app in Teams. There are three options for the Assign users switch:

  • Just me – the app will only be available to you, the user logged in using the name given in the brackets.

  • Entire organization – the app will be available to all users in your organization.

  • Specific users/groups – the app will be available to selected users and groups. The field below this option can be used to select the users and groups.

Select Entire organization.

Keep the field Is this a test deployment? switched to No. In a test deployment, you might encounter e.g. a limit in the number of users.

teams45

Select Next to continue to the next tab.

More options

The fourth tab, Deployment, is divided to two sub-tabs: Permissions and Finish.

Setting up permissions

On the Permissions sub-tab, approve the permissions to grant to the newly installed partial app. They are the following permissions:

  • Allows the app to display your users' basic profile (e.g., name, picture, user name, email address).

  • Allows users to sign in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.

  • Allows users to sign in to the app with their work or school accounts and allows the app to see basic user profile information.

  • Allows the app to read primary e-mail addresses of signed-in users.

You can use the arrow symbol to hide or expand details listed in the lower half of the tab.

On the tab, select Accept permissions.

teams46

A check of your current user name may follow.

teams47

The dialog Permissions requested is then displayed with information and links for the permissions to be granted. Section This app would like to lists operations you need accept permission to in this dialog so that the app can work correctly. The list varies based on the specific app being deployed.

Select Accept to accept all listed permissions.

Granting the permissions is noted on the Permissions tab with the message Permissions accepted.

teams49

Select Next to continue to the last tab of the wizard.

Finishing the deployment

The app deployment ends on the last tab, Finish.

The tab displays an overview of app settings:

  • In section Apps to deploy, check that the app will run in Teams and Outlook environment.

  • Section Assigned users shows that the app will be available to all users in your organization.

Select Finish deployment to deploy the app.

teams50

A successful app deployment is announced by the message Deployment completed with a green indicator.

teams51

Select Done to complete deploying the app. You will return to the Integrated apps window, where the freshly deployed app is listed on the Deployed apps tab.

teams52

Deploying the personal app

This manifest must be deployed last, after the partial app manifests!

Download the manifest file for this app from the following URL:

The deployment is analogical to the procedure for partial apps, described above. Note the following small differences:

Information displayed on the Configuration tab in section Apps to deploy is slightly different – there is additional information on deployment to the whole Microsoft 365 environment.

teams54

On the Permissions tab, select the Accept permissions button and continue to allow this app and all partial apps.

teams55 teams56

Confirm the apps one by one by selecting Next.

All accepted permissions are then listed on the DeploymentPermissions tab.

teams57

Finish the deployment on the DeploymentFinish tab.

teams58

Select Finish deployment. A moment later, the message Deployment completed appears, and you can select Done to finish the personal app deployment.

teams59

The Integrated apps screen displays a list of all deployed apps – the personal app as well as all partial apps.

teams60

Sofa setup in Teams environment

Once the Sofa app is installed, you need to enable it in Microsoft Teams environment.

Use the menu under the button with nine dots in the upper left corner of Microsoft 365 admin center to display a menu and select Teams.

teams61

A window might open where you can select between downloading a desktop version for Windows and running Teams as a web app.

teams62

Select one of the options – they are very similar to use.

In the Teams window on the left, select Apps. A window opens with a list of apps to install. Select the menu option Built for your org – it displays a list of all apps intended directly for your company, which includes all the recently added Sofa apps.

teams63

For each entry in the list you want to add, select Add and then confirm by selecting Add in the upper part of the following window.

We’ll start by installing the Test Sofa app, which you’ll find as an entry under the same name. Select Add next to the entry.

teams64
This is the way to add Sofa to Teams for the whole organization (all teams). To make it available to selected teams only, right-click the right end of the button (with the arrow) and select Add to team.
teams65

Sofa then immediately integrates in the Teams environment. The Sofa window opens with its toolbar. To open the window anytime later, select Test Sofa on the left.

teams66

List of required permissions

To set up the permissions, you need administration permissions. If you apply the setting to the whole organization, the applications will gain access to the resources for all users in the organization. This means that no other users will be prompted to set up or check the permissions.

If you accept the permissions, the application will be able to use your data as listed in:

Sofa Agenda Views

The application needs the following permissions:

  • Allows the app to read your users' primary e-mail address.

  • Allows users to sign in to the app with their work or school accounts and allows the app to see basic user profile information.

  • Allows the app to see your users' basic profile (e.g., name, picture, user name, email address).

  • Allows users to sign in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.

teams73

When deploying testSofa agenda views, you need to allow the following:

  • Sign in and read user profile.

Allows users to sign in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.

teams74

Sofa Dashboard

The application needs the following permissions:

  • Allows the app to see your users' basic profile (e.g., name, picture, user name, email address).

  • Allows users to sign in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.

teams75

When deploying Sofa Dashboard, you need to allow the following:

  • Sign in and read user profile. Allows users to sign-in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.

teams76

Sofa Documents

The application needs the following permissions:

  • Allows the application to access the Azure Management Service API acting as users in the organization.

  • Allows the app to read your users' primary e-mail address.

  • Allows the app to read, create, update and delete the signed-in user’s files.

  • Allows users to sign in to the app with their work or school accounts and allows the app to see basic user profile information.

  • Allows the app to see your users' basic profile (e.g., name, picture, user name, email address).

  • Allows users to sign in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.

teams77

When deploying Sofa Documents, you need to allow the following:

  • Access to Azure Service Management as users in the organization (Preview).
    Allows the application to access the Azure Service Management API acting as users in the organization..

  • Have full access to user files.
    Allows the app to read, create, update and delete the signed-in user’s files.

  • Sign in and read user profile. Allows users to sign in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.

    teams78

Sofa New Agenda

The application needs the following permissions:

  • Allows the app to see your users' basic profile (e.g., name, picture, user name, email address).

  • Allows users to sign in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.

teams79

When deploying Sofa New Agenda, you need to allow the following:

  • Sign in and read user profile. Allows users to sign in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.

teams80

Sofa Summary View

The application needs the following permissions:

  • Allows the app to see your users' basic profile (e.g., name, picture, user name, email address).

  • Allows users to sign in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.

teams81

When deploying Sofa Summary View, you need to allow the following:

  • Sign in and read user profile. Allows users to sign-in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.

teams82

Sofa CzechDataBox

The application needs the following permissions:

  • Allows the app to read your users' primary e-mail address.

  • Allows users to sign in to the app with their work or school accounts and allows the app to see basic user profile information.

  • Allows the app to see your users' basic profile (e.g., name, picture, user name, email address).

  • Allows users to sign in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.

teams83

When deploying Sofa CzechDataBox, you need to allow the following:

  • Sign in and read user profile.
    Allows users to sign in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.

When deploying Sofa, you need to allow the following:

  • Sign in and read user profile.
    Allows users to sign in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.

teams84

Sofa

The application needs the following permissions:

  • Enable Sofa to call the add-in’s web API with the same rights as the current user.

  • Allows Teams to call the Sofa app’s web APIs as the current user.

  • Allows the app to read your users' primary e-mail address.

  • Allows users to sign in to the app with their work or school accounts and allows the app to see basic user profile information.

  • Allows the app to see your users' basic profile (e.g., name, picture, user name, email address).

  • Allows users to sign in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.

teams85

For Sofa Personal App, you need to allow the following:

  • The option to act as a user for Sofa Summary Views.
    Enables Sofa to call the add-in’s web API with the same rights as the current user.

  • The option to act as a user for Sofa New Agenda.
    Enables Sofa to call the add-in’s web API with the same rights as the current user.

  • The option to act as a user when displaying documents in Sofa Documents View.
    Enables Sofa to call the add-in’s web API with the same rights as the current user.

  • The option to act as a user in Sofa Dashboard
    Enables Sofa to call the add-in’s web API with the same rights as the current user.

  • The option to act as a user in Sofa CzechDataBox.
    Enables Sofa to call the add-in’s web API with the same rights as the current user.

  • Enables Teams to access the Sofa app’s web API. * Allows Teams to call the Sofa app’s web APIs as the current user.

  • Sign in and read user profile
    Allows users to sign in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.

teams87

All of Sofa Summary View, Sofa New Agenda, Sofa Document View, Sofa Dashboard, Sofa Czech Data Box and Sofa Agenda Views need the following permissions:

  • Display your users' basic profiles.
    Allows the app to see your users' basic profile (name, picture, user name).

  • Maintain acccess to data you have given it access to.
    Allows the app to see and update the data you have given it access to, even while the users are not actively using the app. This does not give the app any additional permissions.

teams88 teams89

teams90 teams91

teams92 teams93