Сосницкий ДаниилРазработчик AI-решений для бизнеса

Содержание кейса

  1. Исходная ситуация
  2. Проблемы бизнеса
  3. Цель автоматизации
  4. Ограничения
  5. Решение
  6. Сценарий
  7. Логика работы
  8. Архитектура
  9. Реальный workflow
  10. Технологии
  11. Роль человека
  12. Ошибки и сбои
  13. Данные
  14. Этапы и сроки
  15. Эффект
  16. Развитие
КЕЙС 01 Демонстрационный

AI-консультант ремонтной компании: сайт и Telegram в одной очереди

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

Тип бизнеса
Компания по ремонту квартир под ключ
Каналы и среда
Telegram-бот + чат на сайте
Срок разработки
3–4 недели
Моя роль
Анализ процесса, архитектура, разработка, запуск

Кейсы описывают реальные разработанные решения. Названия компаний, диалоги и данные в примерах — демонстрационные: они показывают логику работы системы, но не раскрывают клиентов. Все показатели — расчётные модели с указанными допущениями, а не подтверждённая отчётность.

Исходная ситуация

С чего всё начиналось

Компания делает косметический и капитальный ремонт, ремонт под ключ и дизайн-проекты. Заявки приходят двумя потоками: через форму и чат на сайте и через Telegram — из рекламы и по рекомендациям. Менеджеров несколько, у каждого свой график, выходные и отпуска. Обращения распределял старший менеджер: смотрел, кто сегодня работает, и пересылал контакт в личные сообщения. Вечером и в выходные этого не делал никто.

Как звучал запрос

Люди пишут в десять вечера, а мы отвечаем в десять утра — половина к этому времени уже нашла других. Ещё менеджеры полдня отвечают на одно и то же: сколько стоит, какие сроки, есть ли гарантия. И хочется, чтобы человеку сразу называли хотя бы порядок цены, а не «приедет замерщик — узнаете».

Анализ

Что именно мешало бизнесу

Разбор начинается не с технологий, а с того, где процесс теряет время, деньги или клиентов.

Цель

Чего нужно было добиться

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

Рамки проекта

Ограничения и требования

Эти ограничения определили архитектуру сильнее, чем выбор конкретных сервисов.

Решение

Что было собрано

Один вход для двух каналов

Telegram и чат на сайте сходятся в общую точку входа. Дальше вся логика одна: канал влияет только на то, каким способом вернуть ответ.

Текст, голос и фото

Голосовые расшифровываются через Whisper, фотографии объекта сохраняются и позже прикрепляются к заявке, любой другой формат получает корректный ответ вместо молчания.

Ответы по документам компании

База знаний лежит в векторном хранилище. У агента три инструмента: семантический поиск, список документов и чтение документа целиком, если поиск дал обрывок.

Память о клиенте

Перед ответом система подтягивает карточку клиента, черновик заявки и активную заявку. Известные данные попадают в промпт как достоверные — их не спрашивают повторно.

Предварительный расчёт

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

Распределение с учётом графика

Если за клиентом уже закреплён менеджер и он сегодня на смене — пишем ему. Иначе очередь round robin среди работающих сегодня сотрудников.

Пользовательский сценарий

Как это выглядит на практике

01

Обращение приходит

Авто

Клиент пишет в Telegram или в чат на сайте — в любое время суток, текстом, голосом или с фотографией объекта. Система принимает сообщение сразу, независимо от того, работает ли сейчас кто-то из менеджеров.

02

Система отвечает по существу

Авто

Фактические вопросы — о сроках, гарантии, материалах, географии выездов — закрываются ответом по документам компании, а не общими фразами.

03

Клиент получает ориентир по цене

Авто

Если он спрашивает о стоимости, система считает предварительный расчёт по прайсу и отдельно уточняет, что точная сумма определяется после бесплатного замера.

04

Данные собираются по ходу диалога

Авто

