Сценарии (Scenarios)
Источник: doc.nextbot.ru/functional/stsenarii
Что такое сценарии
Сценарии — механизм автоматизации поведения агента, который срабатывает при наступлении определённых событий. В отличие от функций (которые вызывает ИИ), сценарии работают детерминированно: событие → условие → действие.
Типы триггеров
| Триггер | Описание | Пример использования |
|---|---|---|
| Начало диалога | Первое сообщение от пользователя | Приветствие, сбор начальной информации |
| Новое сообщение | Каждое новое сообщение | Модерация, трекинг активности |
| Точное совпадение | Текст сообщения полностью совпадает | Команды: /start, STOP, меню |
| Частичное совпадение | Текст содержит определённую подстроку | Обнаружение ключевых слов |
| Вебхук | Входящий POST-запрос | Интеграция с внешними сервисами |
| Выполнение функции | После выполнения определённой функции | Постобработка данных |
| По расписанию | Срабатывание по таймеру / cron | Напоминания, follow-up |
Дополнительные условия
К каждому сценарию можно добавить дополнительные условия фильтрации:
| Условие | Описание |
|---|---|
| Канал | Только для определённого мессенджера (Telegram, WhatsApp и т.д.) |
| Агент | Только для определённого агента |
| Статус диалога | Активный, на паузе, заблокирован |
| Метаданные | Проверка метаданных диалога |
| Время | Определённое время суток / день недели |
Действия сценариев
Когда сценарий срабатывает, выполняется одно или несколько действий:
Основные действия
| Действие | Описание |
|---|---|
| Добавить контекст | Вставить скрытое сообщение в контекст ИИ |
| Отправить сообщение | Отправить фиксированный текст клиенту |
| Вызвать функцию | Запустить определённую функцию |
| Переключить агента | Передать диалог другому агенту |
| Поставить на паузу | Приостановить работу агента |
| Снять с паузы | Возобновить работу агента |
| Заблокировать | Заблокировать пользователя |
| Очистить диалог | Сбросить историю разговора |
| Дополнить промт | Добавить инструкции к системному промту |
| Установить метаданные | Записать метаданные в диалог |
| Отправить вебхук | Отправить данные во внешний сервис |
Примеры сценариев
1. Приветственное сообщение
Триггер: Начало диалога
Действие: Добавить контекст
Текст: "Клиент только что начал диалог. Поприветствуй его,
представься как менеджер EastPay и спроси, чем помочь."
2. Команда STOP (отписка от рассылки)
Триггер: Точное совпадение — "STOP"
Действия:
1. Отправить сообщение: "Вы отписались от рассылки"
2. Поставить на паузу
3. Переключение по запросу
Триггер: Частичное совпадение — "техподдержка", "проблема", "не работает"
Действие: Переключить агента → Агент-Техподдержка
4. Follow-up через 24 часа
Триггер: По расписанию — через 24 часа после последнего сообщения
Условие: Статус диалога = активный
Действие: Добавить контекст: "Клиент не отвечал 24 часа.
Напиши ему вежливое напоминание."
5. Обработка вебхука оплаты
Триггер: Вебхук
Действия:
1. Установить метаданные: payment_status = "paid"
2. Добавить контекст: "Клиент оплатил заказ. Подтверди получение
оплаты и спроси про доставку."
Порядок выполнения
- Событие наступает (новое сообщение, вебхук и т.д.)
- Проверяются все сценарии с соответствующим триггером
- Фильтрация по дополнительным условиям
- Выполнение всех подходящих сценариев в порядке приоритета
- Если выполнено действие «Поставить на паузу» или «Переключить агента», последующие действия могут быть прерваны
⚠️ Несколько сценариев могут сработать одновременно — учитывайте это при проектировании