A few weeks ago, a customer asked me for some recommendations around building and curating a video portal for SharePoint Online content. Normally, we’d look at a Microsoft Stream-based solution, but given the upcoming changes to Stream and the customer’s requirements around content retention and approvals, I thought that maybe another avenue was more appropriate.
In this short series, I’m going to show you how to build a very basic SharePoint video portal with only native SharePoint controls and the seeded (included) Power Automate licenses.
First, we’ll talk about the requirements:
- Must allow administrators the ability to manage approvals for content before it is published
- Must use only features included with Microsoft 365 E3
- Must allow use of managed metadata for tagging videos
- Must allow content to be protected via standard Office 365 retention policies for eDiscovery, FOIA, or other business needs
Whew! That’s a tall order, but as you’ll see, we can achieve it.
Overview of the Solution
In building this, I wanted to select technologies that I could reuse to design solutions for a variety of customers and subscription packages across our different sovereign clouds (such as worldwide/commercial and Government Community Clouds).
When evaluating our requirements, I spent a bit of time evaluating the order in which to do things. I built a few prototypes, but have settled on this design. In light of requirement 4 (use of retention policies), I decided that the solution would require two sites (making it easy to exclude the “upload” site from any global retention policies configured in the Security & Compliance Center).
For the site and library features, we’re going to enable versioning with approvals in the Library Settings.
We’ll add some additional columns in the libraries to capture more metadata for the videos and we’ll configure a few terms for tagging videos, too. Both of those things will help categorize the content and allow users to locate it more easily.
Finally, we’ll process uploads with Power Automate to make sure site administrators are aware of the newly uploaded files. The site or library administrator can approve or reject the item, and then when the status gets changed from Pending to Approved, we can use Power Automate to move the approved item to the production site.
So, this sounds doable. Let’s get to work!
First, we’re going to create two sites: a staging site where users will upload their content, and then a production site where the content will be visible to everyone.
For the purposes of this awesome demo. we’re going to call them Staging and Production. In this example, I’m working with the Microsoft Office 365 Government Community Cloud (but it will work for Commercial / Worldwide as well).
- Navigate to the SharePoint admin center for your tenant (https://admin.microsoft.com > Admin Centers > SharePoint or
- Expand Sites and select Active sites.
- Click +Create.
- We’re going to create a the Production site first, so choose the Communication site type.
- Select one of the templates that best meets your needs. For this example, I’m going to just choose the default Topic design, assign an owner/administrator, a language, and click Finish. We’ll delete and customize some of the content later, but it’s as good a place as any to start.
- Back on the main SharePoint Admin page, click +Create to create a new site.
- We’re going to create the Staging site now, so you can just select the standard Team site template.
- Name the site, add an owner, and click Finish.
After a few minutes, the sites should be ready to go.
Before we really get rolling, though, we’re going to want to make sure we exclude the Staging site from any retention policies (since the idea is that we need to approve content before it goes into our corpus. This is important, as my customer needed to verify that content is appropriate for their organization.
If you don’t have any retention policies to configure, you can skip this step.
Updating the Retention Policies
If you’re like most medium or large organizations, you may have retention policies deployed that govern the lifecycle of your content. We have some really deep documentation both on how to configure retention policies as well as how retention works under the covers:
- Learn about retention policies & labels to automatically retain or delete content
- Learn about retention for SharePoint and OneDrive
- Create and configure retention policies to automatically retain or delete content
In a nutshell, the retention policies allow you to govern how long to keep data, and, optionally, what to do with it once that retaining period elapses (do nothing, forcefully delete it, or trigger it for a disposition review).
An organization’s lawyers can generally be broken into two schools of thought: “more data protects us more” and “less data protects us more.” When designing and implementing retention policies, it’s important to consult your organization’s legal and records management representatives to figure out which ones you have and to craft your retention policies according to your organization’s guidelines.
In this example, we’re just going to assume that your organization has a single policy governing all of SharePoint. Using the steps below, you can adapt and update your policies accordingly. The policy I have in my environment is detailed below:
In order to prevent this policy from applying to our Staging site, we’re going to need to exclude the site from the policy.
- From the SharePoint Admin Center (
https://tenant-admin.sharepoint.com), select Sites > Active sites.
- Locate the Staging site in the list, and right-click > Copy link on the value in the URL column.
- Navigate to the Security & Compliance Center and select Information governance > Retention (https://protection.office.com/retention).
- Select the retention policy and then click Edit policy.
- Select the Locations tab, and then under the Exclude column for SharePoint sites, click Exclude sites.
- Click the Exclude sites button.
- The the text box, paste the value for the Staging site that you copied from the SharePoint Admin center and then click the + button.
- After the site has been added, select the checkbox next to the site and then click the Exclude button.
- Click Done to save the updated locations.
- Click Save to save and close the Edit retention policy page.
- Click Close to close out of the retention policy property page.
Next, we’ll move on to configuring the Terms.
Configuring the Taxonomy
If you’re not in the know, one of the things that the taxonomy in SharePoint allows to do is to you to create a hierarchical listing of keywords and terms that can be used throughout your organization. If you’re familiar with writing blogs on platforms like WordPress or Blogger, you’ve probably seen posts that have categories and tags assigned to them. They can be used as search terms throughout the blog.
Terms work much the same way. One of the benefits of a managed taxonomy is that you don’t have to worry about someone misspelling a term or a keyword when they add it to a document. Since the terms are managed, users just have to pick the correct term from a list. While a taxonomy can do much more than that, this is the part of the feature that we’re going use for this task.
Terms are arranged in a hierarchy that looks like this:
- Term group
- Term set
- Term set
We’ll be creating a term group, a few term sets, and then a few terms in each set. To configure some terms, we’ll need to be in the SharePoint Admin center (again).
There are a lot of ways to organize and structure terms. Were going to create a hierarchy that looks like this, but you can do whatever you like:
- instant pot
If you don’t need to configure a taxonomy or terms (or already know how to do it), you can skip this section.
- Navigate to the SharePoint Admin center (https://admin.microsoft.com) > Admin centers > SharePoint and select Content services > Term store.
- If you’ve never used the Term store before, you’ll need to add yourself as an admin in order to manage it. Under the Admins section click Edit and add yourself.
- Click the ellipses next to Taxonomy and then select Add term group.
- Name the term group.
- Select Add a term set.
- Name your term set.
- With your new term selected, click Add term.
- Repeat steps 5-7 for additional terms and term sets. If you make a mistake, you can rename a term or a term set. When it’s finished, it should look something like this:
Now that the terms have been added, we’ll be able to use them for tagging content.
By this point, we’ve laid some good groundwork for configuring the solution. The steps so far:
- Detailed the business requirements
- Created the base staging and production sites
- Updated retention policies to exclude the staging site from retention
- Configured the taxonomy to support our new term sets
In the next post, we’ll dig into adding the customizations to the staging and production sites.