Автоматизация объявлений в Telegram: как бот публикует за меня в 150+ групп

Каждое утро в 9:00 по балийскому времени мой бот просыпается раньше меня. Он проверяет, какие виллы свободны, формирует объявления под каждую аудиторию, подбирает фотографии и публикует всё это в 150+ Telegram-групп. К тому моменту, как я беру в руки кофе, уже вышли десятки постов. Без меня. Без ошибок. Каждый день.

Раньше я делал это вручную. Садился за ноутбук, открывал все чаты, копировал тексты, вставлял фотки, менял детали под каждую группу. Час-полтора каждое утро, семь дней в неделю. А потом ещё вечерняя рассылка. Это называется "быть заложником собственного бизнеса". Расскажу, как я из этого вышел.

Почему ручная публикация — это катастрофа для бизнеса

Бали — невероятно динамичный рынок аренды вилл. Сезон, праздники, курс доллара, новые конкуренты — всё это влияет на заполняемость буквально за несколько дней. Когда у тебя 16 вилл, ты не можешь себе позволить быть невидимым. Telegram здесь — это не просто мессенджер. Это основной канал, где туристы, экспаты и местные агенты ищут жильё.

Проблема ручной публикации не в том, что это скучно (хотя и это тоже). Проблема в системных сбоях: ты забыл обновить цену, опубликовал старые фото, пропустил вечерний выход в эфир потому что был на встрече. Или, что хуже всего, провёл час за копипастом, а конкурент за это время уже ответил пяти клиентам и закрыл три сделки.

Три главных боли ручного подхода

  • Время: 1–2 часа ежедневно на монотонную работу, которую невозможно делегировать без потери качества. Сотруднику нужно объяснять, контролировать, исправлять.
  • Несогласованность: в разных группах появляются разные цены, разные фото, разное описание одной и той же виллы. Это разрушает доверие.
  • Пропуски: заболел, уехал, встреча затянулась — объявления не вышли. Один пропущенный день в высокий сезон — это потерянные бронирования.

Когда я посчитал, сколько времени в год уходит только на публикации объявлений, получилось больше 700 часов. Это почти 30 полных рабочих дней. И это без учёта вечерних рассылок, обновлений цен и сезонных акций. Что-то нужно было менять.

Архитектура системы: как это работает изнутри

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

Технический стек: Python-telegram-bot как основа, PostgreSQL для хранения данных о виллах, группах и истории публикаций, APScheduler для управления расписанием. Интеграция с eZee — системой управления бронированиями — позволяет получать актуальные данные о доступности вилл в режиме реального времени.

Что происходит каждые утро в 9:00 WITA

  • Планировщик (APScheduler) запускает главный процесс сбора данных
  • Бот обращается к eZee API и получает список свободных вилл на ближайшие 60 дней
  • Из PostgreSQL подтягиваются актуальные цены, описания, теги аудитории и фотографии для каждой виллы
  • Для каждой группы из базы загружается её профиль: язык общения, тип аудитории, предпочтительный формат поста
  • Генерируется уникальный вариант объявления под каждый сегмент (россияне, европейцы, местная аудитория)
  • Посты публикуются с интервалом 15–30 секунд между группами, чтобы не триггерить антиспам-фильтры Telegram
  • Каждая публикация логируется в PostgreSQL с временной меткой, ID группы и статусом доставки

Вечерний цикл в 18:00 WITA работает по той же схеме, но с другим акцентом: утром мы рассказываем о доступных датах, вечером — о спецпредложениях и последних свободных окнах на горизонте недели.

Структура данных в PostgreSQL

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

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

150 групп: как мы дошли до такого масштаба

Изначально система стартовала с 20 групп. Это был рабочий минимум: несколько крупных туристических чатов Бали, пара групп для экспатов, несколько чатов арендаторов. Тогда казалось, что этого достаточно.

Потом началось масштабирование на Пхукет. Я нашёл базу из 1400 пхукетских групп, отобрал 150 самых активных и релевантных. Запустил автоматическое вступление в группы через несколько аккаунтов — один аккаунт не справится с таким объёмом из-за ограничений Telegram. Теперь три аккаунта покрывают 150+ групп: часть балийских туристических чатов, чаты для экспатов на Бали, группы арендаторов, тематические сообщества путешественников.

Типология групп и их аудитория

Все группы в системе разбиты на несколько категорий, каждая со своим форматом объявления:

  • Туристические чаты Бали (50К+ участников): короткий пост, яркое фото, акцент на уникальность локации и свободные даты. Аудитория — туристы на этапе планирования.
  • Группы русскоязычных экспатов: более подробное описание, акцент на долгосрочную аренду и инфраструктуру рядом. Аудитория — люди, которые живут на Бали или планируют переехать.
  • Тематические чаты арендаторов: детальные технические характеристики, точные цены, условия договора. Аудитория — агенты и опытные арендаторы.
  • Европейские экспат-сообщества: посты на английском, акцент на privacy, безопасность, близость к природе. Аудитория — digital nomads и семьи из Европы.
  • Пхукетские группы: региональная специфика, сезонность Пхукета, сравнение с Бали. Отдельный сегмент аудитории с другими ожиданиями.

