Вечерние и ночные обращения оставались без ответа до утра, менеджеры вручную повторяли одни и те же ответы про сроки, гарантию и стоимость, а заявки с сайта и из Telegram жили в разных местах.
Кейсы описывают реальные разработанные решения. Названия компаний, диалоги и данные в примерах — демонстрационные: они показывают логику работы системы, но не раскрывают клиентов. Все показатели — расчётные модели с указанными допущениями, а не подтверждённая отчётность.
Исходная ситуация
Компания делает косметический и капитальный ремонт, ремонт под ключ и дизайн-проекты. Заявки приходят двумя потоками: через форму и чат на сайте и через Telegram — из рекламы и по рекомендациям. Менеджеров несколько, у каждого свой график, выходные и отпуска. Обращения распределял старший менеджер: смотрел, кто сегодня работает, и пересылал контакт в личные сообщения. Вечером и в выходные этого не делал никто.
Люди пишут в десять вечера, а мы отвечаем в десять утра — половина к этому времени уже нашла других. Ещё менеджеры полдня отвечают на одно и то же: сколько стоит, какие сроки, есть ли гарантия. И хочется, чтобы человеку сразу называли хотя бы порядок цены, а не «приедет замерщик — узнаете».
Анализ
Разбор начинается не с технологий, а с того, где процесс теряет время, деньги или клиентов.
Цель
Сделать так, чтобы любое обращение — в любое время и из любого канала — получало осмысленный ответ за минуту, содержательные вопросы закрывались по документам компании, клиент видел ориентировочную стоимость, а заявка попадала конкретному менеджеру, который сегодня действительно работает.
Рамки проекта
Эти ограничения определили архитектуру сильнее, чем выбор конкретных сервисов.
Решение
Telegram и чат на сайте сходятся в общую точку входа. Дальше вся логика одна: канал влияет только на то, каким способом вернуть ответ.
Голосовые расшифровываются через Whisper, фотографии объекта сохраняются и позже прикрепляются к заявке, любой другой формат получает корректный ответ вместо молчания.
База знаний лежит в векторном хранилище. У агента три инструмента: семантический поиск, список документов и чтение документа целиком, если поиск дал обрывок.
Перед ответом система подтягивает карточку клиента, черновик заявки и активную заявку. Известные данные попадают в промпт как достоверные — их не спрашивают повторно.
Когда клиент спрашивает о цене, отдельный шаг берёт цену за квадратный метр из прайса и считает ориентир. Если строки в прайсе нет — вопрос мягко уходит к менеджеру.
Если за клиентом уже закреплён менеджер и он сегодня на смене — пишем ему. Иначе очередь round robin среди работающих сегодня сотрудников.
Пользовательский сценарий
Клиент пишет в Telegram или в чат на сайте — в любое время суток, текстом, голосом или с фотографией объекта. Система принимает сообщение сразу, независимо от того, работает ли сейчас кто-то из менеджеров.
Фактические вопросы — о сроках, гарантии, материалах, географии выездов — закрываются ответом по документам компании, а не общими фразами.
Если он спрашивает о стоимости, система считает предварительный расчёт по прайсу и отдельно уточняет, что точная сумма определяется после бесплатного замера.
Имя, телефон, площадь, район и тип ремонта фиксируются по мере того, как клиент их называет, — переспрашивать уже сказанное не нужно.
Когда данных достаточно, создаётся заявка, и она попадает менеджеру, который сегодня действительно на смене, — с учётом графика и уже закреплённых клиентов.
В Telegram менеджер получает карточку заявки и фотографии объекта и подключается уже на этапе согласования замера, а не с нуля.
Пошаговая логика
Шаги, помеченные как действие человека, автоматизации не подлежат сознательно.
Telegram-бот и вебхук чата на сайте принимают сообщение. Тип определяется сразу: текст, голос, фото или другое вложение.
Голос скачивается и расшифровывается через Whisper, фото сохраняется в хранилище медиа и привязывается к клиенту, текст проходит напрямую. Дальше все каналы идут по одной ветке.
Из базы поднимаются карточка клиента, черновик заявки и активная заявка. Собирается блок «что мы уже знаем» и список недостающих полей.
Агент отвечает с учётом истории диалога и известных данных. Фактические вопросы обязательно проходят через поиск по базе знаний. Ответ возвращается строго структурированным.
Всё, что удалось выяснить, дописывается в черновик заявки. При следующем сообщении эти данные уже считаются известными.
Если клиент явно спросил о стоимости, система берёт цену за м² из прайса и считает ориентир, отдельно проговаривая, что это оценка до замера.
Когда собраны все обязательные поля, создаётся клиент и заявка, к ней прикрепляются фото из диалога. При активной заявке дубль не создаётся.
Читается очередь round robin и график смен на сегодня. Приоритет — у закреплённого за клиентом менеджера, если он сегодня работает.
Менеджер получает в Telegram карточку заявки и фотографии объекта. Очередь и статус заявки обновляются.
Клиент получает номер заявки и имя менеджера тем же каналом, откуда написал.
Если менеджеров на смене нет, расчёт не удался или уведомление не доставлено — событие пишется в журнал, и заявка остаётся видимой для утреннего разбора.
Архитектура
# 1. приоритет — менеджер, уже закреплённый за клиентом # 2. иначе round robin среди тех, кто сегодня на смене # 3. если сегодня не работает никто — заявка не теряется today = сегодняшняя дата в часовом поясе Europe/Moscow working = строки графика, где date = today и working = да if (закреплённый менеджер есть и он в working) → назначить его else if (working не пуст) → взять того, кому назначали дольше всех else → «45 · Лог: нет доступных менеджеров» заявка остаётся в базе со статусом ожидания
Не абстракция
Точная визуализация по фактически экспортированному файлу n8n: настоящие имена узлов, связи и расположение — не иллюстрация, а слепок рабочей системы.
Технологии
Все компоненты — управляемые сервисы и открытые API. Решение разворачивается на инфраструктуре заказчика, ключи доступа остаются у него, а любую часть можно заменить без переписывания всей системы.
Границы автоматизации
Осознанно оставленные ручные шаги — не недоработка, а часть проекта. Они защищают репутацию бизнеса.
Надёжность
Автоматизация ломается на исключениях, поэтому они продуманы до запуска, а не после первой жалобы.
| Ситуация | Как обрабатывается |
|---|---|
| <b>Модель не ответила или вернула некорректный формат</b> | Событие пишется в журнал, клиент получает корректное сообщение вместо тишины, менеджеру уходит уведомление о сбое. |
| <b>Голосовое не распознано</b> | Клиент получает просьбу написать текстом, диалог не обрывается. |
| <b>Прислан неподдерживаемый файл</b> | Отдельная ветка с понятным ответом, обращение остаётся в работе. |
| <b>В прайсе нет нужного типа ремонта</b> | Расчёт не выполняется, клиенту сообщается, что посчитает менеджер, обращение помечается как требующее человека. |
| <b>Сегодня не работает ни один менеджер</b> | Заявка сохраняется, факт фиксируется в журнале, обращение попадает в утренний разбор. |
| <b>Уведомление менеджеру не доставлено</b> | Отдельная запись в журнале — видно, что заявка создана, но не дошла. |
| <b>Клиент пишет повторно</b> | Проверяется активная заявка, новая не создаётся, диалог продолжается по существующей. |
Безопасность
Реализация
Как сейчас приходят обращения, кто и как распределяет, какие вопросы задают чаще всего, что должно остаться за человеком.
Сбор и приведение документов в пригодный для поиска вид, настройка нарезки на фрагменты, проверка качества ответов на контрольных вопросах.
Агент в Telegram: диалог, поиск по документам, границы ответов, структура ответа.
Схема базы, карточка клиента, черновик заявки, расчёт по прайсу, защита от дублей.
График смен, round robin, уведомления менеджерам, подключение чата на сайте.
Работа на реальном потоке под наблюдением, правка промпта и формулировок, разбор нестандартных диалогов.
Полный цикл — 3–4 недели при своевременных ответах со стороны заказчика и готовых материалах. Этапы идут частично параллельно.
Эффект
Ниже — модельные диапазоны, полученные из описанных допущений. Это не отчётность заказчика: реальные значения зависят от потока обращений, качества исходных данных и дисциплины команды.
Развитие
Система собрана модульно, поэтому каждый пункт добавляется без переработки существующей логики.
Разберу процесс и честно скажу, что здесь стоит автоматизировать, а что лучше оставить человеку. Разбор задачи — бесплатный и ни к чему не обязывает.