Safetynet

Sometimes your bot will not understand what the user says. It is thus important that your solution contains a fallback flow that deals with user inputs that are not understood. In Teneo, we call this flow a Safetynet flow.

Matches anything and is tested last

The Safetynet flow consists of a trigger with a star (*) and %$_QUESTION as a language condition. The reason for this is that the Safetynet flow needs to be true for any input. To work as intended, Teneo must test all other triggers before falling back to the Safetynet trigger. The Safetynet trigger must thus be placed at the bottom of the trigger ordering.

safetynet script explained

A flow like any other flow

Apart from having a very generous language condition, a Safetynet flow is like any other flow. It may be triggered when there is no other active flow in process, or in the middle of some other flow as in the following example:

User: I'd like to order a coffee.
Bot: Ok, what coffee would you like?

User: ajkfhh (the coffee order flow is interrupted and the Safetynet is triggered)
Bot: I'm sorry but I didn't get that. (Safetynet response is given)

Bot: Let's continue with your order. Which coffee would you like? (the coffee order flow is resumed)

The same Safetynet flow may thus cater to non-understood inputs in all sorts of different contexts!

Build a Safetynet flow

The Safetynet fallback flow is crucial for every solution. This flow can be built using the following steps.

The Teneo Dialogue Resources (TDR) come with a pre-built Safetynet flow. You can find it in the 'Safetynet' folder. For solutions in languages without available TDR, it is useful to add your own Safetynet flow using the following instructions and localizing to the language in question.

Create a Safetynet order group

The Safetynet is always located at the bottom of the order groups. This is because the Safetynet is built to trigger on every single input, catching the inputs that are not covered inside the solution. In order for the Safetynet to not steal any of the inputs, it is important to create an order group specifically for the Safetynet and place it at the lowest level.

More on how to create your own custom order group can be found here: Create a custom order group.

Create a Safetynet Flow

To begin with, create your flow:

  1. Click on the 'Flow' icon in the top ribbon.
  2. Name the flow Safetynet.
  3. Click the arrow in the top left corner of the window to go to the main flow window.

Create a Conditional Match Requirement

As mentioned above, the Safetynet flow uses one conditional match requirement. We will now go ahead and create that.

  1. Select the trigger and name it Safetynet.
  2. Scroll down to the 'Match Requirements' section and click on the 'Add' button. This will toggle a drop-down list of different match requirements to select.
  3. Select 'Condition' and then paste in the following condition: * / %$_QUESTION.

Add answer texts to the output

As the Safetynet fallback flow is one of the most triggered flows, it is important to add a wide range of answer texts inside the output node. Output nodes can contain multiple answer variations to make the conversation more dynamic. Teneo will choose any of these answers randomly and return it to the user.

  1. Select the output node and paste in the following answers:
    • I'm sorry but I didn't get that.
    • I'm not sure I know what you mean?
    • Can you help me understand that?
    • Can you say that again using different words?
    • I didn't get that.
    • I'm afraid I have no answer for you.
    • I don't have a good answer to that.
    • Sorry, can you rephrase that for me?
    • I don't think I got that.
  2. Lastly, change the ordering by locating the Triggering section and selecting the Order Group we created in the steps above, Safetynet. This will change its ordering.
  3. Save the flow.

Create an area Safetynet flow

An area Safetynet captures ambiguous inputs, but instead of giving a standard answer it recognizes what topic the user mentioned and tries to redirect the conversation towards that goal.

For example, if a user mentions the word 'coffee' without any other context, the bot might respond like this:

User: coffees
Bot: I understand you would like to talk about coffee. Can you be more specific? Did you want to order a coffee or see our selection of coffees?

User: your selection
Bot: We offer a variety of handcrafted coffee drinks - from espressos to macchiatos to flat whites and more.

A practical example of how to build an area Safetynet can be found here.

Was this page helpful?