Triggering A Specific Dialog In Microsoft Bot Framework Composer

Ensure Your User Reach The Right Dialog & Can Cancel Or Digress

Cobus Greyling
4 min readApr 28, 2020

--

Introduction

Building agility into a chatbot often ads much overhead, but is integral to the success of the product…

What surprised me about Composer is the capability to create interruptions in dialogs with ease. These interruptions can be seen as a form of digression. Another aspect I cover here is how easily a global help dialog can be established.

Lastly I cover the linking of intents to a journey sequence or dialog as Composer refers to it.

Basic Overview

The Microsoft Bot Composer Framework interface is very minimalistic. On the left is a menu of key components used to craft a conversational UI. Bot Responses can be sued to create dynamic bot dailogs for responding to a user. Create dynamic response bot wording based on variables and data.

There is a blue button to restart your chatbot once changes have been made. The Emulator can be launched directly from Composer.

Bot Framework Composer User Interface

The Authoring canvas is where you build out your dialog sequence. Different actions are used to constitute the dialog. The Properties Panel holds the details of each action. You will find much of your configuration takes place here.

The intent for triggering the dialog is linked to the user input and is covered in the next section.

Triggering A Journey

Triggering a dialog or journey sequence is done in an unique way within Composer. Your starting point is creating a Language Under standing segment which is based on a LUIS model, or Regular Expressions.

From here we create a trigger. This trigger is linked to the Language Understanding (LU) you created.

Language Understanding (LU) is used by a bot to understand language naturally and contextually to determine what next to do in a conversation flow.

Composer: Linking Language Understanding To The Right Conversational Sequence

In the Bot Framework Composer, the process is achieved through setting up recognizers and providing training data in the dialog so that the intents and entities contained in the message can be captured.

These values will then be passed on to triggers which define how the bot responds using the appropriate actions.

LU has the following characteristics when used in the Bot Framework Composer:

  • LU is training data for LUIS recognizer.
  • LU is authored in the inline editor or in User Input using the .lu file format.
  • Composer currently supports LU technologies such as LUIS.
Creating Regular Expressions To Invoke Journeys

This example from the MyRobot project shows the menu where you can select LUIS or a regular expression. As you can see I have create three Regular Expressions: weather, help and cancel. Composer will spot these words in the user conversation and direct the dialog accordingly.

You can imagine on a smaller scale this can work quite well, but as soon as the chatbot scales this approach will hit its limitations. Subtle differences in user intent will be missed.

Trigger Linked To Regular Expression Intent

Here I create a trigger based on the intent created. You can see that the trigger can also be set by other conditions.

Simplest Trigger Invoking A Dialog or Journey Called getWeather

Once the trigger is set, it can be linked to a dialog to be invoked. Pre-processing can be done prior to calling the journey.

Cancel

One feature I found helpful is a global cancel option. Anywhere within the conversation the user can decide to cancel and end the dialog.

A Single Node Node Dialog To Cancel the Current Dialog

This is helps to allow breakout from any journey sequence without having to add it all along the conversation.

Digression

Allowing interruptions in your input actions gives you the option to let your user digress. The digression can be as short as one action lending support to the user.

Allow A Form Of Digression In A Dialog

It is a very convenient way to temporarily break out of a sequence or dialog and return to the exact same point in the conversation.

Conclusion

These are the fundamentals of creating a basic conversational interface with Composer. Initially this approach seems strange, but once you have stepped through the process a few times it starts making sense.

--

--

Cobus Greyling

I explore and write about all things at the intersection of AI & language; LLMs/NLP/NLU, Chat/Voicebots, CCAI. www.cobusgreyling.com