Иногда мы хотим, чтобы наш бот давал дополнительную информацию, которую пользователь явно не запрашивал, например, специальные предложения, рекламные акции и многое другое. В Teneo этого можно добиться с помощью быстрых триггеров.
Триггеры подсказок проверяются после нормального выполнения потока, непосредственно перед тем, как будет дан ответ. Если триггер приглашения совпадает, поток, содержащий этот триггер, будет выполнен, и полученный результат будет добавлен к ответу. В приведенном ниже примере первая часть ответа бота основана на потоке «Пользователь хочет заказать кофе», а вторая выделенная часть — на потоке с триггером приглашения:
Пользователь: Могу ли я получить большой маккиато?
Бот: Окей, большое маккиато будет готово к вывозу через 5 минут.
Сейчас час печенья! Вы получите бесплатное печенье вместе с кофе.
На этой странице мы создадим простой поток с триггером подсказки, который будет рекламировать бесплатный файл cookie для каждого кофе, который покупает клиент. Мы собираемся сделать это в два этапа:
- Мы создадим поток с триггером подсказки, который всегда будет запускать и тестировать его.
- Затем мы собираемся дополнительно ограничить триггер приглашения, чтобы он работал только с 16:00 до 17:00 каждый день, и, наконец, протестировать его.
Вот как будет выглядеть финальный поток:
Создать поток с помощью триггера подсказки
Идите вперед и создать новый поток и назовите его: Cookie hour campaign
.
Добавьте триггер подсказки
Сначала мы добавим и настроим триггер приглашения, затем мы собираемся удалить триггер по умолчанию, который был создан с потоком:
- Нажмите «Добавить триггер» на ленте.
- Назовите триггер подсказки
Cookie hour
. - Выберите триггер приглашения и добавьте
true
в поле выражения. - Убедитесь, что триггер приглашения установлен на повторяемость — «Один раз за сеанс» (он будет выбран по умолчанию)
- Удалить триггер по умолчанию.
Обратите внимание, что триггеры подсказок проверяются не на вводимые пользователем данные, а на программные условия. В данном случае мы устанавливаем для этого условия значение true, чтобы триггер всегда срабатывал.
Добавить текст ответа
Выберите выходной узел и добавьте следующий текст ответа. It is cookie hour right now! You’ll get a free cookie to go along with your coffee.
Дайте выходному узлу имя It is cookie hour
и сохраните поток.
Проверьте поток
Идите и проверьте триггер подсказки в try:
- Перейдите в окно «Попробуйте»
- Перезапустите сеанс
- Введите
Hello there!
в окне «Попробуйте»
The answer text comes from two different flows. The first part of the answer with the greeting is given by a flow in the dialogue resources. However, before returning a response to the user, Teneo always evaluates if there are prompt triggers that should be taken into account to add additional information to the response. Here, this is the case for the prompt trigger of our ‘Cookie hour campaign’ flow and the output of that flow is appended to the answer.
As you may have noticed, if you now type Hello there
again in the Try out window, you see that it will not add the information about the ‘Cookie hour campaign’ to the response this time. This is because we chose ‘Repeatable once per session’ when creating the prompt trigger.
Further Restrict the Prompt Trigger
Currently, the expression of the ‘Cookie hour’ trigger is set to ‘true’. This means that the ‘Cookie hour’ trigger will always trigger, once per session. In the following, we will make sure that the ‘Cookie Hour’ trigger only fires between the hours 16:00 and 17:00.
In order to make sure the flow triggers only between the hours 16:00 and 17:00, we have to do the following:
- Open the ‘Cookie hour campaign’ flow in edit mode.
- Select the prompt trigger
- Replace true with:
// get the hour of the day def currentHour = java.time.LocalDateTime.now().getHour()
// is it cookie hour? (currentHour == 16)
The prompt trigger will now only work between the hours 16:00 and 17:00
Just as regular triggers, prompt triggers are also ordered. Note, however, that the ordering of regular and prompt triggers is managed separately in Teneo. Prompt triggers are always tested after regular triggers.
Save and Test Your Flow
That’s it! You can now go ahead and save your flow and test it. Remember, if the time is before 16:00 and after 17:00 it should not prompt you with It is cookie hour right now! You’ll get a free cookie to go along with your coffee.
Before 16:00 and after 17:00:
User: Could I get a large macchiato?
Bot: Ok, a large macchiato will be ready for pickup in 5 minutes.
During Cookie hours:
User: Could I get a large macchiato?
Bot: Ok, a large macchiato will be ready for pickup in 5 minutes.
It is cookie hour right now! You’ll get a free cookie to go along with your coffee.
In this example, we use the server time, which is UTC (the results may thus vary depending on where you are).