Chatbot that automates booking on a calendar. The final product ended up being a proof-of-concept, but we were close to making a full demo by the end of the event.
TADHack is an event that challenged us with unfamiliar tech. We gathered as a team a week before the event to hash out the idea of the chatbot scheduler. After defining a practical scope of work, we set off familiarizing with sponsor tools (Telynx, Symbl.ai, and Subspace) before the weekend.
User input was important for our goal. Luckily, texting was possible using Telynx’s Text API. Our deployed backend (Flask in Kubernetes) was the broker for the backend services that ultimately sent responses to the user. The diagram below shows the interaction with Symbl.ai, our chatbot service, and the iCal generator.
The flow of conversation starts with the user texting our phone number. The conversation is negotiated by the chatbot (powered by Rasa) until the conversation can provide enough context for Symbl.ai to derive user intent – ultimately leading to a calendar date.
In an ideal scenario, a calendar booking would be scheduled after a confidence threshold from Symbl.ai was met. For our hack, we relied on Symbl.ai’s interpretability which conveniently provided a formatted date, given user input like “Next Wednesday”, “On Oct 31st”, etc. Once a date was provided by Symbl, we generated an iCal and provided that to the user.
Execution (step-by-step) of weekend
1st day: We started with local dev environment setup. Since Python was a major language decision, we set ourselves up with `venv`, a virtualized python environment. That way, we could get rid of “works on my machine” problems as well as have clean dependency management with `pip freeze`.
After getting up to speed, we started making API requests work with Telynx and Symbl. A Flask service was deployed in Kubernetes so Telnyx can reach out with their webhook. Some time after API requests started working, we realized that our payloads for Symbl.ai needed to have more conversational-like content than we previously assumed.
We huddled together and decided to make a small pivot, focusing on chatbot software to ‘kickstart’ the conversation with the user.
2nd day: We took some time in the morning to rectify a plan to deliver a minimum viable product (MVP) by the deadline. We needed to make the iCal feature, adjust some libraries, and research the newly discovered Rasa chatbot model. By the deadline, we couldn’t fully deploy the pipeline as an independent service. We did have functioning pieces, which is presented in this video.
This outcome is a building block for a booking app. We had a lot of fun learning as a team. TADHack helped our team build something that could bring real value as a potential product. A real product would most likely have a more robust scheduling toolset – possibly with notifications. The chatbot models would most likely need to be trained for industry-specific applications.