CSML updates
CSML updates

Prepare for upcoming NLP behaviour change

As a part of our current efforts to better integrate Natural Language Processing into CSML Studio chatbots, we are planning a change impacting bots connected with a NLU service provider (such as Dialogflow, Amazon Lex, IBM Watson…).

What is changing

Currently, if a chatbot user says something that is found to be an intent in your configured provider, the original text CSML event is transformed into a payload type of event, with a payload of IntentName (where IntentName is the actual name of the intent that was found by the NLU service). event.text will also contain the original text event as expressed by the user.

After this update, events matching an intent will have their payload formatted as intent:IntentName, where IntentName is once again the name of the intent that was found by the NLU service.

Why are we changing this behaviour

CSML developers have been complaining since the original release of the NLP feature that using the intent names was confusing in some cases where they could be mistaken for a regular text.

By prefixing found intent names with intent:, we believe that using NLU in CSML chatbots will be far easier. It will also allow us to color code intents in various places of the interface, which will eventually help with identifying them more quickly.


Finally, it is also part of a much bigger upcoming update that will allow you to directly train your NLU service, no matter what provider you are using, directly from CSML Studio.

How to find out if your bot is impacted

To check whether your bot is impacted by this change, visit the AI Rules > NLU Configuration panel. If your bot is running in Strict Mode, you are not impacted.

How to prepare for this change

To make sure that your bot continues working as expected, you should update your bot as follows.

  • If you are matching found intents with CSML flows in the AI Rules panel, every time you are using an intent in the left column, you should also add the new format in the list of triggers. For example, if you are matching IntentName with flow MyCoolFlow, you should also match intent:IntentName with the same flow. Then, save and build your bot.

  • If you are using the intent detection feature inside your flows (not as flow triggers but for example to help analyze what your users are responding to a question), you should adapt your code accordingly. There are many ways you can do that, but basically every time you have code such as:

if (event == "IntentName") { ... }

You can change it to:

if (event == "IntentName" || event == "intent:IntentName") { ... }

After the change goes live, you can then simply remove all the old mappings using the intent name directly and only keep the intent:IntentName syntax.

When does this change come into effect?

This change will be released gradually during the weekend of February 27-28th, 2021. To prevent any issue with your bot after this date, you should update your bots as described above before February 26th.

I don't know what to do, please help!

If you are unsure how to update your bot, please send an email to contact@csml.dev or reach out on Slack and we will guide you through the process.

New NLP and AI configuration tester

You can now directly test your NLP (Natural Language Processing) configuration inside CSML Studio and quickly see how your bot will react to user inputs.

Inside the new and improved AI & NLU section, you can now configure your favorite NLP service and configure rules for intent or sentence detection by the chatbot, and immediately test your settings in the right-side Tester panel.

With this new panel, you can try various user text inputs and see how the chatbot would react:

  • Is the NLU provider properly configured?
  • Has an intent been detected by your NLU provider?
  • Does this input trigger any specific flow in your bot?
  • What does the CSML event look like?

This improvement has been designed to speed up development times for developers who use Natural Language Understanding in their chatbot. We plan a few more features in the NLU space over the next few months, so stay tuned!

New debug keyword

You can now use the new debug action verb in all your bots to help with development. This keyword will output a message that is only visible in the test webapp (it is never shown in production channels) and will output a simplified version of deep objects to make sure that its structure is always shown, even if the data is very large.

do mylargeobj = { 
  "val": 1,
  "something": {"toto": "tutu" },
  "other": "hello",
  "onemore": [1, 2, 3]
debug mylargeobj


Moreover, in contrary to the say keyword, debug can also be used inside native CSML functions to print temporary variables and further help chatbot developers.

fn is_triple_even(num):
  do triple = num * 3
  debug triple
  return (triple % 2)

Lex V2 Support

A few days ago, AWS announced the launch of a completely new Lex V2, with better performance, a new console and brand new APIs. See Amazon's announcement here: https://aws.amazon.com/fr/blogs/aws/amazon-lex-enhanced-console-experience/

We have just added support for Lex V2 in CSML Studio. To use the V2, simply select "Lex V2" in the dropdown while setting up your Lex integration, and you are good to go!

To get started with Lex, we have published a guide on our blog: https://blog.csml.dev/amazon-lex-csml-studio/. This example uses Lex V1, but the concepts remain similar!

New release: v1.4.0 🎉

CSML just had a very big release today! Check out what's new in the release notes.

The main new feature is the ability to store your bots directly in your CSML Engine instance, which should make it easier to use in your own programs.

The language also got a few new interesting features:

  • support for the new continue keyword to conditionally "skip" loop iterations
  • your can now use the break keyword also in native functions
  • new event.match_array() method
  • conversations are not reset anymore when there is a change in the flow outside the current step

These changes makes CSML easier to use and more powerful. If you would like to see a feature implemented, you can add an issue in our github repository!

New NLP Providers: Rasa, Wit.ai, IBM Watson

You can now use CSML Studio with 3 new NLP providers: Rasa, IBM Watson, and Wit.ai.

CleanShot 2020-12-21 at 12.44.29@2x.png

With these additions, you can now analyze your users' inputs with all major NLP providers, covering the 7 most popular cloud and on-premise offerings.

The list of available NLP providers now contains:

  • Amazon Lex
  • Google Dialogflow
  • SAP Conversational AI (ex-Recast.ai)
  • Microsoft Luis
  • IBM Watson
  • Wit.ai
  • Rasa

with Github

You can now use Github to create an account in CSML Studio.

CleanShot 2020-12-21 at 11.49.24@2x.png

This sign-in option is especially popular with developers!

New: Create Callbots with CSML Studio

You can now create Callbots with CSML Studio! Callbots are chatbots that can be reached by phone. These types of chatbots are extremely powerful for call centers and support centers, as they drastically reduce the number of tickets that require a human agent to be involved, and at the very least help triage incoming requests before they can be transferred to a different service.

Creating a Callbot on CSML Studio is extremely simple. All you need is a phone number from our partner Twilio and a simple CSML chatbot. Then follow the instructions on our documentation!


Introducing: Flow Templates

CSML Studio's goal is both to make it as easy as possible to deploy chatbots at any scale on any channel, but also to make it as easy as possible to learn how to create rich and powerful chatbots.

There has always been a way to easily import ready-to-use chatbots, either by selecting one of the templates at the bottom of the screen during on the "My Bots" page, or by simply providing the URL to a chatbot on github or uploading a zip file of a fully-functional chatbot.

CleanShot 2020-11-15 at 12.45.56@2x.png

We are now introducing a new feature that makes it even easier to add new flows to an existing bot or creating custom bots, by selecting flow templates at the time of flow or bot creation. These templates include for example a "ticketing" or a "livechat" template that provide a solid starting point and that you can modify to better suit your needs. All of the flow templates provide a large number of comments to help you understand how they work.

CleanShot 2020-11-15 at 12.47.16@2x.png

We are also providing some tutorial flows that will help you better understand how CSML works. If you are just starting out, you should definitely install these two flows on your first chatbot!

Let us know what you think, and if there are some flow templates that you would like us to cover!

Better error traces

We have just released improved error traces on build events. Now, if there is an error in your flow, the console will point to the exact place where the error is located:

CleanShot 2020-11-11 at 09.37.08@2x.png

This makes debugging your flows much easier!