The FAQ Plus application has the following main components:
- QnAMaker: Resources that comprise the QnAMaker service, which implements the "FAQ" part of the application. The installer creates a knowledge base using the tools provided by QnA Maker.
FAQ Plus Bot: The bot serves both end users and subject matter experts.
- The knowledge base (KB) in QnA Maker is presented to end users in a 1:1 conversational bot interface. Through the bot, the user can escalate to a designated expert team, send feedback about the app, or give feedback on specific answers.
- The expert team receives notifications from the bot when users create questions or feedback items. The bot tracks questions in a simple "ticketing system", with a basic lifecycle of Unassigned -> Assigned to expert -> Closed. The bot notifies both the user and the expert team as the request changes state.
- The same bot also implements a messaging extension that lets members of the expert team search for tickets.
- Configuration Application: An Azure App Service lets app admins configure the app.
FAQ Plus uses QnA Maker to respond to user questions; in fact, you must have a QnA Maker knowledge base to start using FAQ Plus. The precision and recall of the bot responses to user questions are directly tied to the quality of the knowledge base, so it's important to follow QnA Maker's recommended best practices. Keep in mind that a good knowledge base requires curation and feedback: see Development lifecycle of a knowledge base.
For more details about QnAMaker, please refer to the QnAMaker documentation.
Bot and Messaging Extension
The bot is built using the Bot Framework SDK v4 for .NET and ASP.NET Core 2.0. The bot has a conversational interface in personal (1:1) scope for end-users and in team scope for the expert team. It also implements a messaging extension with query commands, which the expert team can use to search for and share requests.
The configuration app is a standard ASP.NET MVC 5 web app. The configuration app will be used infrequently, so the included ARM template puts it in the same App Service Plan as the bot and QnAMaker.
From this simple web interface, app administrators can:
- designate the expert team
- set the knowledge base to query
- set the welcome message that's sent to all users
- set the content of the Help tab