CONVERSATION

Conversation means one single back and forth talks between the bot and user.

1. Bot Messages

Under the Bot Messages heading, the bubbles you see here are the actual messaging bubbles that go in the bot. You can simply add the questions/statements here. At the bottom right of the bot messages section there is a blue drop down menu in which creators can choose how users can respond to these messages.

In the visual builder we have several different ways to receive input from users. These range from standard text input in chat to quick reply buttons and custom input specific UI’s like calendar, file upload and geo location. You can find more about the different types of Input UI that appear in this dropdown menu over here.

2. User Input Type

2.1 Text Input

Using the text input option can accept text from users. Within this option however, creators will find several options for configuring what type of text is taken in.

The first option that creators have is to customize the Input Type.

Each of these configurations accepts text in a different form

  • Custom Text - Will accept any text
  • Full Name - Will accept text in the form <First Name> <Last Name> with ie (e.g. John Smith)
  • Email - Will accept text in the form [email protected]
  • Telephone - Will accept all international phone number formats.
  • Address- Will accept address input

2.2 Buttons

Buttons have a maximum display of 3 buttons for the user choice. It comes with the Branching option to choose a connection with the next conversation. For example, when you select "Buy", you will come to the conversation which give a list of products. But if you select "Not Interested", you can end the conversation. This type of message is very useful for flow development.

2.3 Quick Replies

It is similar to buttons but is arranged horizontally. Comes with the Branching option to choose connection with the next conversation.

2.4 Cards

It is similar to Button reply option but it has more images and more detailed information. It is very suitable and recommended for displaying products to order.

2.5 File Upload

Creators have the option of getting input in the form of an image or a file.

This can be selected from the Input Type dropdown.

The end result will look like this:

2.6 Star Rating

Creators can take user input in the form of ratings. For example, the rating input option can be used for collecting feedback for example.

Perhaps the most universal way of rating something is by using a star based rating system. As such, we have added this as an input UI option.

Number of stars – within this option users can decide how many stars the rating system can have. As of now you can choose between 5 or 10.

2.7 Web Form

Creators can take user input in the Web Form. This can be used for collecting user phone number, and address for example.

2.8 Location

Creators have the option of taking input in the form of user location.

This can be selected from the Input Type dropdown.

The end result will look like this:

2.9 No Input

This is useful if you want to insert some intermediate message between two block, but don't want to interrupt the user by asking for anything.

Select it from the Input Type Dropdown menu, and click on Save. That's it.

3. Navigation

3.1 Branching:

When multiple buttons/quick replies/cards are made by a builder and this option is on, bot creators can redirect the conversation flow based on the button the user selects.

For example when the builder does not keep this option on there is only one connector from the block. When the bot creator turns this option on, connectors appear for each button so that selecting each one leads to a different block.

3.2 Conditional Branching

Each branch contains a set of conditions. You can take a value from elsewhere in the flow (e.g. a user response or data from an api call) and check to see whether it meets those conditions.

The Bot starts from the first Branch (Top most/Left most) and checks for all the conditions that you have set. It will then simply jump to the first branch for which conditions are met. A branch giving true/matching conditions means that the conditions within that branch are met and satisfied. Jumping to that branch means it will follow the direction of that branch (i.e. wherever you connected the corresponding socket).

If so take the example from below:

Over here we are checking the user response from a block named star, hence the value we are comparing is {{ursp.star}}.

In the first branch we check if {{ursp.star}} is greater than OR equal to 4. In the 2nd Branch, it has conditions to check if the user response on block star is greater than OR equal 3. The third and final branch is a default branch, more on this in a moment.

The system checks each branch in order from top to bottom. So in the above example it will take the first branch and check whether {{ursp.star}} is greater than or equal to 4. If the response meets these conditions, it will not check branch 2 and push the conversation in the direction of branch 1 (i.e. wherever you connected the socket corresponding to branch 1). If it doesn’t meet this condition, it will check branch 2. If it does meet the conditions in branch 2, the conversation will move in the direction of branch 2 (i.e. wherever you connected the socket corresponding to branch 2).

But what if it meets neither of these conditions? What if in the above example {{ursp.star}} is 1? It is not greater than or equal to 4 so branch 1 will not be activated. It is not in between 3 and 4 so branch 2 will not be activated. This is where the default branch comes into play. The default branch is a fallback. If the bot checks every branch that you have created and none of them are activated, then the bot will send you in the direction of the default branch.

3.3 Input Validation

Allows bot creators to check what sort of input is being given by users:

  • Full name validator- Validates that input text is in the form <first name> <last name> (e.g. john smith)
  • Email Validator- Validates that input text is in the form [email protected]
  • Mobile Number Validator- validates that input is in the form of a 10 digit number

3.4 Skip to next Block

This is useful if you want to insert some intermediate message between two blocks, but don't want to interrupt the user by asking for anything. It is the same as the No Input option.