Имя, телефон, площадь, район и тип ремонта фиксируются по мере того, как клиент их называет, — переспрашивать уже сказанное не нужно.

05

Заявка уходит нужному менеджеру

Авто

Когда данных достаточно, создаётся заявка, и она попадает менеджеру, который сегодня действительно на смене, — с учётом графика и уже закреплённых клиентов.

06

Менеджер продолжает с готовым контекстом

Человек

В Telegram менеджер получает карточку заявки и фотографии объекта и подключается уже на этапе согласования замера, а не с нуля.

Пошаговая логика

Что происходит внутри

Шаги, помеченные как действие человека, автоматизации не подлежат сознательно.

01

Приём обращения

Авто

Telegram-бот и вебхук чата на сайте принимают сообщение. Тип определяется сразу: текст, голос, фото или другое вложение.

02

Приведение к единому формату

Авто

Голос скачивается и расшифровывается через Whisper, фото сохраняется в хранилище медиа и привязывается к клиенту, текст проходит напрямую. Дальше все каналы идут по одной ветке.

03

Сбор контекста

Авто

Из базы поднимаются карточка клиента, черновик заявки и активная заявка. Собирается блок «что мы уже знаем» и список недостающих полей.

04

Ответ агента

Авто

Агент отвечает с учётом истории диалога и известных данных. Фактические вопросы обязательно проходят через поиск по базе знаний. Ответ возвращается строго структурированным.

05

Сохранение черновика

Авто

Всё, что удалось выяснить, дописывается в черновик заявки. При следующем сообщении эти данные уже считаются известными.

06

Предварительный расчёт

Авто

Если клиент явно спросил о стоимости, система берёт цену за м² из прайса и считает ориентир, отдельно проговаривая, что это оценка до замера.

07

Создание заявки

Авто

Когда собраны все обязательные поля, создаётся клиент и заявка, к ней прикрепляются фото из диалога. При активной заявке дубль не создаётся.

08

Выбор менеджера

Авто

Читается очередь round robin и график смен на сегодня. Приоритет — у закреплённого за клиентом менеджера, если он сегодня работает.

09

Уведомление менеджера

Авто

Менеджер получает в Telegram карточку заявки и фотографии объекта. Очередь и статус заявки обновляются.

10

Подтверждение клиенту

Авто

Клиент получает номер заявки и имя менеджера тем же каналом, откуда написал.

11

Разбор нестандартной ситуации

Человек

Если менеджеров на смене нет, расчёт не удался или уведомление не доставлено — событие пишется в журнал, и заявка остаётся видимой для утреннего разбора.

Архитектура

Схема решения

КАНАЛЫНОРМАЛИЗАЦИЯКОНТЕКСТ И AIДЕЙСТВИЯРЕЗУЛЬТАТTelegram-боттекст, голос, фотоЧат на сайтеwebhook + ответ виджетуРасшифровка голосаOpenAI WhisperЕдиный формат сообщенияобщая точка входаКонтекст клиентаPostgreSQL: клиент, черновик,AI-консультантструктурированный ответБаза знанийSupabase pgvector + embeddingsРасчёт по прайсуGoogle Sheets, без моделиКлиент и заявказащита от дублейВыбор менеджераграфик смен + round robinОтвет клиентув исходный каналМенеджер в Telegramкарточка заявки и фотоИстория и журналдиалоги, сбои, назначения
Канал клиентаAI-логикаДанные и хранилищаАвтоматический шагДействие человека
Архитектура решения: два канала сходятся в одну точку входа, расчёт стоимости вынесен из модели в детерминированный шаг, распределение зависит от графика смен.
Фрагмент логики: выбор менеджера (n8n, узел 38)
# 1. приоритет — менеджер, уже закреплённый за клиентом
# 2. иначе round robin среди тех, кто сегодня на смене
# 3. если сегодня не работает никто — заявка не теряется

today   = сегодняшняя дата в часовом поясе Europe/Moscow
working = строки графика, где date = today и working = да