Таргетинг: разные объявления для разных людей

Один из главных принципов системы — не рассылать одно и то же всем. Это и неэффективно, и раздражает аудиторию. Русскоязычный турист, который ищет виллу на две недели, и агент по недвижимости, который подбирает объект для долгосрочной аренды, — это принципиально разные люди с разными потребностями.

Система таргетинга работает на двух уровнях. Первый уровень — профиль группы: у каждого чата в базе есть флаг языка (ru/en), тип аудитории (туристы/экспаты/агенты) и предпочтительный стиль (короткий/подробный). Второй уровень — профиль виллы: теги, которые указывают, какой аудитории она подходит больше всего.

Как выглядят объявления для разных аудиторий

Для туристических чатов пост выглядит примерно так:

🏝️ Вилла Sunset Paradise — Убуд, Бали
3 спальни / 2 ванные / бассейн
Свободна: 20 апреля — 15 мая
От $89/ночь (специальная цена)
Рейтинг: ⭐ 4.8 (18 отзывов)
Подробнее и бронирование: [кнопка]

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

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

Динамическое ценообразование прямо в объявлениях

Одна из самых мощных функций системы — автоматическое ценообразование. Бот не просто берёт цену из базы и вставляет в объявление. Он анализирует загрузку виллы на следующие 30 дней и принимает решение о скидке.

Логика простая: если вилла загружена менее чем на 40% в следующем месяце, бот автоматически снижает цену в объявлении на 15–20% и помечает её как "специальное предложение". Если загрузка выше 70% — цена стандартная или даже чуть выше. Это называется динамическим ценообразованием, и именно эта механика используется всеми крупными отельными агрегаторами. Только там всё управляется командой аналитиков, а у меня — один скрипт.

Связь с системой мониторинга финансов

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

Это замкнутый контур обратной связи: финансовые данные влияют на маркетинг, маркетинг влияет на бронирования, бронирования влияют на финансовые данные. Всё автоматически.

Форматы постов: текст, фото и кнопки бронирования

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

Фотографии: не просто любые, а лучшие

Для каждой виллы в базе хранятся фотографии с рейтингом. Рейтинг выставляется вручную один раз при добавлении виллы в систему: какие фото работают лучше, какие — хуже. Бот всегда берёт топ-3 снимка — обычно это главный вид бассейна, спальня и вид с территории.

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

Кнопки и UTM-метки

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

Например, ссылка из крупного туристического чата будет содержать utm_source=telegram&utm_medium=group&utm_campaign=bali_tourist&utm_content=group_id_12345. Это не просто красивые цифры в Google Analytics — это понимание того, какие группы реально конвертируют, а какие дают только просмотры.

Аналитика: откуда реально приходят лиды

Без аналитики автоматизация публикаций — это стрельба вслепую. Ты не знаешь, что работает, что нет, куда направлять ресурсы. Поэтому система с самого начала строилась с аналитикой в основе.

PostgreSQL хранит полную историю каждой публикации: время, группа, вилла, формат поста, наличие фото, тип аудитории. Отдельно — данные о переходах по UTM-меткам из Google Analytics. Еженедельно система автоматически генерирует отчёт: сколько публикаций вышло, сколько переходов получено, сколько заявок и бронирований оформлено.

Что показывает аналитика

  • Лучшее время публикации: утренние посты в 9:00 дают в 1.7 раза больше переходов, чем вечерние в 18:00. Но вечерние объявления конвертируются в заявки чаще — люди принимают решение вечером.
  • Лучшие группы: 20% групп дают 80% всех переходов. Это классический принцип Парето. Теперь в эти группы публикуем чаще и с более качественным контентом.
  • Лучший формат: посты с альбомом из трёх фото получают в 2.3 раза больше реакций, чем текст без фото. Это не сюрприз, но хорошо иметь это подтверждённым данными.
  • Лучшие виллы для продвижения: есть виллы, объявления о которых получают стабильно высокую вовлечённость. Есть такие, где реакция минимальная. Система автоматически увеличивает частоту публикаций для первых.

Связь с системой лидогенерации

Telegram-публикации — это часть большой системы работы с лидами. Когда кто-то нажимает на кнопку в объявлении и пишет боту, это фиксируется как лид с источником "telegram_broadcast". Дальше AI-система квалификации лидов оценивает запрос, определяет степень готовности к покупке и передаёт в нужную воронку. Всё это без моего участия — от публикации объявления до первого ответа клиенту.

Технические детали: APScheduler, rate limits и защита от банов

Когда работаешь с 150 группами и несколькими аккаунтами, Telegram становится довольно параноидальным. Платформа активно борется со спамом, и если делать всё неаккуратно — аккаунты получают блокировки, а группы перестают получать сообщения.

