CSML is an open-source programming language designed to be the easiest way to develop any chatbot of any type as easily as possible. We have spent many months crafting this language to remain as simple as possible to use and learn, even for non-developers, and as powerful as possible to create any rich conversational experience. We have been able to test it on large-scale chatbots handling millions of conversations all over the world, on many different channels, and we know that it is now scalable and production-ready, both in the version you can build from source on github and on CSML Studio, the official online CSML development environment.
This v1 release comes with loads of features that have been thoroughly tested by our beta-testers over the past few months. Let’s go through some of the main features, of the language itself or of CSML Studio.
Easy and powerful syntax
CSML is designed to be as simple as possible to learn yet extremely flexible, allowing for rich conversational experiences in all situations. For example, CSML allows you to declare texts, images, videos, links, buttons, cards, carousels with a single keyword. It handles conversational logic in a simple, descriptive way, and does all the heavy lifting of variable declaration/initialization/typing for you. It is kind of magic 🧙♂️.
The simplicity of the language makes it extremely quick to learn. There is virtually no learning curve.
In the past few months we have been able to teach CSML to developers and non-developers alike. Developers enjoyed working with text instead of graphical interfaces as is customary for most of the chatbot platforms out there today, while non-developers enjoyed the experience of learning to code in just a few minutes. We have taught CSML to children, grand-parents, students, company executives with no prior coding background and all of them were able to create and deploy their own complete chatbot in less than an hour.
say "Hi there!" say Image("https://media.giphy.com/media/cMso9wDwqSy3e/giphy.gif")
Try the above in a CSML chatbot for instance!
Reducing conversational complexity
The usual approach of most players in the conversational space is to try to tightly link the conversation with Natural Language Processing capabilities. We think that this is simply not a good approach, at least for 90% of chatbot users. The goal of a chatbot is to keep your user engaged and eventually get them to perform the action that you designed the chatbot for (buying a product, resolving a ticket automatically, etc.).
Instead, CSML focuses on making the conversation extremely easy to navigate . You can goto one place or another, remember things, do stuff. Trying to solve conversational problems with machine learning only, although it remains a very popular idea as shown in movies such as iRobot or Her and drives a lot of likes on LinkedIn posts by “experts”, remains a research area and costs a lot of time and money to get more or less right. CSML is pragmatic in its approach and allows you to focus on what matters: your users, your data, your product. (And by the way, if you do need NLP in your chatbot, CSML also has you covered, see below.)
On the other end of the spectrum, there are also a lot of «bot builder» products on the market. They are a bunch of drag and drop graphical interfaces that all look kind of the same. While those are fine for simple proofs of concept, once the chatbot grows it becomes impossible to maintain, while all developers are most happy with text-based solutions, especially when they are expressive and easily readable. Text can be exported and later re-imported, images don’t. Text can be cut, moved, replaced, duplicated, refactored, images can’t. Text can easily be versioned and allow for group work with very common and standard tools, images can’t.
Graphical interfaces are good for throwable stuff, but will inevitably end up with an unsolvable vendor lock-in problem that may cost you a lot down the road. With CSML, you get the best of both world: something easy to prototype yet infinitely scalable.
Conversational context handling
One of CSML’s biggest strengths is its simple memory and context system. With CSML v1, your chatbot will automatically gather informations about your user that it never forgets and that you can forever use in your scripts. It also knows quite a it about your user’s context before the conversation even begins, if necessary.
CSML handles user context, and short-term and long-term memory slots fully autonomously, with an easy-to-use API. It just “knows” things when you need them.
In this age where customer data is so important to your business, CSML has got you covered!
CSML Studio or Open Source?
There are currently two ways to develop a chatbot in CSML: you can either install CSML Engine on your own machine using one of our recommended open-source methods on github (using docker or compiling from source), or you can simply use our free online code editor, CSML Studio.
CSML Studio is a full-featured chatbot development environment for beginner or advanced developers alike. No installation required, you can simply login, start coding and deploy your chatbot.
There are several ways we made CSML extremely secure. The first is that CSML is written in Rust, a language known for being very safe and secure with many protections against memory issues that are handled at compile time. Also, both in CSML Studio and the open-source version, we make use of current state-of-the-art encryption algorithms. With the open source version, you can set your own encryption key, which will render your data unusable to anyone who tries to decipher it. Moreover, in the managed version of CSML available with CSML Studio, we make use of the strictest possible policies for host the data securely, enforcing strong firewalls and private networks, not letting anyone access data directly, and obviously encrypting data both at rest and in transit. We also follow the best practices and highest security settings for the exchanges with all channel and third-party providers that we integrate with.
Finally, if security is your number one priority above everything else, know that CSML can run on-premises or even completely offline, making it impossible to reach from the outside world.
We strongly believe that CSML is one of the most secure chatbot solutions around, and our commitment to publishing its sources makes it possible for anyone to verify.
Bring your own NLU
By separating the roles and responsibilities of Natural Language Understanding and Conversational Engine in your chatbot conversations, CSML makes it possible to integrate with any NLP product or service on the market today, even custom and self-hosted libraries.
For the release of CSML v1, CSML Studio even provides 1-click integrations with all the leading NLP services: you can integrate your chatbot with your existing Dialogflow, Amazon Lex, Microsoft LUIS, SAP conversational AI or even your self-hosted Rasa chatbots (🔗 docs).
One last thing: Livechat
By being so extensible, CSML allowed us to build a much, much requested feature just in time for the v1 launch: the ability for a user to talk to a human agent directly from within the chatbot conversation, with no more than a simple configuration. We currently support Gorgias as a livechat backend solution, but other platforms are coming (Front for example, or the excellent Chatwoot open-source product).
This feature is only available on CSML Studio as it is merely an implementation of the architectural principles of CSML: if you decide to go with an open source CSML deployment, you can build the same capabilities yourself with your favorite livechat vendor (🔗 docs).
And many more…
Frankly, this v1 is so packed full of features that I can not list them all here. I encourage you to get a free CSML Studio account to try CSML for yourself. You can also reach out to me directly for a personal onboarding session if you would like: email@example.com.
At Clevy.io, we are extremely proud of the work we have done in the past few months to be able to give this amazing project to the community. Chatbots are awesome tools, and we have many ideas on how to make chatbot development simply better.
I’m looking forward to seeing what the community will build with CSML!
Happy coding! I hope you enjoy this new programming language as much as we do! 🥳