Photo by Héctor Martínez on Unsplash

User Input Options For Microsoft Bot Framework Composer

Examples Of How Composer Creates Structure From Unstructured Conversational Input


There are a number of tools to create conversational interfaces currently available. One of the aspects of a conversational interface is the dialog flow or state management.

This is where the dialog state and dialog turns must be manged, as the conversation moves from node-to-node.

There are various approaches to this problem…

These approaches can generally be divided into three groups.

Approaches To Dialog Development

  • Machine Learning (ML)
  • Native Code
  • Graphic User Environment

Approaches have advantages & disadvantageous.

Advantages are evident at the beginning.

Disadvantages present themselves towards the end.

RASA Interactive Learning & Conversation Visualization.

Machine Learning

Native Code

These articles will help you with the setup and get started with Bot Framework Composer & the emulator…

IBM Watson Assistant is an interesting case, as it combines a graphic user interface and native code for dialog management. Within Watson Assistant’s GUI you can add JSON payloads etc.

IBM Watson Assistant — Dialog Development

Once you have created your dialog within the GUI, you will most probably need a mediation layer which will necessitate native code.

Graphic User Interface

The disadvantageous and problems present themselves when the the conversational environment needs to scale or more functionality needs to be added.

Advantages of having a GUI:

  • Rapid ramp-up for developers and designers in acquiring necessary skills
  • Ease of presentation of concepts, designs and basic architecture
  • Visual inspection and representation
  • Training new team members
  • Merging of design, prototyping and development
  • MVP conception and development is fast

Possible Disadvantageous:

  • Development investment is made in propriety code and environment
  • Development Environment Limited to functionality and components available
  • Scaling in a corporate environment can be troublesome
  • Overhead in duplication and workarounds

Microsoft Bot Framework Composer

Dialog Invocation

Invoking A Dialog Via Regular Expressions

Composer can also be fully integrated with LUIS. However without any NLP/NLU you can build a real-world chatbot with various options for user input. Which is fairly robust and resilient.

Composer also allows for conversations or dialogs where the user input is governed by input types defined by the developer.

This gives you the ability to structure the instructed input without making use of machine learning or Conversational AI.

To to my point at the beginning, that composer is a ideal route for anyone who wants to develop a chatbot…

But without any entry barrier of licensing or deep programming skills. Your dialogs can be built out later to incorporate LUIS.

User Input Types

Dialog Canvas With Conversational Flow And Conversational Nodes

There seven input types you can defined…

Number Input

The Chatbot Expecting An Input Number

As you see in this example, the user can enter the number embedded within a dialog, and composer can extract the number from the text.

A default value can be defined, with error messages and retries.

Validation rules can be set, for instance if the number input must be a certain length; length(this.value)==5.

These regular expression implementations create the impression of contextual awareness.


Confirmation Options With Synonyms

Firstly, this is handy to confirm an order any other dialog you want the user to agree to.

But you have the opportunity to present the choices to the user graphically.

And you can create synonyms to each option the user can quickly respond to by just entering the synonym in text. Again, this gives composer and appearance of being NLU capable, which is not at this stage.

Multiple Choice

Multiple Choice Dialog

This dialog is again more structured and ideal when concluding a transaction and you want to introduce structure into the conversation to bring a sense of order and reassurance to the user.

Where graphics are not possible by virtue of the medium not making provision for it, the menu can be number driven.

Date & Time

Quite often in chatbot development, what is hard in theory can be easy in practice. And what is easy in theory can be very hard practice.

Date and time entry is a case in point of the latter.

It can be hard to get date and time via a highly unstructured interface like natural language.

The Date Is Automatically Detected From The Utterance: “in two weeks time”

When the chatbot asks for a date, the user might respond with something like “next week Tuesday” or “in two weeks time”. The standard built-in date time conversational node of composer is astounding in this regards.

Compound Date Time User Input

The user can go as far as saying “1 pm in 3 weeks time” and Composer can derive the time as 13:00 and the date is exactly in 3 weeks time.

This comes standard with composer it is truly impressive in its ability the make sense of fairly complex and unstructured input from the user.



Or you don’t have huge processing power, or energy for a complex stack of software to install with tricky configurations…then composer is the ideal starting point.

Read More Here…