← Все статьи

Как мы собрали AI-менеджера для агентства недвижимости: архитектура, цифры и грабли

Честный разбор изнутри: Telegram-бот на нейросети, который подбирает из 212 объектов, понимает голосовые и записывает на показ. Что работает, что пришлось переделать, сколько стоит в месяц и что бы я сделал иначе.

Никита Титлин·20 августа 2026 г.·6 мин чтения

Это не маркетинговый кейс «мы сделали и всё стало хорошо». Это разбор для тех, кто думает о похожей системе и хочет понять, как она устроена внутри, где болит и во что обходится. С цифрами, которые обычно не показывают.

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

Агентство недвижимости: два города, несколько менеджеров, база из 212 объектов с фото. Лиды приходят из Авито, Циана, с сайта и напрямую в Telegram. Проблемы классические:

  • Пик обращений — вечер и выходные, ответ — утром. Часть лидов к этому времени уже в другом агентстве.
  • Переписка в личных телефонах риелторов. Руководитель не видит, сколько лидов в работе и почему отваливаются.
  • Менеджер одинаково подробно общается и с горячим клиентом, и с «просто смотрю».

Задача формулировалась не как «сделайте бота», а как «сделайте так, чтобы ни один лид не остался без ответа дольше минуты, и чтобы я видел воронку». Это важно: от формулировки зависит архитектура.

Что получилось: три части системы

1. AI-ассистент «Анна» в Telegram

Бот на языковой модели (Gemini через function calling). Не кнопочное меню — свободный диалог. Что умеет:

  • Понимает запрос в свободной форме: «двушка до 8 в центре с ремонтом» → бюджет, комнаты, район, состояние.
  • Подбирает объекты из базы и отправляет с фото (до 2 объектов × 3 фото одним сообщением).
  • Понимает голосовые — транскрибирует и отвечает по сути.
  • Знает агентство: команду, районы с ценами, ипотечные программы от 3,5% до 18%, услуги, скрипты возражений.
  • Ведёт по воронке: квалификация → подбор → отработка возражений → запись на показ → передача менеджеру.
  • Записывает на показ через inline-кнопки со свободными слотами.
  • Передаёт менеджеру с полной историей, когда клиент просит человека или когда готов к показу.
  • Уведомляет менеджера: новый лид, телефон, запись, передача.

Отдельная фича — кружки (video notes): бот отправляет короткие видео от живых риелторов в нужные моменты диалога. Это добавляет человеческого и сильно снижает ощущение «я говорю с роботом».

2. Админ-панель

Без неё бот — чёрный ящик. Восемь разделов:

  1. Дашборд — статистика и последние диалоги.
  2. Переписки — все лиды, история, возможность написать от имени Анны, заметки к лиду.
  3. Рассылка — фильтр по городу, стадии, бюджету → массовая отправка («всем, кто искал двушки до 8 млн — новый объект»).
  4. Горящие предложения — ручной или авто-режим.
  5. Кружки — загрузка видео, подписи.
  6. Аналитика — конверсии по стадиям, распределение бюджетов, активность по часам и дням недели.
  7. Объекты — вся база с фильтрами.
  8. Настройки — редактор системного промпта без перезапуска, слоты показов.

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

3. Сайт-каталог

Отдельная история, коротко: Astro + Tailwind, SEO-страницы под города и типы жилья, каталог из той же базы, лид-формы, Метрика. Данные — одни на бот и сайт.

Цифры, которые обычно не показывают

ПараметрЗначение
Время ответа бота3–7 секунд (зависит от модели и длины контекста)
База объектов212, с фото
Стоимость запросов к нейросети~2–5 тыс. ₽/мес при текущем потоке
Хостингодин VPS, на котором живёт ещё несколько проектов
Разработка первой версии~3 недели
Доработки после запускаещё ~2 недели по обратной связи

Самая частая реакция клиентов в диалогах — они не понимают, что говорят с ботом, пока сами не спросят. Это и хорошо (разговор идёт естественно), и накладывает ответственность: бот не должен врать про объекты и цены.

Грабли — что пришлось переделывать

Двойная отправка рассылки

Первая версия хранила лидов в JSON-файле. Бот и админка писали в него одновременно → гонка записи → однажды рассылка ушла дважды. Клиенты получили два одинаковых сообщения. Неприятно, но не смертельно — зато стало ясно, что JSON как база закончился.

Решение: переезд на SQLite с WAL-режимом и идемпотентность на побочных действиях (ключ дедупликации на каждую отправку). Одна база, транзакции, два процесса не мешают друг другу.

Бот видел устаревшие данные

Первая версия грузила всех лидов в память при старте. Админка меняла данные — бот об этом не знал до перезапуска.

Решение: чтение из базы по запросу, а не кэш в памяти. Банально, но в спешке первой версии это было упущено.

Нет журнала — нельзя разобраться «что произошло»

Когда клиент жалуется «бот мне не ответил», нужно восстановить последовательность событий. В первой версии её не было.

Решение: append-only журнал событий. Каждое действие — запись. Заодно это база для аналитики: воронка считается по событиям, а не по текущему состоянию.

Бот не всегда знал, что передал менеджеру

Клиент нажал «позвать менеджера», менеджер ответил, но потом клиент снова написал — и бот вклинился в разговор.

Решение: явная стадия human с кнопкой «вернуться к Анне». Пока стадия human — бот молчит.

Что бы я сделал иначе с самого начала

  1. База — сразу SQLite, не JSON. Сэкономило бы неделю и один неловкий разговор с клиентом.
  2. Журнал событий — с первого дня. Без него отладка — это гадание.
  3. Стадия «человек в диалоге» — в первой версии, а не после инцидента.
  4. Меньше функций на старте. Кружки, горящие предложения, рассылки — всё это появилось, потому что «а давайте ещё». Базовый бот без них уже решал главную боль. Остальное лучше добавлять по запросу, а не впрок.

Что НЕ делали — осознанно

Микросервисы, Kubernetes, Redis, очереди сообщений. Для агентства с единицами лидов в день это сложность без нагрузки. Модульный монолит на одном сервере — правильный масштаб. Если вырастет до мульти-агентского SaaS — event log и чистые домены позволят переехать без переписывания. Но закладывать это сейчас — платить за то, чего может не случиться.

Хорошая архитектура — не самая продвинутая, а пропорциональная задаче.

Сколько это стоит — честно

Разработка такой системы под ключ (бот + админка) — от 100 000 ₽, с сайтом — от 150 000. Текущие расходы — нейросеть 2–5 тыс. ₽/мес + хостинг. Поддержка — от 15 000 ₽/мес, если нужна.

Окупаемость: одна не потерянная сделка в квартал. Для агентства с комиссией 100–300 тыс. ₽ за сделку — первые три месяца.

Если думаете о похожем

Три вопроса, которые стоит задать себе до старта:

  1. Откуда приходят лиды? Если из пяти каналов — сначала сведите их в один, потом бот.
  2. Есть ли база объектов в структурированном виде? Таблица, фид, CRM — что угодно, но не «в голове у Марины». Без базы бот нечего подбирать.
  3. Кто будет управлять ботом после запуска? Если никто — не заказывайте. Система без хозяина деградирует за 2–3 месяца.

Хотите потыкать систему живьём? Напишите — покажу админку и реальные диалоги, отвечу на вопросы про вашу ситуацию. Это ни к чему не обязывает.

Узнали свою ситуацию?

Разберу ваш путь лида бесплатно: где теряются заявки, что автоматизировать первым и во что это обойдётся. 30 минут, без обязательств.

Написать в Telegram →