Загородный эко-отель «Киногородок» принимает гостей в формате эко-отдыха: деревянные домики, банный комплекс, активности на природе. Расположен в Тверской области вблизи Валдайского биосферного заповедника.
Менеджеры вручную обрабатывали входящие запросы в чате amoCRM — уточняли даты, подбирали номера, отвечали на вопросы, отправляли ссылки на оплату. Задача — автоматизировать этот процесс с помощью AI-агентов.
Менеджеры не справлялись с потоком однотипных обращений. Гости ждали ответа часами, конверсия падала, ручная нагрузка росла.
Система на базе n8n + GPT-4o автоматически ведёт диалог с гостем от первого сообщения до подтверждения оплаты. Два независимых уровня: боевой воркфлоу и управляющий агент-оркестратор.
Определение намерения
AI Router классифицирует каждое сообщение: поиск, выбор номера, бронирование, оплата, FAQ, передача менеджеру.
Запрос к mehotel API
Поиск доступных номеров, создание брони, отмена, получение ссылки на оплату — всё в реальном времени.
Диалог в amoCRM
Система сама формирует и отправляет ответ гостю на естественном языке прямо в чат amoCRM.
Контроль оплаты и уведомления
Cron-воркфлоу мониторит статус оплаты каждые 5 минут и уведомляет менеджера в Telegram.
Основная цепочка обработки каждого сообщения гостя — 7 намерений, полная интеграция с mehotel API и amoCRM.
AI-оркестратор следит за боевым воркфлоу, фиксирует ошибки и автоматически исправляет их. Запускается по команде в Telegram, по ошибке или по cron каждые 30 минут.
| Суб-агент | Роль |
|---|---|
| WorkflowAnalyst | Читает воркфлоу, находит проблемы, генерирует отчёт о состоянии системы |
| WorkflowEditor | Применяет правки к воркфлоу через n8n REST API без ручного вмешательства |
| ErrorFixer | Диагностирует и автоматически исправляет типовые ошибки выполнения |
| SessionDebugger | Анализирует состояние сессий гостей в PostgreSQL, ищет аномалии |
| APITester | Тестирует доступность и корректность ответов mehotel API |
Маршрутизатор намерений. Получает сообщение гостя и возвращает строгий JSON: intent, параметры поиска, текст ответа, флаг передачи менеджеру.
Правило: только JSON, без текста вне скобок
FAQ-агент. Отвечает на вопросы гостей по встроенной базе знаний отеля (kinoDoc) — расположение, цены, услуги, скидки, условия с детьми и питомцами.
6 видов скидок · 4 площадки · 50+ позиций меню
Агент продаж. Ведёт гостя по структурированному скрипту: приветствие → даты → дети → приоритеты → варианты → тип кровати → контакты → апсейл.
Баня / прокат лодок / апсейл автоматически
Каждый гость имеет сессию в PostgreSQL. Система хранит найденные варианты, выбранный номер, данные гостя, статус брони и ссылку оплаты — многоходовой диалог без потери контекста.
| Система | Роль | Детали |
|---|---|---|
| amoCRM | Канал общения с гостем | Chat API v1, обновление полей лида после каждого шага |
| mehotel API | Система управления отелем | Поиск номеров, создание/отмена бронирований, статус оплаты |
| PostgreSQL | Хранение сессий гостей | Таблицы: hotelsession, kinogorodok_rooms, room_photos |
| OpenAI GPT-4o | AI-мозг системы | Классификация намерений, FAQ-ответы, ведение диалога |
| Telegram Bot | Уведомления менеджера | Статус оплаты, ошибки, команды управления агентом (/analyze workflow) |
| Google Docs | База знаний отеля (kinoDoc) | Описание отеля, цены, услуги, скидки для FAQ-агента |
Отдельный cron-воркфлоу автоматически следит за статусом оплаты всех активных броней.
Поиск активных броней
Находит брони со статусом HOLD или CREATED в PostgreSQL
Проверка статуса в mehotel
Запрашивает актуальный статус оплаты по каждой брони
Уведомление в Telegram
При оплате обновляет сессию и сразу уведомляет менеджера
| Ошибка | Авто-фикс |
|---|---|
items is not defined |
Переключить Code-ноду на Run Once For All Items |
invalid input syntax for integer undefined |
Добавить ноду-строитель перед HTTP-вызовом |
JSON parameter needs valid JSON |
Добавить Set-ноду с правильным JSON |
Text.Required (amoCRM) |
Добавить проверку replyText перед отправкой |
ORIGININVALIDSIGNATURE |
Переключить на Chat API v1 |
Если нужна похожая автоматизация — напишите, разберём вашу задачу.