Каталог слотов
| Слот | Что делает | Когда выбирать |
|---|---|---|
| Старт | Начинает граф. | Создается один раз в начале сценария. |
| Текст | Отправляет сообщение. | Приветствие, инструкция, результат. |
| Вложение | Отправляет изображение с необязательным текстом. | Фото, карточка товара, схема. |
| Ожидание | Ждет сообщение клиента. | Свободный вопрос, имя, телефон. |
| Память | Сохраняет переменные. | Данные клиента и состояние сценария. |
| Условие | Выбирает ветку. | Проверка текста или переменных. |
| Кнопочное меню | Показывает варианты. | Меню и быстрые ответы. |
| Распознавание | Определяет тему сообщения. | Маршрутизация свободного текста. |
| Таймер | Запускает ветку через заданное время. | Напоминание, пока бот ждёт клиента. |
| Перехват | Ловит точную команду из любого ожидания. | Глобальное меню, /start, /help. |
| Внешний запрос | Обращается к API. | CRM, заказ, webhook. |
| ИИ-агент | Вызывает LLM. | Свободный ответ и инструменты. |
| Переход | Переводит в другой слот. | Склейка веток и возврат в меню. |
Текст и ожидание
Текст отправляет сообщение и сразу продолжает сценарий. Ожидание ничего не отправляет, а сохраняет точку, с которой граф продолжится после ответа клиента.
Текст: «Как вас зовут?»
→ Ожидание
→ Память: name = {{ last_message }}
→ Текст: «Приятно познакомиться, {{ name }}!»
Условия и переходы
Условие проверяет значения и направляет граф в первую подходящую ветку. Последней должна быть запасная ветка с выражением true.
"цена" in last_message age >= 18 city == "Москва" and tariff == "pro" true
Переход нужен, если несколько веток должны продолжиться одинаково. Он указывает на существующий слот и не создает дополнительного сообщения.
Распознавание тем
Слот анализирует последнее сообщение клиента и выбирает одну тематическую ветку. Одна тема соответствует одной ветке; последней всегда остаётся ветка «Не распознано».
| Настройка | Что определяет |
|---|---|
| Название темы | Короткая метка результата, например «Доставка» или «Возврат». |
| Описание | Какие формулировки и намерения относятся к теме. |
| Уверенность | Минимальная уверенность для выбора тематической ветки. |
| Не распознано | Куда направить неоднозначный или неизвестный запрос. |
Результат доступен в переменных last_router_topic, last_router_confidence и last_router_fallback.
Таймеры
Таймер добавляется отдельной веткой от старта. Он отсчитывает дни, часы и минуты с момента, когда граф остановился и начал ждать клиента.
- Условие срабатывания по умолчанию —
true. - Перед запуском iisy проверяет, что чат всё ещё находится в том же стоп-слоте.
- Опция сброса отменяет отсчёт других таймеров после срабатывания текущего.
- Таймерная ветка обычно отправляет напоминание и приходит в новое ожидание.
Перехват команд
Перехват добавляется отдельной веткой от старта и проверяется перед продолжением текущего ожидания. Он нужен для команд, которые должны работать из любой точки диалога.
Перехват: /menu → Текст: «Выберите раздел» → Кнопочное меню
- Команда сравнивается с вводом клиента точно:
/menuиmenu— разные значения. - Если перехват сработал, текущее ожидание или активное кнопочное меню сбрасывается.
- Если из перехвата нет следующего слота, он не учитывается.
- Перехват не требует fallback-ветки: если команда не совпала, сценарий продолжается обычным путём.
Действия и ИИ
Внешний запрос всегда выполняет заранее настроенный запрос. ИИ-агент получает промпт и сам решает, отвечать сразу или использовать доступный инструмент.