Building an AI-powered workplace ticketing system on MongoDB Atlas at Spoke
January 18, 2019 | Updated: February 1, 2019
What’s the wifi password? How do I connect to the printer? What’s the access code for the downstairs door?
At every company, workplace teams are flooded with these types of questions on a daily basis. Support ticket platform, Spoke, aims to drastically simplify managing and responding to these time-consuming queries. But Spoke goes beyond traditional ticketing with their friendly, AI-powered chatbot that gives workplace teams hours of time back as it automatically responds to questions on Slack, email, SMS, and web. And the more employees ask, the more Spoke learns.
As Senior Software Engineer Nate Rook explains, “Spoke's special sauce is really how good we are at answering questions and directing people to the right place. And that's where our AI and machine learning comes in. We create a unique model for each company that signs up to Spoke to be able to answer their specific questions.”
These models are stored in MongoDB, which is a natural fit for Spoke’s data model. Spoke deals with conceptual objects like knowledge base articles that can come in many different forms, with different metadata for each type. For example, a Link article might contain the URL of the source article, while a Text article contains formatted text and annotations. With MongoDB, it’s easy to represent both of these entities as documents in a single collection, rather than having to define multiple tables.
The team also stores their chatbot callback maps in MongoDB, which helps maintain unique sessions. When employees are conversing with the bot, the current state of a conversation is represented as a document or “ChatSession”. Since the ChatSessions are ephemeral, the team takes advantage of MongoDB’s flexible data model and can quickly roll out new bot behaviors without time-consuming schema changes or breaking existing code.
At first, Spoke used Compose.io to manage their MongoDB deployment, but as the company grew they had issues scaling within the stringent tiers. After a particular issue involving a 5-megabyte query that took them days to debug, the team started to look for another service where they could have more visibility and prevent issues before they happen.
Making the move to MongoDB took just fifteen minutes using the Atlas Live Migration Service and since they’ve switched the team has seen a significant increase in productivity, with more time to focus on developing Spoke’s core features rather than performing database operations and management tasks. They also went from tracking just 3 metrics to nearly 30 metrics, including CPU load and task processing times. With Performance Advisor’s integrated alerts and the optimization suggestions, the team can now anticipate and prevent issues before they arise.
We used to spend eight engineering hours once a week or so trying to figure out what was going on, and that doesn't exist anymore.Roopak Venkatakrishnan, Software Engineer, Spoke
With MongoDB’s flexible data model and powerful indexes, the Spoke team is confident about tackling their ambitious roadmap that includes personalizing answers based on an employee’s location and providing support teams with more contextual information. Most importantly, as Nate states, “Now that we're on MongoDB Atlas, it just works without us having to touch it. So we can spend our time making Spoke better.”