Агентство недвижимости: AI-ассистент для подбора объектов и работы с возражениями
Telegram-бот для агентов: подбор объектов на естественном языке + профиль клиента как CRM + готовые аргументы для продаж.
- Масштаб
- ~15 000 объектов, Новосибирск
- Этап
- 2 этапа сданы
- Сдан
- сентябрь 2025
TL;DR. 2 этапа: MVP на n8n → Python-бэкенд с персонализацией. Агент пишет в Telegram «двушка до 9 млн в Октябрьском», бот находит объекты, помнит профиль каждого клиента и выдаёт готовые аргументы для закрытия возражений.
Ситуация
Агенты по продаже новостроек вручную ищут подходящие объекты на сайтах застройщиков. Пока ищут — клиент остывает. Отработка возражений («дорого», «далеко», «подождём скидок») полностью зависит от опыта конкретного агента. Контекст по клиенту — бюджет, приоритеты, история — нигде не хранится: агент держит всё в голове или теряет.
Задача
- Автоматизировать первичный подбор объектов по запросу на естественном языке.
- Синхронизировать базу объектов по всем крупным застройщикам в реальном времени.
- Дать агентам инструмент персонализированного подбора с профилями клиентов и готовыми аргументами для продаж.
Что сделали
Этап 1 — MVP. n8n + Supabase (PostgreSQL) + LLM + Telegram Bot API. Синхронизация из XML-фида застройщиков раз в час через n8n-воркфлоу с Upsert в базу (~15 000 объектов). На входящее сообщение агента: LLM извлекает параметры из текста (комнатность, цена, площадь, город) и возвращает типизированный JSON, который подставляется напрямую в SQL-запрос с фильтром 'Свободно'. Бот отвечает до 5 карточек с планировкой, площадью и ценой.
Этап 2 — персонализация. Переезд с n8n на единый Python-бэкенд: синхронизация, логика бота, оркестрация LLM — один сервис. Источник данных сменился с XML-фида на Realty API: сервис тянет 7 сущностей — застройщики, проекты, дома, теги, акции, ипотека, объекты (Units). Sweep-функция удаляет из БД записи, которых больше нет в API.
Профиль клиента: бот запоминает бюджет, район, приоритеты и возражения, привязывает профиль по номеру телефона, переключается между параллельными клиентами в одном диалоге с агентом.
Персонализированное ранжирование: выдача пересортируется под приоритеты профиля, к карточкам подмешиваются 1–2 факта УТП из акций и тегов ЖК.
Отработка возражений: бот классифицирует возражение и выдаёт 2–3 готовые формулировки в трёх стилях — мягкий, экспертный, жёсткий — с фактами из акций и альтернативами.
Результат
- Подбор объектов занимает секунды вместо нескольких минут ручного поиска.
- Агент получает готовые формулировки для каждого возражения — не придумывает ответ на ходу.
- Бот работает как CRM внутри чата: помнит профиль каждого клиента, переключается между ними без потери контекста.
Ключевые технические решения
- LLM как типизированный парсер запросов. Вместо жёстких фильтров агент пишет обычным языком. LLM возвращает строго типизированный JSON (
rooms,price_max,area_min,city), который подставляется напрямую в SQL — без промежуточного слоя трансляции. - Sweep-функция. При каждой синхронизации записи, которых больше нет в Realty API, удаляются из БД. Без этого устаревшие объекты накапливались бы и агент получал недоступные квартиры в выдаче.
- Профиль клиента как контекст, а не отдельная система. Бюджет, приоритеты и возражения клиента хранятся как контекст того же Telegram-диалога, в котором работает агент — без переключения между инструментами.
Что было бы дальше
Естественное продолжение — автоматическая квалификация входящих обращений, AI-скоринг лидов по приоритетам профиля, аналитика паттернов возражений по базе диалогов.
Если у вас похожая задача — отдел продаж, который работает на скорости реакции, или агенты, которые каждый раз начинают с нуля — обсудим за 30 минут.
Стек
- Python
- Telegram Bot API
- LLM
- PostgreSQL
- Supabase
- n8n
- pytest