On this page:

What are arrows used for

Arrows are elements that connect blocks in a script. Using arrows, a bot moves from one script block to another. If a certain block is not connected to one of other blocks in a script, then this block is not used in dialogs.

The picture below shows how blocks are connected to each other with arrows in a script.



Types of arrows

In scripts, the following types of arrows are used:

  • Connection arrows
  • Condition arrows
  • Decision arrows

Types of arrows used in scripts are defined automatically by the system. This depends on the blocks they connect. The user cannot change these types by themself.

If an arrow is used to connect a Question block to another block, then this is a decision arrow.

If an arrow is used to connect a block that does not require a response from a client (for example, the Information block), then this arrow is called a connection arrow.

Connection arrows only connect script blocks to each other, indicating in which direction the dialogue develops. In the example below, connection arrow 1 leads from the Start block to the Information block, and connection arrow 2 leads from the Information block to the Question block. These connection arrows indicate the direction of the dialogue.

Only one connection arrow is used to link one block to another in a script.

 


Condition arrows are used to link Condition blocks to other blocks in a script. Such arrows do not indicate the direction of the dialogue, but define actions of the bot in the dialogue with regard to certain conditions. In the example below, arrows 5 and 6 are condition arrows.



Decision arrows link Question blocks to other script blocks that define actions of the bot that happen after client responses. Depending on a response, the bot can perform one or another action. The bot can go in the direction indicated by the arrow if the client response meets the conditions specified by this arrow.

Below, arrows 3 and 4 are decision arrows.

A Question block can be linked to other blocks using multiple decision arrows. Each of these arrows has certain parameters. If the client' s reply matches the parameters defined in one of these arrows, then the dialog will develop in the direction indicated by this arrow.

How do you create arrows

Arrows in scripts are created automatically and manually.

CREATING ARROWS MANUALLY

Activate the Arrow tool on the toolbar and draw an arrow between script blocks by moving the mouse pointer from one script block to another. To do this, choose the necessary block, press the left mouse button and, holding it down, drag the arrow to another block.




CRESTING ARROWS AUTOMATICALLY

When you add new blocks to the script by pulling them from existing blocks arrows are created automatically.

Parameters of decision arrows

Decision arrows have the following parameters:

Click image to enlarge

  • Arrow text - the name of the arrow in the script. You can quickly find an arrow in a script by its name.
  • Save response - allows you to save a client's response to a variable in order to use it later in script blocks. If this option is selected, then in the Variable name field, enter the name of the variable you want to use.
  • Save the whole phrase - this parameter determines how the client's response is saved. If the parameter is used, then the system will save the client's response in its exact form. If the parameter is not used, then the system will save only a keyword from the client's response.
  • Save answer to system variable - allows you to save the client's answer in order to use it later in one or multiple Question blocks. This is especially useful when the dialog moves from one script to another. The bot will not ask user a question that  the user answered earlier.
  • Output type - this is a required parameter for each decision arrow. It defines the type of condition that the system uses to steer the dialog in the direction indicated by this arrow.
  • Response options - with this parameter, you can display possible response options to the client in the form of buttons. If the client clicks on such a button, the dialog will go in the direction indicated by the arrow associated with the selected button. In some cases, it is more convenient for the client to use buttons than to write a response.
  • Sequence number of the button - in case there are several answers to the question, then there will be several buttons. This option allows you to define the order in which these buttons are displayed (first, second, third, etc.). The countdown starts from 0. If you do not specify the order in which buttons are displayed, they will be arranged in random order.


Output types

  • Keywords - allows you to specify exact words and phrases. In case a client's response contains a specified word or phrase then the dialogue is developed in the direction indicated by the corresponding arrow.
  • Date - tells the system that the client's response will contain a date. For example, the bot asks the client the date when they were born or the date of an appointment. When you choose this data type, you need to specify the condition under which the robot will follow the selected arrow. For example, the birth date must be earlier than the current date, and a date of appointment must not be in the past. If you want the bot to follow the arrow in case a client's response contains any date, then you can select the No difference value.




  • Date and time - this data type is similar to Date data type with an exception that the system expects to receive both date and time in the client's response. The set of conditions is the same. For example, the bot asks the client for the date and time of their appointment. If the client's response contains the date and time, the system will follow the arrow.
  • Number - similar to Date data type with an exception that the system expects to receive any number. For example, the bot asks the client how old are they. Depending on the client's response, the bot can follow one or the other arrow. For example, in one arrow, as a condition for making a decision, you can specify that the number must be less than 18, and in the other you specify that the number must be more than 18. If the client is under 18, the bot will follow one arrow and tell the client: " Sorry to bother you. All the best". Otherwise, the bot may offer the client to purchase cigarettes.
  • Large number - similar to Number data type with an exception that the system expects to receive a number longer than 3 characters. For example, the passport details.
  • Phone number - the system will expect to receive a phone number (11 digits) in the client's reply. For example, the bot asks the client: “Tell me, what phone number did you call?”. Depending on the phone number the client called (purchasing department or technical support department), the system will go in the direction indicated by the corresponding arrow. The system can expect to receive any (arbitrary) or specific phone number. For this, in the Value field, you should select eithe No difference or Equal to. If you select Equal to, you should enter the necessary phone number in the next field.

The Phone number option allows you to track both mobile and landline numbers. At the moment, this function works only with the phone numbers registerd in Russian telecom operators.

The phone number must contain 11 digits. Otherwise, the robot will not recognize it.

For a mobile number you must specify the country code (for example, 7 or 8).

For a city number, you must specify the country and city codes (for example, 7 and 812).



  • Phone number detection error - the system checks that the phone number contained in the client's response is valid. If the phone number is invalid (i.e. the number does not exist), then the system will follow in the direction specified by one arrow (for example, the bot can ask the client to repeat the phone number).
  • Default branch - the system will go in the direction indicated by this arrow if the client's response does not meet conditions specified in other arrows. This arrow type has no parameters. Only one default branch can go from a block.

  • Intelligent Decision Making - you associate your NLU agent with a specific intent. If the client's response matches the intent indicated by this arrow, then the system will go in the direction indicated by the arrow.

In the Smart Decision arrow, you can specify multiple intents that should lead to the same clients' response.


  • DTMF signal - this function is very useful in voice menus. The system allows you to track what button the client presses. Depending on the button the client presses, the system will follow a certain arrow (i.e., the bot tells the client: “To create a new order, press button 1. To proceed with the current order, press button 2. To end this conversation, press button 3” ).

.