Как мы собрали AI-менеджера для агентства недвижимости: архитектура, цифры и грабли
Честный разбор изнутри: Telegram-бот на нейросети, который подбирает из 212 объектов, понимает голосовые и записывает на показ. Что работает, что пришлось переделать, сколько стоит в месяц и что бы я сделал иначе.
Это не маркетинговый кейс «мы сделали и всё стало хорошо». Это разбор для тех, кто думает о похожей системе и хочет понять, как она устроена внутри, где болит и во что обходится. С цифрами, которые обычно не показывают.
Исходная ситуация
Агентство недвижимости: два города, несколько менеджеров, база из 212 объектов с фото. Лиды приходят из Авито, Циана, с сайта и напрямую в Telegram. Проблемы классические:
- Пик обращений — вечер и выходные, ответ — утром. Часть лидов к этому времени уже в другом агентстве.
- Переписка в личных телефонах риелторов. Руководитель не видит, сколько лидов в работе и почему отваливаются.
- Менеджер одинаково подробно общается и с горячим клиентом, и с «просто смотрю».
Задача формулировалась не как «сделайте бота», а как «сделайте так, чтобы ни один лид не остался без ответа дольше минуты, и чтобы я видел воронку». Это важно: от формулировки зависит архитектура.
Что получилось: три части системы
1. AI-ассистент «Анна» в Telegram
Бот на языковой модели (Gemini через function calling). Не кнопочное меню — свободный диалог. Что умеет:
- Понимает запрос в свободной форме: «двушка до 8 в центре с ремонтом» → бюджет, комнаты, район, состояние.
- Подбирает объекты из базы и отправляет с фото (до 2 объектов × 3 фото одним сообщением).
- Понимает голосовые — транскрибирует и отвечает по сути.
- Знает агентство: команду, районы с ценами, ипотечные программы от 3,5% до 18%, услуги, скрипты возражений.
- Ведёт по воронке: квалификация → подбор → отработка возражений → запись на показ → передача менеджеру.
- Записывает на показ через inline-кнопки со свободными слотами.
- Передаёт менеджеру с полной историей, когда клиент просит человека или когда готов к показу.
- Уведомляет менеджера: новый лид, телефон, запись, передача.
Отдельная фича — кружки (video notes): бот отправляет короткие видео от живых риелторов в нужные моменты диалога. Это добавляет человеческого и сильно снижает ощущение «я говорю с роботом».
2. Админ-панель
Без неё бот — чёрный ящик. Восемь разделов:
- Дашборд — статистика и последние диалоги.
- Переписки — все лиды, история, возможность написать от имени Анны, заметки к лиду.
- Рассылка — фильтр по городу, стадии, бюджету → массовая отправка («всем, кто искал двушки до 8 млн — новый объект»).
- Горящие предложения — ручной или авто-режим.
- Кружки — загрузка видео, подписи.
- Аналитика — конверсии по стадиям, распределение бюджетов, активность по часам и дням недели.
- Объекты — вся база с фильтрами.
- Настройки — редактор системного промпта без перезапуска, слоты показов.
Последний пункт — ключевой. Владелец агентства может поменять поведение бота (тон, приоритеты, что говорить про ипотеку) сам, не вызывая разработчика.
3. Сайт-каталог
Отдельная история, коротко: Astro + Tailwind, SEO-страницы под города и типы жилья, каталог из той же базы, лид-формы, Метрика. Данные — одни на бот и сайт.
Цифры, которые обычно не показывают
| Параметр | Значение |
|---|---|
| Время ответа бота | 3–7 секунд (зависит от модели и длины контекста) |
| База объектов | 212, с фото |
| Стоимость запросов к нейросети | ~2–5 тыс. ₽/мес при текущем потоке |
| Хостинг | один VPS, на котором живёт ещё несколько проектов |
| Разработка первой версии | ~3 недели |
| Доработки после запуска | ещё ~2 недели по обратной связи |
Самая частая реакция клиентов в диалогах — они не понимают, что говорят с ботом, пока сами не спросят. Это и хорошо (разговор идёт естественно), и накладывает ответственность: бот не должен врать про объекты и цены.
Грабли — что пришлось переделывать
Двойная отправка рассылки
Первая версия хранила лидов в JSON-файле. Бот и админка писали в него одновременно → гонка записи → однажды рассылка ушла дважды. Клиенты получили два одинаковых сообщения. Неприятно, но не смертельно — зато стало ясно, что JSON как база закончился.
Решение: переезд на SQLite с WAL-режимом и идемпотентность на побочных действиях (ключ дедупликации на каждую отправку). Одна база, транзакции, два процесса не мешают друг другу.
Бот видел устаревшие данные
Первая версия грузила всех лидов в память при старте. Админка меняла данные — бот об этом не знал до перезапуска.
Решение: чтение из базы по запросу, а не кэш в памяти. Банально, но в спешке первой версии это было упущено.
Нет журнала — нельзя разобраться «что произошло»
Когда клиент жалуется «бот мне не ответил», нужно восстановить последовательность событий. В первой версии её не было.
Решение: append-only журнал событий. Каждое действие — запись. Заодно это база для аналитики: воронка считается по событиям, а не по текущему состоянию.
Бот не всегда знал, что передал менеджеру
Клиент нажал «позвать менеджера», менеджер ответил, но потом клиент снова написал — и бот вклинился в разговор.
Решение: явная стадия human с кнопкой «вернуться к Анне». Пока стадия human — бот молчит.
Что бы я сделал иначе с самого начала
- База — сразу SQLite, не JSON. Сэкономило бы неделю и один неловкий разговор с клиентом.
- Журнал событий — с первого дня. Без него отладка — это гадание.
- Стадия «человек в диалоге» — в первой версии, а не после инцидента.
- Меньше функций на старте. Кружки, горящие предложения, рассылки — всё это появилось, потому что «а давайте ещё». Базовый бот без них уже решал главную боль. Остальное лучше добавлять по запросу, а не впрок.
Что НЕ делали — осознанно
Микросервисы, Kubernetes, Redis, очереди сообщений. Для агентства с единицами лидов в день это сложность без нагрузки. Модульный монолит на одном сервере — правильный масштаб. Если вырастет до мульти-агентского SaaS — event log и чистые домены позволят переехать без переписывания. Но закладывать это сейчас — платить за то, чего может не случиться.
Хорошая архитектура — не самая продвинутая, а пропорциональная задаче.
Сколько это стоит — честно
Разработка такой системы под ключ (бот + админка) — от 100 000 ₽, с сайтом — от 150 000. Текущие расходы — нейросеть 2–5 тыс. ₽/мес + хостинг. Поддержка — от 15 000 ₽/мес, если нужна.
Окупаемость: одна не потерянная сделка в квартал. Для агентства с комиссией 100–300 тыс. ₽ за сделку — первые три месяца.
Если думаете о похожем
Три вопроса, которые стоит задать себе до старта:
- Откуда приходят лиды? Если из пяти каналов — сначала сведите их в один, потом бот.
- Есть ли база объектов в структурированном виде? Таблица, фид, CRM — что угодно, но не «в голове у Марины». Без базы бот нечего подбирать.
- Кто будет управлять ботом после запуска? Если никто — не заказывайте. Система без хозяина деградирует за 2–3 месяца.
Хотите потыкать систему живьём? Напишите — покажу админку и реальные диалоги, отвечу на вопросы про вашу ситуацию. Это ни к чему не обязывает.
Разберу ваш путь лида бесплатно: где теряются заявки, что автоматизировать первым и во что это обойдётся. 30 минут, без обязательств.
Написать в Telegram →