Using Flow to publish SharePoint News and Post to Microsoft Teams

Sending notifications to users in Microsoft Teams when a SharePoint news item is posted is something which is commonly requested, both with clients and on the various tech forums which I frequent. It definitely makes sense, and there is a lot you can do, using Microsoft Flow, to send notifications in a number of different ways to suit your users regardless of generation and technological awareness.

In this blog post, we’ll look at how we can connect Flow to the site pages library, and how we can determine the page type, publishing status, and some basic content so we can ensure that our users are getting the right information at the right time.

With modern SharePoint sites, you get a great way of creating and editing news items. It’s so simple to be able to create the news item within the browser, hit publish, but then wonder why users aren’t flocking to come and read your content. Let’s face it, in the modern world of intranets we don’t spend our lives watching the home page waiting for the next piece of news to appear. We spend our time where we do our work, and the only time we’ll go elsewhere is if we know there’s something there for me to look at. Even with the roll-up of news posts to the SharePoint Portal page, I still need a poke every now and then to go and check it.

SharePoint still has the ability to generate alerts, when something is created or changed, immediately or on a daily basis. We’ve seen it and have been using it for as long as I can remember, and unfortunately, it’s never changed or improved over that time and doesn’t give us the flexibility to be able to customise the notifications which are being sent to our users. It still has its uses, but, in my opinion, not in this scenario.

SharePoint News

But before I dive into Flow and start creating my own notification Flow, there are a few things which I need to understand about pages created in the site pages and how they’re classified. All SharePoint news posts and pages are created within the same library, but through the SharePoint User Interface, I don’t really get to see how SharePoint can distinguish between them. Yet, it knows which items to pick and display using the SharePoint News web parts, and knows which ones to roll up. It does this by automatically setting a hidden metadata field called “Promoted state”. The promoted state can take one of three values:

  • 0 = Site Page
  • 1 = News Post in Draft
  • 2 = News Post Published

SharePoint will automatically take care of the setting of this field for me, so all I need to do is remember this field when I move across into Flow to create my notification Flow.

Microsoft Flow

For my trigger, I’m going to use the “When a file is created or modified (properties only)” trigger, the page will go through draft before being published. Even if I publish the news post immediately, it will initially change to promoted state 1, and then to promoted state 2. So I’m really only interested in the modified event. I’m also only really interested in the properties as everything I need for my notification can be found here.

When configuring your trigger, select the site where you want this Flow to run from. Then select the drop down for the library name. Notice that Site Pages doesn’t appear, only your modern document libraries. Whilst you can’t select it, you can manually type “Site Pages” into the library name, just ensure that you either select “Enter custom value” to start with or alternatively type in Site Pages and then select “Use Site Pages as custom value”.

Checking if the Item has been Published

Each time the page is saved, it is going to trigger my Flow, so I now need to check whether the news item is in a published state or not. This is where, I’m going to use the Promoted State metadata field to check whether I’m going to start notifying my users that I’ve posted something, or whether I’m going to stop processing any further,

To do this, I’m going to use a Condition control and build a condition on Promoted State. The only state I’m interested in is 2 (News Post published). If it’s 2, then I’m going to start sending my notifications, otherwise, I’m not going to do anything.

Checking if the Item has been Published

Each time the page is saved, it is going to trigger my Flow, so I now need to check whether the news item is in a published state or not. This is where, I’m going to use the Promoted State metadata field to check whether I’m going to start notifying my users that I’ve posted something, or whether I’m going to stop processing any further,

To do this, I’m going to use Condition control and build a condition on Promoted State. The only state I’m interested in is 2 (News Post published). If it’s 2, then I’m going to start sending my notifications, otherwise, I’m not going to do anything.

So with all of this information, whenever a new post is created in SharePoint News, it will Post to Teams in the Channel that I set it up. Below is my configuration screenshot.