Bo is a Principal Consultant for ThreeWill. He has 18 years of full lifecycle software development experience.
Modern SharePoint has come a long way and the simplification of 2 key types of sites: one for Communication and one for Teams. These have helped keep our focus on distinguishing whether the purpose of a site is for broad corporate communication or more team-based collaboration. This method typically works great, except for when it doesn’t. That’s where SharePoint Questions and Answers comes in. I’ll explain more in a second.
This prompted me to ponder the question: what about a Communication site that predominantly focuses on communicating to end-users but still needs to support a set of two-way communications that allow users to ask and answer questions?
Let me first say that I’m a HUGE fan of Teams. Although it can support some light-weight communication scenarios like announcements, it’s obviously more of a collaboration tool where all users are generally on the same permission level as members. A Team within Microsoft Teams also can become a challenge to manage with hundreds or thousands of users and conversations going on, that’s a lot going on. I haven’t even broached the subject of support for asking and answering questions and the expectations that come with that.
How About Yammer?
Outer circle, right? We’ve all been indoctrinated. I loved Yammer before Microsoft bought it, and still think it’s great. I was at Ignite; I know it’s the #YearOfYammer. I know it now supports questions, mark as answer, moderation and all of that. My challenge, or at least what many of my customers are still challenged with, is that it’s still a separate product to manage that can be “loosely coupled” to a matching SharePoint site. With that loose coupling, some concerns about permission management of both provisioning and de-provisioning of both, and overall trying to keep all the content in a single box. That box is defined by the boundaries of your SharePoint site and your SharePoint permissions and groups. I’m not saying these things can’t be overcome, I know they can, but maybe there is another way.
The Solution = SharePoint Questions and Answers
To address the potential challenges, concerns, and limitations we set about developing an SPFx Solution that can be included as part of all Communication Sites provisioned in our customer’s environment. There are over 1500 of these communication sites with almost all being open to everyone in the company. These sites represent typical scenarios like departmental support (IT, HR, etc.), office locations (e.g. Atlanta) as well as other communities and line of business sites. The SPFx solution allows us to bake in support for Q&A into every new site a user requests, allowing them to turn on and manage support for SharePoint questions and answers from their end-users and moderate them.
Rather than talking about the code (which I plan to in a future post) I thought I would share some descriptions and screenshots of what the solution looks like and how it works.
Simple and unobtrusive
First, the web part is simple with just a text box to search for questions and a See All button. If you have been given permission (more on that in a second), you will also see the Ask a Question button.
Typing a question will return a list of results that allow you to launch, to view that question.
Viewing all Questions
If you click on See All, you go to an Application Page that is hosted the same web part but configured to show a list of questions before you search. There are visual indicators to show which questions have been marked as answered and which are still open, as well as a filter to show open, answered or all questions.
Viewing a Question
Clicking on an individual question shows you a threaded view of the question with replies, replies to replies and so on. There are a ton of built-in features, like allowing you to follow a question to be notified of replies via email. The person asking a question is automatically following their questions. Moderators are as well. Questions and replies can be liked by anyone. Replies can be marked as helpful by anyone. Replies can be marked as the correct answer by moderators or the person asking the question. Some cool stuff happening.
Administering the solution
Anyone who can edit a page can edit the web part and its properties. Many of these properties are used for typical rendering like title, how many questions to show per page and order by. Some influence behavior like opening questions in a new tab versus the same tab, or showing a list of questions when the page is loaded versus waiting for a search to be initiated. However, the most interesting properties is the Permissions which provides the ability to allow visitors to ask a question or not. This toggle is only enabled for Site Owners. Additionally, since often site owners or members may not be the people who need to be notified of questions, there is a button to manage the moderators or the questions on the site. All these permissions are enforced through SharePoint group membership.
There are also additional settings on the underlying list that only allow visitors to edit their entries. All of this is stored in a single list that relies on a Question and a Reply content type and self-referencing lookups to retain the relationships. In many ways it looks a lot like the old Discussion Board that many have been missing in Modern SharePoint but with some new features and a modern UI.