When you are looking to build a chatbot on, say, Facebook Messenger, you will find that there are many chatbot platforms out there to choose from. If you haven’t built a chatbot before, it’s hard to see the difference between them. They all claim they are really easy to use, and the sky is the limit.
Only when you actually try to build a chatbot that is more than a gimmick, you will start to notice the differences between the various platforms.
This is actually how Botsquad got started. Initially, we began creating chatbots using Chatfuel, like so many others. It was really easy to get started and we got a prototype up and running quickly. But as the dialog complexity increased, we soon found our development workflow becoming slow and cumbersome. And because the platform only supports very limited logic, we also had to run a NodeJS backend to implement the more complex decision making.
Having this experience, we figured perhaps we should just use one of the programming frameworks for bots and also program the dialog flows. Having the power of a real programming language was a breath of fresh air! What we lost though, was the ability to directly involve our customer in the development process. They were not programmers and changing anything, including the bot’s contents, had become a programmers job.
After looking for other alternatives, we soon realized that the “no coding required” platforms were great prototyping tools but could not scale to where we wanted. The programming frameworks, on the other side, did scale, but came with a lot of boilerplate, code and hosting DIY (Do It Yourself).
And so, the idea for Botsquad was born: to provide an easy but powerful one-stop-platform for building and managing chatbots, or, as we like to call them, Conversational Apps.
So how is the Botsquad platform different?
Having experienced the limitations of visual programming first hand, we knew that we needed a “real” programming language. On the other hand, to involve non programmers it had to be an easy to learn language, specifically designed for modelling conversations as well as performing automation tasks.
What we came up with was Bubblescript: an easy to understand, domain specific language (DSL) with two main building blocks: dialogs to model conversations and tasks to perform automation and integration tasks.
In the Botsquad studio, users can edit Bubblescript code “live”, while interacting with the bot at the same time, inspecting its variables and tracing the execution. Publishing a bot to a channel (the web, Facebook Messenger, …) is just a few button clicks away.
Technically, Bubblescript is built on top of the Elixir programming language, inheriting both a rich language set as well as the strong features of the Erlang VM. We found that conversations map really well to the actor model the Erlang VM implements. This has allowed us to implement a powerful event system, allowing multiple users and even multiple chatbots to interact and coordinate on performing live tasks or participate in multiplayer games.
What about the Natural Language Processing (NLP) platforms?
So far we haven’t talked yet about the “elephant in the room”… Google, Facebook, Amazon and Microsoft are all providing services that allow you to process a user’s text messages and speech using Artificial Intelligence (AI).
The way you model conversations in these systems is to provide a large set of example utterances for every intent your would like the service to recognize. Next, you set context variables to match on where in the conversation the user is, and what the next likely intents could be.
We also believe Machine Learning has a very big impact on how we teach computers fuzzy human language. Out of the box we have embedded several open source NLP (Natural Language Processing) toolkits: spaCy to match user intents based on example sentences; and Ducking for automatic entity extraction. Our platform is open to integrate with hosted NLP platforms and we have experience with integrating Google’s Dialogflow for instance.
Our experience with doing so also taught us that these NLP platforms are just a part of what you need to build a good conversational user experience. Our aim is to provide an open integration that allows you to choose your NLP platform and to include the missing parts.
How is this relevant for me?
Given you have gotten this far into this post you must be interested in building conversational experiences or are already doing so. One way or the other you will experience that “no coding required” doesn’t hold true as you progress. At some point you will hit the complexity wall. Before you do make sure to have a plan and explore ways to deal with it…
Conclusion: Are you looking to build a chatbot that involves more than a few short dialogs, one that needs to perform complicated backend integrations, or even needs to interact with multiple users? Give the Botsquad platform a try today!