Create Office 365 Alerts Shared Mailbox from APIs – Part 1

In terms of Office 365, when trying keep your eye on AAD Connect synchronisation, new Service Health notices, new O365 Endpoints, new Message Center updates and the rest, it can all become a little bit taxing and hard to juggle.

When a new Service Health alert reporting Service Degradation of an O365 feature appears in the Service Health Dashboard we're not always sitting watching the dashboard waiting to act. Wouldn't an alert system that drops right into your Outlook be just what you are looking for?

Then there is those who used to use the Office 365 Endpoints RSS Feed and acted as and when the feed reported new endpoints. Unfortunately, the RSS Feed was deprecated back in October 2018 and there was no obvious alternative that didn't involve calling the web service.

Well yes, in most cases unless you fancy doing something more intuitive with data such as importing it into a power BI dashboard, then most service desks benefit from having a shared mailbox gather a bunch of email alerts so that the whole team gains some visibility and all in the one place.

This collection of 8 blog posts are going to cover just that.


Above you will see 7 key folders that I have used to create an email alert mailbox. These alerts are harnessed from several Office 365 based APIs and I will now take you through the creation of each one in this 8 part blog series. I will be using Microsoft Flow to achieve this and here is a directory to take you to each post:

Part 1Create an Office 365 Alerts Shared Mailbox from Various APIs

Part 2Call O365 Endpoints Web Service and Return the Latest FQDNs

Part 3Call Office 365 Service Communications API and Return New Service Health Notices

Part 4 – Call Office 365 Service Communications API and Return an Hourly Summary of Service Health Notices

Part 5 – Call Office 365 Service Communications API and Return a Daily Summary of Message Center Notices

Part 6Harness the Twitter API via flow to capture new tweets from @MSFT365Status

Part 7 – Call Microsoft Graph Organization Scope to Check Last AAD Connect Sync Time

Part 8Call O365 Roadmap Web Service Weekly Digest

Read More

PowerShell: Skype for Business Call Recording On or Off

I found this a little tricky to lay my fingers on at first so thought it best that I document it here.

Have you ever been asked to "Get me all the users who have call recording turned on" from a Skype for Business tenant?

If you are asked that question. Here are the PowerShell commands you will require.

Skype for Business Call Recording Turned On

Get-CsOnlineUser | Where {$_.ConferencingPolicy -eq "BposSALLModality"} | Select-object DisplayName, ConferencingPolicy

Skype for Business Call Recording Turned Off

Get-CsOnlineUser | Where {$_.ConferencingPolicy -eq "BposSALLModalityNoRec"} | Select-object DisplayName, ConferencingPolicy

Clearly this is almost a true false scenario so a script outputting to 2 different excel sheets may just be what you need.

Read More

New Emails between 10am & 11am move to Subfolder

Using Microsoft Outlook. If you have a need to receive an email, then to file it in a sub-folder based on 2 time parameters this method should do the trick.

Below I will demonstrate using the Flow trigger When a new email arrives then passing a condition that will return true if DateTimeReceived parameter is within the time constraint.

In Lehman's terms, if the email arrives between 10am & 11am it will be moved to the sub-folder. If not, it remains in the inbox.

Read More

So you just want Flow running in business hours, 8am to 5pm

Here is a little helper I use when creating flows that I only want running during business hours only.


Let's say we generate an hourly email that goes to shared mailbox. There are times when this email is pointless after 6pm or before 8am (per say). There are times when there is no need to have this email outwith Monday to Friday so here is an easy way to handle that.

Read More

Register an App in the Azure Active Directory Oauth v1.0

There are several uses for Apps in Azure Active Directory but in the most, you are opening yourself a gateway to harness the power of an API.

Below I will walk you through the required steps in order to create an app called O365ServiceAPI. Once we have this app created you will then be able to make API calls to the Office 365 Management APIs.

Once this has been created, you will have 2 bits of information, your  Application ID or ClientID and your key, or SecretID.

In addition to the ClientID & SecretID you will require your Directory ID or TenantID and here is how to go about getting that.

Go to Azure Active Directory Admin Console at and log in as a Global Administrator.

Click Azure Active Directory, and under Manage click Properties.

Look for Directory ID and copy it to your clipboard.

Open a new .txt file (or similar) and keep a record of this value which will refer to now as TenantID.

Read More