How Joan built a room booking chatbot using MindMeld
By Grega Pusnik
08/23/2019
Visionect is a tech company with more than 10 years of experience in designing low-power electronic paper-based solutions. Four years ago, we successfully created a device specifically intended to solve meeting room booking issues. Joan started its story as a room-scheduling system focused on simplicity, great user experience and design, and was quickly adopted by its user base. Today, Joan has become one of the leading solutions in the conference room-managing industry.
Thanks to advancements in communication technology the modern workplace is transforming rapidly, influencing the way we meet today. Meeting with someone on the other side of the planet no longer represents a challenge. And as communication gets easier, the number of meetings per employee rises.
But quantity must be paired with quality. Enabling a frictionless user experience with the tools employees are already familiar with is extremely important, especially with Generation Z entering the job market. As a group who lets virtual assistants handle most of their day-to-day activities, they expect similar interactions to be available in their workplace as well. This is why today’s office technology should be intuitive, accessible and, most importantly, support natural language.
Joan has already adapted to its younger users with Joanbot, a chatbot supported by two of the most popular communication platforms—Slack and Cisco Webex Teams. Joanbot can help its users find a free meeting room for their meeting, automatically syncing their personal calendar with the room calendar. And it does all of that without special commands, using only natural language.
There are a lot of great tools you can use out-of-the-box that process natural language. One of the best solutions out there is from MindMeld, a company that was acquired by Cisco. And, best of all, the solution is open-source. With the MindMeld Conversational AI Platform deployed on-premise you have full control over your project’s pipeline. Since Joan is a Cisco partner we were given the opportunity to implement their solution with our system before it was publicly available.
Usually, when we start working with a new product we first take a look at the documentation. When we saw that MindMeld’s documentation included not only instructions but also a variety of examples, we knew that our developers would have the first prototype built in no time.
Our first test with MindMeld’s solution was fairly simple: create a tool that will help Joan users find a free meeting room for a certain time period.
First, we had to connect MindMeld with the Cisco Webex Teams platform. Again, the documentation on the Cisco Webex and MindMeld sites was really helpful, and Joan’s Webex Teams bot was soon ready for step two.
During step two we wrote our own logic for the bot. Since Joan’s API was pretty much ready, we just had to write the logic that handled the intents coming from MindMeld NLP and forward them to Joan’s API.
The next step was figuring out how to train the bot to recognize natural language and translate it to something that our API could understand. The training was simple. We followed a nice step by step guide on how to do it, naming the domain ‘Rooms’ and specifying the intent under it as ‘Find me a room’. Below is the diagram representing that hierarchy.
NLP Hierarchy of the Joan MindMeld application
These are a few training examples we’ve used for this intent:
find me a room at {3pm|sys_time} for {10 min|sys_duration} joan get me a room {3pm|sys_time} Find me a room at {3 pm|sys_time} book me a room for my meeting tomorrow at {3pm|sys_time} for {10 min|sys_duration} I need a room for at {3pm|sys_time} for {10 min|sys_duration} get me a room for {tomorrow 6PM|sys_time} for {1 hour|sys_duration} What rooms are free at {4pm|sys_time} Find me a free room at {1 pm|sys_time} for {1 hour|sys_duration} Find me a free room for {tomorrow at 3pm|sys_time} for {1 hour|sys_duration} I need a room for {30 minutes|sys_duration} I need free room for {30 minutes|sys_duration}
We’ve learned that to make the bot a little more robust, it’s best to add plenty of phrases for each intent you’re trying to implement. The other important thing we’ve realized is that besides doing training for all the known intents, you also need to train your bot to recognize any unsupported ones. That’s why we added some more sample phrases from MindMeld’s examples.
After running the bot on our local environment we easily deployed it to the Kubernetes cluster, configured the MindMeld’s Docker file, updated our Helm charts and voilà—our bot was running in production.
Example interaction with the MindMeld-powered Joan bot on Webex Teams
To sum up our experience, I would say that the road to our first prototype might have been a bit longer than expected (due to the number of components needed). But MindMeld brought a lot of flexibility into play, as we were able to control the code and every step of the process. We also received tremendous help from MindMeld’s very responsive and supportive team, who quickly answered any questions we had during the building process.
The workplace is changing at a fast pace. As employees have more and more meetings, they need simple, human-like interfaces to help them manage their workplace from a trusted communication platform. The development effort needed to start building your own bot for multiple solutions such as Webex Teams, Slack, MS Teams, Webex Assistant, or Alexa is getting lower and lower, and bots are getting more and more human-like.
An exciting future is in front of us and, for anyone looking to make their meetings better, Joan is just a chat message away.
Grega Pusnik is a Technical Lead at Visionect