Skip to content

Solution Overview

Yashraj Mungale edited this page Oct 28, 2019 · 3 revisions

Architecture Image

The HR Support application has the following main components:

  • QnAMaker: Resources that comprise the QnAMaker cognitive service, which implements the "FAQ" part of the application. The installer creates a knowledge base using the tools provided by QnA Maker.

  • HR Support 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.

  • The Carousel card of recommended tile based on matching tags and its ranking is presented to end users in a 1:1 conversational bot interface.

  • HR Support Tab: HR Support is a newly added tab in HR Support bot which shows all the recommended links related to HR in the form of Tiles. User can just click on it and the link will open in the browser in a new tab. User have to Authenticate first to access this tab.

  • Configuration Application: An Azure App Service that lets app admins to configure the welcome text, Knowledge Base and Team ID for Bot. The Grid which contains the HR Support tiles data, is newly added functionality where admin can view, update, add, delete the HR Support details.

QnA Maker

HR Support uses QnA Maker to respond to user questions; in fact, you must have a QnA Maker knowledge base to start using HR Support. 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.1. The bot has a conversational interface in personal (1:1) scope for end-users. It also implements a messaging extension with query commands, which the expert team can use to search for and share requests.

Tab

The tab is built in ASP.NET Core 2.1 and Bot Framework SDK v4 for .NET. The tab UI has a conversational interface in personal (1:1) scope for end-users. The Tab UI is implemented in React Js in which the data is fetched from Azure Table storage. The silent AAD implementation is done through adal.js

Configuration App

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 HR Support tab

Each help tile will have the following attributes:

  • Title (Mandatory)
  • Image URL (Mandatory - User can select images from dropdown)
  • Redirect URL (Mandatory)
  • Description (Mandatory)
  • Tags (Mandatory - Maximum 5 tags and with each tag should have maximum 20 characters and each tags must be separated by comma with no space between them)

Config users can add multiple tags to each help tiles. The tags should be in a single word with no space and is required to find out relevant help link based on user query.

Tag matching in the bot is performed based on ranking mechanism where each help title will be ranked based on the number of tags matched. In case of two or more tiles are assigned the same rank, the first tile by sequence among the list will be shown to the user.

For e.g. – User query is “What is the reporting policy for new hire during training period?”. Consider there are 3 Help titles each having list of tags like below (from HelpInfo table) –

Title Tags
Careers Training, Job, Hire
Leave Calendar Leave, approval, holidays
Agility Agile, Scrum, Reporting

Based on the ranking mechanism below, ‘Careers’ has the maximum tags matched and hence has highest rank which will be shown to end user.

Title Tags Tags matched Rank
Careers Training, Job, Hire 2 1
Leave Calendar Leave, approval, holidays 0 3
Agility Agile, Scrum, Reporting 1 2
Clone this wiki locally