if (закреплённый менеджер есть и он в working)
    → назначить его
else if (working не пуст)
    → взять того, кому назначали дольше всех
else
    → «45 · Лог: нет доступных менеджеров»
      заявка остаётся в базе со статусом ожидания

Не абстракция

Так выглядит реальный workflow

Точная визуализация по фактически экспортированному файлу n8n: настоящие имена узлов, связи и расположение — не иллюстрация, а слепок рабочей системы.

Основной сценарий: AI-консультант ремонта — Telegram + сайт
AI-консультант ремонта — Telegram + сайтБлок 1 · Вход (узлы 01–13)Блоки 2–3 · Контекст и агент (узлы 14–19)Что подключить перед запускомВиджет на сайте (узлы 02 → 12, 50 → 52)Блок 5 · Расчёт (узлы 23–28)Блок 6 · Заявка (узлы 29–33)Блок 7 · Менеджеры (узлы 34–40)Блок 7 · Уведомления (узлы 41–48)Блок 8 · Финал (узлы 49–53)Чек-лист Триггер: Telegram Триггер: чат насайте Определить типсообщения Текст → единыйформат Скачать голосовое изTelegram Whisper:расшифровать голос Голос → единыйформат Голос не распознан →заглушка Сохранить фото вclient_media Фото → единый формат Прочее вложение →заглушка Сайт → единый формат Единая точка входа Загрузить клиента,черновик и заявку Собрать контекст дляагента AI-консультант Модель OpenAI Память диалога Инструмент: поиск побазе знаний Embeddings OpenAI Инструмент: списокдокументов Инструмент: документцеликом Схема ответа JSON Лог: сбой AI Сбой: это сайт? Ответ виджету: сбой Telegram: сообщить осбое Разобрать инормализовать ответ Ответ: это Telegram? Telegram: ответклиенту Сохранить карточку вlead_drafts Нужен расчётстоимости? Google Sheets: прайс Рассчитатьпредваритель… Расчёт: этоTelegram? Telegram: отправитьрасчёт Сборка: послерасчёта Создавать заявку? Найти или создатьклиента Создать заявку Привязать фото кзаявке Сборка: после заявки Решить, нужен лименеджер Нужен менеджер? Прочитать очередьRound Robin Google Sheets:график менеджеров Выбрать менеджера исобрать тексты Менеджер найден? Обновить очередь,заявку и лог Telegram: уведомитьменеджера Забратьнеотправленные фото Telegram: переслатьфото менеджеру Лог: уведомление недоставлено Лог: нет доступныхменеджеров Сборка: итогпередачи Подтверждение: этоTelegram? Telegram:подтвержде… Сборка: финал Это чат на сайте? Собрать ответ длявиджета Ответ виджету сайта Конец: Telegram
62 узлов · 70 связей · 19 типов нод — рендер по реальному экспортированному JSON, 1:1 к оригиналу n8n.
Вспомогательный сценарий: RAG — загрузка базы знаний
RAG — загрузка базы знанийЧто подставить своёУзел `07.2 · Разбиение на чанки`Логика узловПосле запуска Запуск вручную Триггер: файл базызнаний изменён Триггер: любой файлв папке изменён Определить файл Удалить старые чанкии обновить реестр Google Drive:скачать файл Загрузить ввекторную базу Загрузчик документа Разбиение на чанки Embeddings OpenAI Итог загрузки
11 узлов · 10 связей · 9 типов нод — рендер по реальному экспортированному JSON, 1:1 к оригиналу n8n.

Технологии

Из чего собрано решение

Оркестрация

n8nWebhookRespond to Webhook

AI

OpenAI GPT (агент)OpenAI WhisperOpenAI EmbeddingsStructured Output Parser

Данные

PostgreSQLSupabase Vector StorePostgres Chat MemoryGoogle Sheets

Каналы

Telegram Bot APIЧат-виджет сайта