Как мы обходим ограничения

  • Распределение по времени: публикация в 150 групп занимает не секунды, а 45–60 минут. Между каждой публикацией случайная пауза от 15 до 45 секунд. Это имитирует поведение живого человека.
  • Ротация аккаунтов: три аккаунта делят нагрузку. Один аккаунт публикует не более 50 сообщений в день, это хорошо ниже лимитов Telegram.
  • Разнообразие контента: для каждой виллы есть несколько вариантов описания, которые чередуются. Одно и то же сообщение слово-в-слово никогда не появляется в разных группах в один день.
  • Мониторинг статуса аккаунтов: система проверяет, не получил ли аккаунт временный бан, и при необходимости переключает публикацию на резервный аккаунт.

Обработка ошибок и self-healing

Система умеет восстанавливаться после сбоев. Если публикация в конкретную группу не прошла (группа закрыта, бот исключён, сеть недоступна) — это логируется и помечается для повторной попытки через час. Если группа три раза подряд недоступна — она переводится в статус "неактивна" и исключается из рассылки до ручной проверки.

Подход к самовосстановлению я подробнее описал в статье про self-healing боты и систему, которая чинит себя сама. Принцип тот же: система должна уметь диагностировать свои проблемы и либо решать их самостоятельно, либо чётко сигнализировать о том, что нужна помощь человека.

Результаты за первые месяцы работы

Честные цифры, без приукрашивания:

  • 3–4 новых лида в неделю из Telegram-публикаций. Это не огромный поток, но это стабильный и предсказуемый канал без каких-либо вложений в рекламу.
  • Экономия 10–14 часов в неделю на ручной публикации. За месяц это 40–56 часов — почти полная рабочая неделя, которую я могу потратить на что-то более ценное.
  • 150+ групп охвачено ежедневно. Вручную такой масштаб был бы просто невозможен.
  • Конверсия из перехода в заявку — около 4%. Небольшой процент, но при объёме переходов это даёт стабильный поток обращений.
  • Ноль ошибок в ценах и датах с момента запуска системы. Раньше периодически выходили объявления с устаревшими ценами или уже занятыми датами — это разрушало доверие.

Важный момент: Telegram-публикации — это не замена другим каналам. Это дополнительный стабильный источник лидов, который работает автономно. Основные бронирования по-прежнему приходят через Airbnb и Booking.com. Но Telegram даёт прямые обращения без комиссии агрегаторов — и это делает его экономически привлекательным.

Что дальше: направления развития системы

Система работает, но стоять на месте нельзя. Несколько направлений, в которых я планирую развивать автоматизацию объявлений:

AI-генерация текстов объявлений

Сейчас тексты хранятся в базе и вручную пишутся для каждой виллы. Следующий шаг — автоматическая генерация вариантов текста с помощью языковой модели. Разные объявления для одной виллы, разные акценты, разный эмоциональный тон — всё это поможет избежать "баннерной слепоты" у подписчиков групп.

Контент-автоматизацию с AI я уже применяю в других частях бизнеса — подробнее об этом в статье про автоматизацию контента с AI. Тот же подход планирую применить к объявлениям.

Персонализированные рассылки

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

Расширение на новые регионы

База из 1400 пхукетских групп, из которых мы уже охватываем 150 самых активных, — это только начало. Следующие регионы на карте: острова Индонезии (Lombok, Komodo), Вьетнам, Таиланд. Инфраструктура системы позволяет добавлять новые регионы без переписывания кода — просто новые группы в базе с правильными тегами.

A/B-тестирование форматов

Система уже собирает данные о том, какие посты работают лучше. Следующий шаг — автоматическое A/B-тестирование: в 50% групп одного типа публикуется вариант A, в 50% — вариант B. Через неделю система сравнивает конверсию и автоматически выбирает победителя. Без моего участия.

Главный урок: что делает автоматизацию объявлений работающей

За время работы с этой системой я понял несколько вещей, которые не очевидны в начале.

Первое: автоматизация не решает проблему плохого контента. Если объявление неинтересное, неконкретное или устаревшее — бот будет автоматически публиковать плохой контент в 150 групп вместо 20. Масштаб работает в обе стороны. Нужно сначала разобраться, что делает объявление эффективным, а потом автоматизировать.

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

Третье: аналитика — это не опция, это основа. Без понимания того, какие группы дают реальные лиды, а какие — только просмотры, ты тратишь ресурсы впустую. UTM-метки, логирование, еженедельные отчёты — это обязательная часть системы, а не приятная добавка.

Четвёртое: Telegram — живая экосистема. Группы появляются и умирают, модераторы меняют правила, аудитория мигрирует между чатами. Система должна быть гибкой: легко добавлять новые группы, деактивировать неработающие, корректировать форматы под изменившиеся требования.

Если вы управляете недвижимостью на Бали или в любом другом туристическом регионе и ещё вручную публикуете объявления в Telegram — посчитайте, сколько часов в неделю вы на это тратите. Умножьте на свою стоимость часа. Скорее всего, автоматизация окупится за первый же месяц — и дальше будет работать на вас, пока вы занимаетесь стратегией, а не копипастом.

Подобные системы мы строим для клиентов в рамках студии 4BOS. Если интересно обсудить, как это может работать в вашем бизнесе — напишите мне в Telegram, ссылка внизу страницы.

Читайте также

Подписаться на блог в Telegram

Читайте свежие кейсы об AI-автоматизации, системной архитектуре и масштабировании бизнеса.

Подписаться