Coronavirus Chatbot
Coronavirus Chatbot is a Microsoft Healthbot-based chatbot, focused on COVID-19 issues.
This repository stores issues, documentation, and serves as the source for the content that goes into the chatbot. As the chatbot is integrated into the VA.gov infrastructure, other code for the chatbot lives in other locations, including:
Back-end endpoints in vets-api
Front-end widgets in vets-website
Front-end html in vagov-content
Overview and Terminology
The Coronavirus Chatbot offers an interactive, decision tree-based interface that provides website users a different way of accessing content that the VA has specific to the coronavirus response. It is based on the Microsoft Health Bot Service, which is a SaaS application, which is itself built upon Microsoft's Bot framework.
Integration Endpoints
Name | Description | Managed by | endpoint |
---|---|---|---|
Healthbot token fetch | Chatbot team | ||
Healthbot token endpoint | Healthbot endpoint to get token to access healthbot over the web. Requires a secret. Called by VA.gov endpoint. | Managed by Microsoft | https://directline.botframework.com/v3/directline/tokens/generate |
Healthbot conversation endpoint | Endpoint used during the conversation by the bot webchat framework | Managed by Microsoft | https://directline.botframework.com/v3/directline/conversations |
Healthbot management API | Used to manage/update scenarios | Managed by Microsoft | https://us.healthbot.microsoft.com/api/account/va-cva-prod-healthbot-dl0pbmv/scenarios |
Additional architecture information can be found in the architecture description.
Required Configuration
The main config is stored in the devops repo here. It includes secrets (stored in Credstash) that are used to get access to the healthbot.
The other "config" is the content of the chatbot itself. For now, the 'master' version of the content (which is broken into several scenarios) is stored in the dev instance of the chatbot. We then have Jenkins jobs which migrate these scenarios to staging and production instances of the healthbot, using their API.
Some of the content is authored in markdown files, stored in the covid19-chatbot
repository. These markdowns are transformed to javascript and then uploaded manually to the healthbot authoring tool, to become part of the 'scenarios' which drive the chatbot.
Known External Dependencies
This integration relies on Azure, the Microsoft Health Bot Service, as well as the CDN at https://cdn.botframework.com/botframework-webchat/, which serves up the javascript used by the webchat bot framework.
Troubleshooting
Check to see if the chatbot is responding on https://staging.va.gov/coronavirus-chatbot . As this uses mostly the same endpoints from the Microsoft side as production, if staging works but production doesn't, that suggests either the VA.gov hosted API is having trouble, or the specific PROD instance of healthbot is misconfigured.
Check a different browser - sometimes cookies/caching/etc can cause an issue with the chatbot.
Check javascript console and network console, see if any javascript is having trouble loading.
Outage Status and Maintenance Windows
There are no standard maintenance windows.
Service Level Agreement
There is an SLA for the bot framework that ensures 99.9% uptime.
Escalation Procedure
Notify the Chatbot team at #covid19-chatbots channel or using the contacts below.
The chatbot team will reach out to Microsoft if an escalation is needed. If needed, a support request can be lodged from within the healthbot management portal at https://us.healthbot.microsoft.com/account/va-cva-prod-healthbot-dl0pbmv . (Note: You will need to be granted credentials to access this portal).
Contacts
Role | Name | |
---|---|---|
Architect | Michael Chelen | |
Tech Lead | Karl Brown | |
Tech Lead | Katie Ho | |
Developer | Shefali Nayak | |
Product Owner | Kaeli Yuen | |
Solution Architect | Aaron Barth | |
ECSO Contact | Charles L. Solomon-Jackson | |
ECSO Contact | Joseph A. Fourcade |
Help and feedback
Get help from the Platform Support Team in Slack.
Submit a feature idea to the Platform.