Content Integration - Brainstorm
Overview
Moveworks Answers skill enables the Moveworks bot to answer user’s questions directly in chat, by understanding the questions and responding instantly with answers containing the most relevant article snippets, links to articles in the knowledge base, or links to external articles taken from trusted knowledge sources. The Moveworks Brainstorm Quickhelp integration is leveraged by the Moveworks Answers skill to import content into the Moveworks Enterprise Cache so it can be searched by the Moveworks bot in real-time.
Supported Content Types
The Moveworks knowledge ingestion engine typically works on ingesting “HTML” tags and thus breaking the whole page into a smaller sections. This process is known as Snippetization.
The key user experience in resolving a user query is to provide the most relevant snippet to that question.
However, with Brainstorm Quickhelp Moveworks uses the asset description for snippetization and asset title as page title here as Brainstorm does not support returning the full HTML content of a page through their API.
High level Architecture
Our enterprise cache stores the knowledge articles and generate relevant knowledge snippets by understanding the content. We also store the redirect urls to let the end user to go the UI and read the article.
Authentication
Brainstorm uses ocp-apim-subscription
key authentication to authenticate with the platform. This authentication key is created for the service account which doesn’t have any expiry date.
There are two kinds of key which are used in Brainstorm, Get more details on generating this keys in this doc here.
These are both required us for authenticating with the integration.
curl --location 'https://qhapi.quickhelp.com/v1/Content/Assets?Ocp-Apim-Subscription-Key={{subscription key}}' \
--header 'Ocp-Apim-Subscription-Key: {{subscription key}}' \
--header 'Authorization: {{api key}}'
Note: Authorization key is optional and isn’t required for Moveworks.
Ingestion
Moveworks uses the Brainstorm Quickhelp Content Assets API to ingest knowledge assets from the platform.
How does Moveworks fetch content assets from the Brainstorm API
Which API do we use to fetch knowledge content?
Example Request
curl --location 'https://instance.quickhelp.com/v1/Content/Assets?Ocp-Apim-Subscription-Key={{subscription key}}' \
--header 'Ocp-Apim-Subscription-Key: {{subscription key}}' \
--header 'Authorization: {{api key}}'
Example Response
[
{
"assetId": 99010,
"assetTitle": "Classic Stream: Navigate Microsoft Stream",
"assetDescription": "If you're new to Microsoft Stream, start here to learn your way around.",
"type": "Video",
"typeId": 1,
"durationInSeconds": 81.4,
"duration": "00:01:21",
"visibility": "Visible",
"dateAdded": "06/04/2020",
"lastModified": "12/12/2022",
"resources": 0,
"questions": 0,
"categoryId": 8400,
"categoryTitle": "How to use Microsoft Stream",
"topicId": 1352,
"topicTitle": "Classic Microsoft Stream",
"publisher": "BrainStorm",
"thumbnail": "https://quickhelpassets.blob.core.windows.net/microsoftstream-d1510889077/637804827867258772_STRM_Navigate_Microsoft_Stream_000001.jpg",
"url": "https://app.quickhelp.com/aresmgmt/skills/99010"
},
{
"assetId": 99013,
"assetTitle": "Classic Stream: Meet Stream (Classic) Wrap-Up",
"assetDescription": "Having completed the \"Meet Microsoft Stream (Classic)\" course, let's jump into using Stream.",
"type": "PollAssessment",
"typeId": 3,
"durationInSeconds": 120,
"duration": "00:02:00",
"visibility": "Visible",
"dateAdded": "06/04/2020",
"lastModified": "12/12/2022",
"resources": 0,
"questions": 2,
"categoryId": 15281,
"categoryTitle": "Assessments",
"topicId": 1352,
"topicTitle": "Classic Microsoft Stream",
"publisher": "BrainStorm",
"thumbnail": "https://quickhelpassets.blob.core.windows.net/microsoftstream-d1510889077/0_637268968857144703",
"url": "https://app.quickhelp.com/aresmgmt/skills/99013"
}
]
Access Control
Moveworks will ingest Pages and Manuals which are available to all user.
The articles which Moveworks fetches should be categorized as “Visible to all”. It will then pass the filter in the query parameter so we only fetch all published content assets.
End user experience
When bot gets relevant content asset for the user Inquiry (Success Case)
If there is article which can solve the user’s query the bot will present the answer in the following format with a redirect heading and a relevant knowledge snippet.
Updated 9 months ago