Teneo Developers

Advanced Concepts

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

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!

Activate in Tryout

You can trigger the Safetynet flow in Tryout by following these steps:

  1. Click on the Tryout to start a conversation.
  2. Write something nonsensical, like: ajkfhh.

Build a Safetynet flow

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

The Dialogue Resources come with a pre-built Safetynet flow. You can find it in the 'Safetynet' folder. For solutions in languages without available Dialogue Resources, 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 by doing the following:

  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 TLML Syntax Match

As mentioned above, the Safetynet flow uses one TLML Syntax Match. You can now go ahead and create that:

  1. Select the trigger and name it Safetynet.
  2. Scroll down to the 'Match' section and click on the 'Add' button. This will toggle a dropdown list of different Match requirements to select.
  3. Select 'TLML Syntax' and then paste in the following condition: * / %$_QUESTION.
  4. Lastly, change the ordering by locating the Triggering section and selecting the Order Group we created in the steps above, Safetynet. This will change the flows trigger ordering.

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. User has also the option to 'Set order' for the outputs to show.

  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.
  1. 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.

Next page
Ordering
Was this page helpful?