Assistify promises to answer questions quickly, easily and reliable. So two of the most important core interactions are:
ask a questions
get an answer
This issue focus on the first part asking a question.
Motivation
Many people think of Assistify when they have a problem and get stuck. Accordingly, the first goal of a questioner is to bring his question into Assistify. Therefore one of the most important goals is the reduction of the cognitive effort a questioner has to spend in order to ask a question.
How do people ask?
The most simple way to ask a question is by speech or by typing the question into a simple input field (if there is no speech2text component). All other actions like entering metadata, selecting options, choosing an existing question are increasing the effort the user has to spend for getting help.
Why is classification needed?
Regardless of how far artificial intelligence is developed, the question must be classified. Because without a classification, the solution space (potential contact persons, solutions from the past, etc.) can not be limited. If the machine is not (yet) able to carry out this classification (lack of data,
insufficient text information, slang or dialects, ...), then a manual classification must be done by the human. Accepting that, we want to make it as easy as possible to get the user along with the classification.
Classification approach
Workflow perspective
User types in his question
Selects a topic (*)
a. Assistify offers the best fitting topics
b. If there is no match the user needs to browse all options
Starts the conversation
(*) If the user still has not reached his destination, he needs help or wants to complain.
Integration perspective
Bring the help into the users context:
Integrate into Rocket.Chat
Integrate into web pages
Integrate into mobile apps
Integrate into third party (SAP, Wiki, ServiceNow, Salesforce, ...)
UI perspective
1) Ask your question
While entering the question the TagCloud brings those topics into the front, which are potentially best fitting to the question
2) Select a topic
The best guess (first topic suggestion) is taken as default value for the auto suggest input field
On focus the value of the auto suggest input field is selected
On focus the auto suggest list shows the 5 best matching topics
On keypress the auto suggest list shows only those matches that contain the given input String
Selecting a list entry sets the value and closes the list of suggestions
The auto suggest list should support keyboard interaction as well as selecting entries by click
3) TagCloud
The TagCloud changes the order, the sizing and highlights while the user interacts with the question field or the topic field
By selecting a topic from the tag cloud the value of the input field is set to the selected value
If the user actively selects a topic value the tag cloud might be reordered
4) Send to Assistify
If question input field or the topic input field is empty the "post" button should have a grey color to signal the "disabled" state
Only if the question input field and the topic input field are not empty, the "post" button is active and can be used
By clicking the "post" button the question is being send to Assistify
5) Topic not found
If the user gets stuck by selecting the right topic, there should be offered a help function.
By hitting the "help" button, a modal dialog opens that allows to start a direct conversation with one of the "customer admins"
If none of those admins is online, the user should be able to leave a message anyway
Data perspective
Using information that exists to narrow down the options for the category
question the user actually is asking (minimal user input)
explicit description / meta data of possible topics
maybe more e.g. related user profiles (users from private conversations)
System perspective
API perspective
| Path | Method | Description | Response |
|------------------------------------------------------------------------------|
| /classification | GET | Returns a topic list | a ordered list of topics |
| /classification | POST | Creates a new topic | the topic id |
Authentication perspective
If the Auth takes place within Smarti and not in RC. A user who is present in several teams (RC installation). Suggestions, classification, and other help services can be consumed across several domains.
Topics
A topic in the manner of Assistify is an abstract concept used to sum up particular issues, problems or questions. A special conversation within Assistify is the request/question, each of them is associated with at least one topic. Currently topics are created and managed within Rocket.Chat. Similar to a room a topic opens a discussion channel for experts for discussion. There is not much meta data coming along with a topic today. In order to classify questions automatically it might be necessary to edit and manage topics.
In most cases topics are already described in external systems like wikis, portals, CMSs or a social intranets. In oder to prevent redundancy in business Assistify should obtain meta data, descriptions and other information about the topics from third party applications.
Therefore Assistify should feature the configuration of references per topic. A crawler or something similar could then fetch the relevant meta description from the referenced systems.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
[WIP]
Scope
Assistify promises to answer questions quickly, easily and reliable. So two of the most important core interactions are:
This issue focus on the first part asking a question.
Motivation
Many people think of Assistify when they have a problem and get stuck. Accordingly, the first goal of a questioner is to bring his question into Assistify. Therefore one of the most important goals is the reduction of the cognitive effort a questioner has to spend in order to ask a question.
How do people ask?
The most simple way to ask a question is by speech or by typing the question into a simple input field (if there is no speech2text component). All other actions like entering metadata, selecting options, choosing an existing question are increasing the effort the user has to spend for getting help.
Why is classification needed?
Regardless of how far artificial intelligence is developed, the question must be classified. Because without a classification, the solution space (potential contact persons, solutions from the past, etc.) can not be limited. If the machine is not (yet) able to carry out this classification (lack of data, insufficient text information, slang or dialects, ...), then a manual classification must be done by the human. Accepting that, we want to make it as easy as possible to get the user along with the classification.
Classification approach
Workflow perspective
(*) If the user still has not reached his destination, he needs help or wants to complain.
Integration perspective
Bring the help into the users context:
UI perspective
1) Ask your question
2) Select a topic
3) TagCloud
4) Send to Assistify
5) Topic not found
Data perspective
Using information that exists to narrow down the options for the category
System perspective
API perspective
Authentication perspective
If the Auth takes place within Smarti and not in RC. A user who is present in several teams (RC installation). Suggestions, classification, and other help services can be consumed across several domains.
Topics
A topic in the manner of Assistify is an abstract concept used to sum up particular issues, problems or questions. A special conversation within Assistify is the request/question, each of them is associated with at least one topic. Currently topics are created and managed within Rocket.Chat. Similar to a room a topic opens a discussion channel for experts for discussion. There is not much meta data coming along with a topic today. In order to classify questions automatically it might be necessary to edit and manage topics.
In most cases topics are already described in external systems like wikis, portals, CMSs or a social intranets. In oder to prevent redundancy in business Assistify should obtain meta data, descriptions and other information about the topics from third party applications.
Therefore Assistify should feature the configuration of references per topic. A crawler or something similar could then fetch the relevant meta description from the referenced systems.