Триггеры

Триггер — это ключевое событие, которое запускает ваш сценарий. Проще говоря, это условие, при котором бот начинает действовать. Когда пользователь пишет сообщение, отправляет файл или просто открывает чат — все это триггеры.

Понимание триггеров — основа для построения любой диалоговой логики.

Как работают триггеры в сценарии

В визуальном редакторе сценариев вы добавляете триггеры в шаги (стейты). Каждый шаг может содержать несколько триггеров, и каждый триггер создает под собой отдельную ветку дальнейшей логики.

Рекомендация по количеству

Для поддержания читаемости и производительности сценария старайтесь не размещать более 8 триггеров в одном шаге. Если логика становится сложнее, лучше разбить ее на несколько последовательных шагов.

Триггеры делятся на две основные группы:

  • Пользовательские триггеры: Требуют дополнительной настройки (например, выбор конкретного намерения).

  • Системные триггеры: Срабатывают на системные события (например, отправка файла) и не требуют настроек.

Пользовательские триггеры

Эти триггеры позволяют создавать гибкую и интеллектуальную логику, реагируя на смысл сообщений пользователя.

Триггер «Намерение»

Это самый важный и часто используемый триггер. Он срабатывает, когда NLU-модель распознает в сообщении пользователя определенную цель или намерение.

  • Настройка: Просто выберите одно или несколько намерений из списка. Сценарий запустится, если будет распознано любое из них.

  • Пример: Вы создали намерение Заказ пиццы. Если пользователь напишет "Хочу заказать большую Маргариту", модель распознает это намерение, и сработает триггер, запускающий сценарий оформления заказа.

В списке для выбора доступны только активные намерения. Заархивированные намерения не отображаются.

Триггер «Сущность»

Этот триггер срабатывает, когда в сообщении пользователя обнаруживается определенная сущность (фрагмент данных), например, номер телефона, email или дата.

  • Настройка: Выберите одну сущность из списка.

  • Пример: Если пользователь пишет "Мой номер +7 999 123-45-67", триггер, настроенный на системную сущность Phone, сработает и запустит соответствующую ветку сценария для сохранения номера.

Триггер «Выход»

Этот триггер позволяет корректно завершить текущий сценарий и передать управление дальше. Он необходим, чтобы избежать "зацикливания" пользователя в одной ветке диалога.

  • Настройка: Выберите один из трех режимов:

    • out: Передать управление в Q&A или другой сценарий (наиболее частый вариант).

    • qa: Передать управление только в Q&A.

    • flow: Передать управление только в другой сценарий.

  • Пример: Пользователь находится в сценарии оформления заказа, но вдруг спрашивает "А какая у вас погода?". Триггер «Выход» позволит прервать текущий сценарий и обработать новый запрос.

Системные триггеры

Эти триггеры реагируют на действия пользователя, не связанные с анализом текста. Они не требуют настроек и готовы к использованию "из коробки".

Список системных триггеров
  • Старт: Срабатывает в самом начале диалога (например, при открытии виджета).

  • Стикер: Пользователь отправил стикер.

  • Фото: Пользователь отправил изображение (jpg, gif, png).

  • Аудио: Пользователь отправил аудиозапись (mp3, wav).

  • Видео: Пользователь отправил видео (mp4, avi).

  • Файл: Пользователь отправил документ (doc, xls, pdf и др.).

  • Гео: Пользователь поделился своей геолокацией.

  • Прочее: Срабатывает на любое событие, которое не было распознано другими триггерами. Это универсальный триггер для обработки непредвиденных запросов или создания "заглушки" в сценарии.

Запуск триггера через API

Вы можете запускать сценарии не только действиями пользователя в чате, но и программно, через API. Это открывает безграничные возможности для интеграций: например, вы можете запустить сценарий после успешной оплаты в вашем интернет-магазине или по событию из вашей CRM-системы.

Для этого используется событие с типом intent.

Пример API-запроса для запуска триггера по намерению

В этом примере мы принудительно запускаем сценарий, который должен сработать по триггеру с намерением start_promo_scenario.

{
  "user_id": "user-12345",
  "event": {
    "type": "intent",
    "params": {
      "intent": "start_promo_scenario"
    }
  },
  "facts": {
    "promo_code": "SALE2024",
    "source": "api_trigger"
  }
}

Подробную информацию о формате запросов, аутентификации и всех доступных типах событий вы можете найти в полной документации по API.

Последнее обновление