Generic recommendations for specific types of insight
Some types of insight, eg IP block detected, can have generic recommended solutions. This is an easier alternative than customised recommendations.
This requires that insights are grouped by type, and that certain types can have associated with them shared, generic, recommendations. Eg for a blocked IP, this could include an explanation of what it means, how RBLs work, and generic steps for getting the block removed.
I propose that the explanation and advice be stored and retrieved from a centralised remote source like a wiki, to make it easier to edit and improve collaboratively
This epic is a stepping stone towards more customised recommendations in future epics.
- As an admin
- When I use the webui
- And I see an insight about a local problem
- And I view the full insight information
- Then I should see / link to information explaining this type of problem and generic advice for resolving it
- When I click on the link, it should open on a new tab/window and a tracking event is triggered
- If an insight does not have a recommendation, no link/icon should be shown for it.
@rudolfi could you please provide a design for it? Please ask @suelaP about more details, as she has such information.
Implementation suggestions
The recommendations would be simple links from insights to specific locations on our knowledge base. It should also be simple to add new recommendations, and it should be possible to be done by a non-developer.
A way to achieve it is to have them encoded in a json
file, checked and embedded into the application during build time.
Such file would have a format similar to this (DRAFT), so please @donutloop and @samtuke and @suelaP post your comments and ideas/improvements about it.
[
{
"link": "https://kb.lightemter.io/KB0001",
"ids": ["message_rbl_Yahoo"],
},
{
"link": "https://kb.lightemter.io/KB0002",
"ids": ["introduction"],
},
]
Then, when calling /api/v0/fetchInsights
, it should return something like this:
[
{
"ID": 11,
"Time": "2020-10-28T11:36:18Z",
"Rating": "bad",
"Category": "local",
"ContentType": "message_rbl",
"Content": { "some content here" }
"help_link": "https://kb.lightemter.io/KB0001"
},
{
"ID": 10,
"Time": "2020-10-28T11:36:18Z",
"Rating": "bad",
"Category": "local",
"ContentType": "local_rbl_check",
"Content": { "some content here" }
"help_link": "https://kb.lightemter.io/KB0042"
},
]
The additional field on each insight is help_link
. It's important to note that such link should not be saved in the database, and the connection between the link and the insight should happen during the fetchInsight
call, allowing the recommendations to change over time and be valid for old insights.