Tuesday 21 January 2020

Portals for Office 365

Office 365 is amazing: it has tonnes of great applications and tools for getting your work done. However, it can be quite overwhelming at times, getting access to all the applications and administrative portals it offers. It can be especially hard when you have multiple accounts and/or different tenants, whether that be full accounts or guest account access in Microsoft Teams. I wanted to make this easier, so over many months I developed an application that was designed to give you a simple workflow for accessing the various administrative and user tools within Office 365. This application I call Portals.

Light and Dark Modes


For more information on releases, check out the change log over at GitHub: https://github.com/jamescussen/PortalsReleases

Known issues:

The app has the following known issues:
  • Screen sharing does not work within meetings (although sharing of PowerPoint presentations does). This is due to an issue with Electron using a closed display capture methodology. Currently there doesn't seem to be the impetus for them to change this at this stage (https://github.com/electron/electron/issues/16513).
  • Portals currently references the normal Enterprise Office 365 portal URLs to connect to services. This means it will not be able to connect to any different URLs that may be used by the other specialised Office 365 cloud variants (eg. 21Vianet, DOD or GCC versions).
  • In Power BI if you try to update a dataset's authentication with OAuth the Power BI site will launch a new window and do a redirection which fails. The window will open and then disappear without you being able to authenticate.
  • Exchange ECP has some pop up dialog windows such as the user selection pop up in the Shared Mailbox configuration section that uses a method of passing information between windows that doesn't work with Portals. This currently is a limitation. 

If you have specific feedback about the app you can send it to myteamslab(at)gmail.com

(Simply download and install the "PortalsInstall-win32-x64.exe" installer file from the GitHub releases page. All future updates should automatically get pushed to you without you needing to manually download them)

Portals Walkthrough Video

Rather than write many thousands of words that you may not have the time or energy to read, I opted to make a walk-through video of the application. This should give you a quick and hopefully painless overview of the main capabilities of the app.

Adding Accounts

When you add an account, you can add either a regular account which has access to all the applications within Office 365 (this might depend on the account licence level, e.g. E1, E3, or E5 licenced account for example) or a Teams Guest account. The purpose of the Teams Guest account type is to allow you to create a separate account session that can log into a Guest Account tenant in a separate window from your home account. This allows you to have both Guest Accounts and your regular account Teams sites open at the same time (woot!).

Tenant Name for Regular Accounts:
To add an account click the Add Account button:

You will then be presented with the Add Account Dialog. You enter the Email Address of the user for which you want to add an account:

After this, you have a fill in the Tenant Name. When you’re adding a regular account, the Tenant Name is used within SharePoint and OneDrive URLs. The easiest way to find out what the Tenant Name needs to be is to log into the www.office.com website in a browser and then click on the SharePoint item:

This will open the SharePoint home page for your tenant, which will have the tenant name at the beginning of the URL -  as shown below:

When you click on the SharePoint portal, the URL will use the tenant name you enter in Portals as shown below:

Below is an example of the format of the working OneDrive URL:

If you get the tenant name wrong, then the SharePoint and OneDrive Portals will not load properly.

Tenant Name for Teams Guest Accounts (when you’ve ticked the Guest Account checkbox):
When adding a Guest account, the Tenant Name should be the name of the organization for which you are a Guest. In this example, John Woods is a guest account for a partner organization called “mylynclab”.

This name does not matter as much as the regular account tenant name, as it’s not used in any of the URLs. Instead, it gets added as a designator in brackets next to the account name to signify to you which tenant the guest account is accessing. This is an example of what the account looks like once added (in this case mylynclab is the tenant for which John Woods is a guest):

Password Security

Portals does not save any of your Office 365 passwords. It behaves in the same way as a browser does, when you sign into Office 365 using Portals the application is given a temporary access token by Office 365. This token and all other cookies presented to Portals are encrypted with AES 256 encryption and a long random password when they're written to disk. So your passwords are never saved and any temporary access tokens are fully encrypted.  

It's recommended when you sign into Office 365 in the Portals that you select to stay signed in. This way you don't have to keep putting in your password. Example:

Edit Mode

In edit mode you are able to edit the layout and setup of the Launcher window. When you click the edit button you will see all the portal icons start to wiggle. This lets you know that you can move them around. Crosses will also appear on the right hand side of portal buttons so you can delete them. There will also be a few extra buttons that appear at the bottom of each account section, which allow you to add portals, edit the account preferences for each account, and delete accounts. Finally you will also see an up and down arrow next to each account appear which allows your to reorder the accounts up and down in the accordion view. Using these tools, you should be able to craft a layout that suits your specific needs.

Toast Notifications

When using Microsoft Teams it's important the when people are trying to call or message you that you are aware of it. This is especially the case when you are logged into various Teams accounts at the same time.  As a result, I have designed the app to have a Toast based notification system that will pop toasts when you receive an inbound call, direct message, or team based notification. When you click on the toast the app will bring the window that the notification came from to the front so you can quickly and easily answer the call or respond to the notification.

Below is an example of a Calling toast (in this case Bob Kelly is getting called by a John Woods):

Below is an example of a Notification message (in this case Bob is getting a message from John Woods):

Each account has been given its own settings for turning off notifications for calling and messaging within Portals. These can be accessed by clicking the preferences button under an account when in edit mode. The two checkboxes can be seen below:

If you would like to have more granular control over which message notifications will pop toast windows you can go into the Teams app settings (Click on your user profile in the top right of Teams > Select Settings > Notifications). In here you have full control over the type of notifications that you will receive a toast message for (just like in the Teams app).

An example of this is that if you have "Banner and feed" set for "Like and reactions" then you will receive a toast like this one:

If you were to set "likes and reactions" notifications to "Off" then you wouldn't get any toasts when people react to your posts. This gives very fine control over how many toasts you will receive in Portals.


I have not previously accepted any donations for any scripts or apps that I’ve released. However, in this case I spent a huge amount of time working on this application and I feel that I’ve built something that will help with some major pain points that many people have with Office 365. As a result, I added a Paypal Donate button into the Preferences dialog which you can use to make a donation representative of the value you feel you get from it. I have also built the application to support automatic updates and I would like to continue to develop and improve the app where possible, so donations will certainly help to keep encouraging me to put further time into it. If you choose to donate, then I thank you very much. Paypal.me link: https://paypal.me/myteamslab

The Wrap Up

It’s safe to say that this is the largest and most complex application I have made and released to the public. It’s essentially a completely customized web browser, built for a specific purpose and workflow of my design. When I started the project many many months ago I hadn’t developed anything in Electron or even written anything serious in Javascript before. As you might imagine the learning curve has been large but I’m happy with the way the application has turned out so far and have high hopes for its future. Thanks for reading and downloading, enjoy!


  1. Is it possible to export settings from this and re-import them into another PC? We are setting this up for internal users, but having to manually re-add all the cusstomers to the application every time, is time consuming.

    1. Hi Mat, yes you can. Simply copy the "%appdata%\Portals\user-settings.json" file from the PC where you've created the config and copy it to the new PC. This will migrate all the account and portal setup across.


Popular Posts