Site Overlay


The Bot Framework enables you to build bots that support different types of interactions with users. Bot Builder SDK introduced Form Flow. The FormFlow continues until the form is complete. .. Hi Admin, how can i convert the controller in such a way that after the profile has been. The Informed Convert plug-in allows Informed Designer to open and convert documents created by Delrina’s PerForm PRO and FormFlow 1.x applications.

Author: Tejin Kazrajar
Country: Mali
Language: English (Spanish)
Genre: Environment
Published (Last): 18 January 2011
Pages: 404
PDF File Size: 17.89 Mb
ePub File Size: 13.5 Mb
ISBN: 840-3-83695-596-3
Downloads: 71208
Price: Free* [*Free Regsitration Required]
Uploader: Kagazilkree

This topic applies to SDK v3 release. You can find the documentation for the latest version of the SDK v4 here. Dialogs are very powerful and flexible, but handling a guided conversation such as ordering a sandwich can require a lot of effort.

At each point in the conversation, there are many possibilities of what will happen next. For example, you may need to clarify an ambiguity, provide help, go back, or show progress. NET, you can greatly simplify the process of managing a guided conversation like this. FormFlow automatically generates the dialogs that are necessary to manage a guided conversation, based upon guidelines that you specify. Although using FormFlow sacrifices some of the flexibility that you might otherwise get by creating and managing dialogs on your own, designing a guided conversation using FormFlow can significantly reduce the time it takes to develop your bot.

Additionally, you may construct your bot using a combination of FormFlow-generated dialogs and other types of dialogs. For example, a FormFlow dialog may guide the user through the process of completing a form, while a LuisDialog may evaluate user input to determine intent. This article describes how to create a bot that uses the basic features of FormFlow to collect information from a user.

To create a bot using FormFlow, you must specify the information that the bot needs to collect from the user. For example, if the bot’s objective is to obtain a user’s sandwich order, then you must define a form that contains fields for the data that the bot needs to fulfill the order.

Getting Started With Customizing A FormFlow Using Microsoft Bot Framework

You can define the form by creating a C class that contains one or more public properties to represent the data that the bot will collect from the user. Each property must be one of these data types:. Formflod of the data types may be nullable, which you can use to model that the field does not have a value.


If a form field is based on an enumeration property that is not nullable, the value 0 in the enumeration represents null i. FormFlow ignores all other property types and methods.

A Walk-Thru

For complex objects, you must create a form for the top-level C class and another form for the complex object. You can compose the forms together by using typical dialog semantics. It is also possible to define a form directly by implementing Advanced. IField or using Advanced. Field and populating the dictionaries within it. This article describes how to define a form using a C class. Consider this example of a simple sandwich bot that is designed to obtain a user’s sandwich order.

The SandwichOrder class defines the form and the enumerations define the options for building a sandwich. The class also includes the static BuildForm donvert that uses FormBuilder to create the form and define a simple welcome message. To use FormFlow, you must first import the Microsoft.

To connect the form to the framework, you must add it to the controller. In this example, the Conversation. FromForm method to create the SandwichOrder fprmflow. By simply defining the form with a C class and connecting it to the framework, you have enabled FormFlow to automatically manage the conversation between bot and user.

Basic features of FormFlow

The example interactions shown below demonstrate the capabilities of a bot that is created by using the basic features of FormFlow. This form populates the SandwichOrder. The form automatically generates the prompt, “Please select a sandwich”, where the word “sandwich” in the prompt derives from the property name Sandwich.

The SandwichOptions enumeration defines the choices that are presented to the user, with each enumeration value being automatically broken into words based upon changes in case and underscores. The user can enter “help” at any point in the conversation to get guidance with filling out the form.

For example, if the user enters “help” at the sandwich prompt, the bot will respond with this guidance.

If the user enters “2” in response to the initial sandwich prompt, the bot then displays a prompt for the next property that is defined by the form: If the user enters “back” at this point in the conversation, the bot will return the previous prompt. The prompt shows the user’s current choice “Black Forest Ham” ; the user may change that selection by entering a different number or confirm that selection by entering “c”.


If the user responds with text instead of a number to indicate a choice, the bot will automatically ask for clarification if user input matches more than one choice.

If user input does not directly match any of the valid choices, the bot will automatically prompt the user for clarification. If user input specifies multiple choices for a property and the bot does not understand any of the specified choices, it will automatically prompt the user for clarification. If the user enters “status” at any point in the order, the bot’s response will indicate which values have already been specified and which values remain to be specified.

If the user responds by entering “no”, the bot allows the user to update any of the prior selections. If the user responds by entering “yes”, the form has been completed and control is returned to the calling dialog. If the user enters “quit” in the form or cknvert exception occurs at some point in the conversation, your bot will need to know the step in which the event occurred, the state of the form when the event occurred, and which steps of the form were successfully completed prior to the event.

This code example shows how to catch the exception and display a message according to the event that occurred. Although basic FormFlow functionality is sufficient in some cases, you should consider the potential benefits convertt incorporating some of the more advanced features of FormFlow into your bot.

FormFlow simplifies dialog development. The advanced features of FormFlow let formfpow customize how a FormFlow object behaves. Advanced features of FormFlow. Our new feedback system is built on GitHub Issues. Read about this change in our blog post. Would you like to provide feedback? Sign in to give feedback.

You may also leave feedback directly on GitHub. There are no open issues.