Что это даёт на практике

Все компоненты — управляемые сервисы и открытые API. Решение разворачивается на инфраструктуре заказчика, ключи доступа остаются у него, а любую часть можно заменить без переписывания всей системы.

Границы автоматизации

Что остаётся за человеком

Осознанно оставленные ручные шаги — не недоработка, а часть проекта. Они защищают репутацию бизнеса.

Надёжность

Ошибки и нестандартные ситуации

Автоматизация ломается на исключениях, поэтому они продуманы до запуска, а не после первой жалобы.

СитуацияКак обрабатывается
<b>Модель не ответила или вернула некорректный формат</b>Событие пишется в журнал, клиент получает корректное сообщение вместо тишины, менеджеру уходит уведомление о сбое.
<b>Голосовое не распознано</b>Клиент получает просьбу написать текстом, диалог не обрывается.
<b>Прислан неподдерживаемый файл</b>Отдельная ветка с понятным ответом, обращение остаётся в работе.
<b>В прайсе нет нужного типа ремонта</b>Расчёт не выполняется, клиенту сообщается, что посчитает менеджер, обращение помечается как требующее человека.
<b>Сегодня не работает ни один менеджер</b>Заявка сохраняется, факт фиксируется в журнале, обращение попадает в утренний разбор.
<b>Уведомление менеджеру не доставлено</b>Отдельная запись в журнале — видно, что заявка создана, но не дошла.
<b>Клиент пишет повторно</b>Проверяется активная заявка, новая не создаётся, диалог продолжается по существующей.

Безопасность

Как устроена работа с данными

Реализация

Этапы и сроки

01

Разбор процесса

3–4 дня

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

02

База знаний

4–5 дней

Сбор и приведение документов в пригодный для поиска вид, настройка нарезки на фрагменты, проверка качества ответов на контрольных вопросах.

03

Прототип на одном канале

5–7 дней

Агент в Telegram: диалог, поиск по документам, границы ответов, структура ответа.

04

Данные и расчёт

4–5 дней

Схема базы, карточка клиента, черновик заявки, расчёт по прайсу, защита от дублей.

05

Распределение и второй канал

4–5 дней

График смен, round robin, уведомления менеджерам, подключение чата на сайте.

06

Тестовая эксплуатация

5–7 дней

Работа на реальном потоке под наблюдением, правка промпта и формулировок, разбор нестандартных диалогов.

Ориентировочный срок

Полный цикл — 3–4 недели при своевременных ответах со стороны заказчика и готовых материалах. Этапы идут частично параллельно.

Эффект

Расчётные показатели

Ниже — модельные диапазоны, полученные из описанных допущений. Это не отчётность заказчика: реальные значения зависят от потока обращений, качества исходных данных и дисциплины команды.

Расчётный эффект
35–50% типовых обращений закрывается без участия менеджера Доля сообщений, где вопрос покрыт базой знаний или сводится к предварительному расчёту. Остальное агент передаёт человеку.
Ожидаемый диапазон после внедрения
1–3 мин время первичного ответа в любое время суток Ответ формируется в момент обращения. Верхняя граница — расшифровка голосового и поиск по документам.
Целевая метрика пилота
20–35% снижение числа пропущенных обращений Считается по вечерним и выходным обращениям, которые раньше оставались без ответа до следующего рабочего дня.
Расчётный эффект
4–7 ч высвобождается у менеджеров за неделю Повторяющиеся ответы и ручной сбор данных о площади, районе и типе ремонта. Оценка при указанном потоке обращений.

Исходные допущения расчёта

Развитие

Куда решение может расти дальше

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

Предыдущий кейс

Обработка изображений с Nano Banana

Следующий кейс

AI-продавец и лёгкая CRM

Похожая задача в вашем проекте?

Разберу процесс и честно скажу, что здесь стоит автоматизировать, а что лучше оставить человеку. Разбор задачи — бесплатный и ни к чему не обязывает.