Автоматизация бизнеса на Бали: реальный кейс — один день, восемь задач, ноль сотрудников
Я посчитал: за один день починил три бага, обновил сайт, поднял два сервиса, расширил мониторинг с 20 до 143 чатов и настроил автоматическое распределение задач между ботами. Без единого сотрудника. Это не теория — это хроника конкретного рабочего дня в системе автоматизации бизнеса на Бали, которую я строил несколько лет.
В этой статье — подробный разбор каждого шага: что сломалось, как я это нашёл, что именно починил и какой результат получил. Никаких общих слов про «внедрение AI» — только конкретные задачи, конкретный код и конкретные цифры.
Контекст: как устроена система
Прежде чем переходить к деталям дня, важно понять контекст. Я управляю портфелем из 16 вилл на Бали через платформу Solar Property. У меня нет отдела продаж, нет менеджеров по лидам, нет дежурного по сайту. Вместо этого — система из ботов, скриптов и сервисов, которая обрабатывает входящие запросы, мониторит рынок и управляет задачами.
Ядро системы: 17 WhatsApp-аккаунтов, которые сидят в 300+ группах по Бали. Каждое сообщение типа «ищу виллу» или «нужна аренда в Убуде» система перехватывает за секунды, оценивает через AI на «горячесть» запроса и автоматически пишет человеку первой. Этот сервис заменил стороннее решение за 20 000 рублей в месяц — собственная система обходится в $20.
Параллельно работает сайт 4bos.ru и сайт проекта Solar Property с листингом вилл, система публикации объявлений в Telegram-каналы, переводчик сообщений из WhatsApp-групп, дашборд загрузки вилл и планировщик задач. Всё это должно работать само. Но «само» — это иллюзия. Правильнее сказать: всё это требует ухода, и главный скилл автоматизации — не написать бота, а вовремя заметить, что он сломался.
Главный инсайт дня: Второй бот может подхватить работу сломанного, и ты об этом даже не узнаешь. Пока не проверишь метрики.
Задача 1: 78 неверных номеров WhatsApp на сайте
Что произошло
День начался с рутинной проверки сайта. Я заметил, что кнопки «Написать в WhatsApp» на карточках вилл ведут не туда. Если быть точным — в 78 местах был прописан неправильный номер. Люди нажимали «написать», попадали на чужой номер или в никуда, и уходили. Конверсия терялась молча — никаких ошибок в логах, никаких алертов.
Как нашёл
Я провёл аудит вручную, пройдя по нескольким карточкам. Ошибка обнаружилась сразу: номер телефона был сформирован неправильно в шаблоне. Скорее всего, проблема появилась после одного из обновлений шаблонизатора — номер брался из другого поля базы данных.
Что сделал
Исправил источник номера в шаблоне, проверил все 78 карточек скриптом и выкатил обновление на продакшн. Заодно убрал из листинга район Джимбаран — вилл там больше нет, а раздел создавал путаницу. Обновил фотографии по оставшимся районам: Семиньяк, Чангу, Убуд, Нуса-Дуа. Всё вместе заняло около сорока минут.
Цифры: 78 исправленных номеров WhatsApp. Один из «тихих» багов, которые не падают с ошибкой, но убивают конверсию.
Задача 2: Восстановление сервиса перевода WhatsApp-сообщений
Что такое WhatsApp Translator и зачем он нужен
В балийских WhatsApp-группах общение идёт на смеси индонезийского, балийского и английского. Чтобы менеджеры понимали, что происходит в группах, я развернул сервис автоматического перевода: он перехватывает сообщения из групп и переводит их на русский в режиме реального времени. Адрес сервиса — whatsapp.4bos.online.
Как обнаружил проблему
Пока выкатывал обновления сайта, автоматически проверил статусы всех сервисов в мониторинговом дашборде. Переводчик показывал красный статус — недоступен. Сервис лежал, судя по логам, уже несколько часов.
Что сделал
Проблема оказалась банальной: после ротации конфигурации сервера изменился внутренний адрес сервиса, а nginx продолжал проксировать запросы на старый. Обновил конфигурацию nginx, перенастроил проксирование, добавил SSL-сертификат через Let's Encrypt. Сервис поднялся и заработал. Перевод снова пошёл в реальном времени.
Важный момент: этот баг мог бы жить неделями, если бы я не проверял статусы. Сервис не критичен для продаж напрямую, поэтому никто не жаловался. Но переводчик нужен для оперативного понимания рынка — без него менеджеры работают вслепую.
Задача 3: Критический баг в системе мониторинга лидов
Проблема, которая стоила суток лидов
После переводчика я полез в систему мониторинга лидов и обнаружил: за последние 24 часа не сохранился ни один лид. Ноль. При том что боты работали, группы мониторились, сообщения обрабатывались. Система находила горячих клиентов, оценивала их через AI, понимала, что перед ней потенциальный покупатель — и в момент сохранения в базу данных всё падало с ошибкой.
Диагностика: два перепутанных SQL-поля
Открыл логи ошибок — там была аномалия в SQL-запросах. Быстро нашёл причину: в одном из недавних рефакторингов два поля в INSERT-запросе поменяли местами. Поле phone записывалось в колонку message, а поле message — в колонку phone. База данных принимала запрос (типы данных совпадали — оба текстовые), но данные сохранялись в неправильных колонках. Когда система потом пыталась прочитать номер телефона из поля phone, там был текст сообщения, и дальнейшая обработка падала.
Это классическая ошибка при рефакторинге: когда переименовываешь переменные или меняешь структуру запроса, легко перепутать позиционные параметры. Тесты не поймали, потому что тесты проверяли факт сохранения, но не корректность маппинга полей.
Исправление и последствия
Поменял поля местами обратно. Проверил несколько тестовых записей. Запустил пересохранение данных за прошедшие сутки из очереди — лиды восстановились. После исправления система начала корректно сохранять все входящие лиды.
Урок: SQL-ошибки с перепутанными полями одного типа данных — один из самых сложно обнаруживаемых багов. Система не падает с ошибкой, данные записываются, но записываются не туда. Обнаружить можно только через верификацию данных в базе.
Задача 4: Географический фильтр Бали vs Пхукет
Почему фильтр стал необходим
Пока разбирался с базой данных лидов, обнаружил другую проблему: среди сохранённых лидов была категория «аренда автомобилей». При этом наш клиент по автопрокату работает на Пхукете, а боты мониторили балийские чаты. Система исправно находила людей, которые искали машину в аренду в Семиньяке или Убуде — и передавала эти лиды клиенту с Пхукета, которому они были совершенно не нужны.
Проблема классическая: когда систему проектировали, клиент по автопрокату только появился, и географический контекст не учли. Ключевые слова срабатывали во всех группах вне зависимости от их региона.
Как работает фильтр
Решение простое архитектурно, но требует аккуратной реализации. Каждая WhatsApp-группа в системе теперь имеет тег региона: Бали или Пхукет. При обработке лида система проверяет, из какой группы пришло сообщение, и передаёт его только тому клиенту, который работает в этом регионе. Одни и те же ключевые слова — «аренда машины», «прокат авто», «car rental» — теперь обрабатываются по-разному в зависимости от географии источника.
Добавил в базу данных поле region для таблицы групп, написал скрипт для проставления тегов на существующие группы, обновил логику роутинга лидов. Всё вместе — около двух часов работы.
Дополнительный эффект
Географический фильтр открыл возможность масштабирования на новые регионы без переписывания системы. Теперь, если появится клиент из Джакарты или Сингапура — достаточно добавить новый тег региона и набор ключевых слов. Система уже готова к этому архитектурно.
Задача 5: Масштабирование мониторинга Пхукета с 4 до 143 групп
Почему 4 группы — это почти ничего
Когда я настроил географический фильтр и посмотрел на статистику мониторинга Пхукета, стало очевидно: один аккаунт в 20 группах — это капля в море. Пхукет — огромный рынок с тысячами туристических и экспатских WhatsApp-сообществ. Мы покрывали меньше процента от реального трафика.
Клиент по автопрокату получал несколько лидов в неделю, хотя потенциально мог получать десятки в день. Причина — недостаточный охват.
Процесс масштабирования
Я нашёл базу из 1400 пхукетских WhatsApp-групп. Отфильтровал по размеру — оставил только группы с аудиторией от 200 участников. Получилось 150 наиболее активных сообществ, которые покрывают основные туристические зоны: Патонг, Карон, Ката, Камала, Сурин, Лагуна, Чалонг.
Параллельно добавил два новых WhatsApp-аккаунта, специально выделенных под Пхукет. Предыдущий единственный аккаунт был размазан между балийскими и пхукетскими группами — это неэффективно с точки зрения лимитов и производительности. Новые аккаунты вывел из всех балийских групп, оставив их только для пхукетского мониторинга.
Технические детали вступления в группы
Вступление в 150 групп вручную заняло бы несколько дней и вызвало бы бан аккаунтов из-за подозрительной активности. Поэтому запустил автоматическое вступление с паузами между запросами: не более 15 групп в час с рандомизированными интервалами от 3 до 8 минут. Это имитирует естественное поведение пользователя и снижает риск блокировки.
Через несколько часов все три аккаунта были добавлены в целевые группы. Мониторинг Пхукета вырос: вместо 4 групп с одним аккаунтом — 143 группы с тремя аккаунтами.
Цифры до и после: 4 группы → 143 группы. 1 аккаунт → 3 аккаунта. Охват рынка вырос в 35 раз за один день.
Задача 6: Автораспределение задач в планировщике
Проблема: 20% задач без исполнителя
В нашей системе управления задачами есть несколько ботов-исполнителей: бот по виллам, маркетинговый бот, бот разработки, финансовый бот. Каждый обрабатывает свою категорию задач. Но в тот день я обнаружил, что около 20% задач висят без назначенного исполнителя — система создавала задачи, но не назначала их ни одному боту.
Это значит, что каждая пятая задача просто зависала в очереди и никогда не выполнялась. Система казалась работающей, но часть работы молча игнорировалась.
Как работает автоназначение
Я настроил логику автоматического распределения: при создании задачи система анализирует заголовок и описание по ключевым словам и определяет, кому её передать. Задачи про виллы, аренду, клиентов — уходят боту по виллам. Задачи про контент, посты, каналы — маркетинговому боту. Задачи про баги, деплой, сервисы — боту разработки. Финансы, счета, отчёты — финансовому боту.
Если система не может определить категорию по ключевым словам — задача попадает в «неразобранное» с уведомлением мне. Это лучше, чем молча висеть без исполнителя.
Результат
После настройки автораспределения все новые задачи стали получать исполнителя при создании. Очередь «незакрытых» задач начала уменьшаться. Задачи, которые раньше висели неделями, теперь обрабатываются автоматически в течение нескольких минут после создания.
Это один из тех изменений, которые не дают мгновенного яркого результата — эффект накапливается постепенно. Но через месяц разница заметна: система не накапливает долг незакрытых задач.
Задача 7: Загадка одиннадцати одинаковых уведомлений
Что происходило каждый вечер
Вечером я разобрался с ещё одной аномалией, которую замечал уже несколько дней. Каждый день в 21:00 мне приходило ровно 11 одинаковых уведомлений об отзывах. Одно и то же сообщение, одиннадцать раз подряд, в одно и то же время. Это выглядело как спам, но исходило от нашей собственной системы.
Причина: двойной запуск и зависшая копия
Разобрался в логах. Оказалось: одна и та же задача по проверке отзывов запускалась из двух разных мест — из основного планировщика и из отдельного cron-задания, которое забыли удалить при миграции. Двойной запуск приводил к тому, что одна из копий задачи зависала и начинала повторять уведомление в цикле, пока не таймаутилась.
Убрал дублирующее cron-задание, добавил проверку на идемпотентность в саму задачу — теперь повторный запуск одной и той же проверки не создаёт дублирующих уведомлений. Вечером того же дня пришло ровно одно уведомление об отзывах, в 21:00, как и должно быть.
Итоги дня и ключевые выводы
Что было сделано за день
- 78 неверных номеров WhatsApp исправлено на сайте — конверсия из кнопок восстановлена
- Сервис перевода WhatsApp-сообщений восстановлен — команда снова понимает, что происходит в группах
- Баг сохранения лидов исправлен — два перепутанных SQL-поля (phone и message), сутки лидов восстановлены
- Географический фильтр добавлен — лиды Бали и Пхукета больше не смешиваются
- Мониторинг Пхукета масштабирован с 4 до 143 групп — три аккаунта вместо одного
- Автораспределение задач настроено — 20% зависших задач получили исполнителей
- Баг с дублирующими уведомлениями устранён — один источник правды вместо двух
Что это говорит об автоматизации бизнеса на Бали
Автоматизация бизнеса на Бали — это не одноразовый проект, который запустил и забыл. Это живая система, которая требует регулярного технического ухода. Баги появляются после каждого обновления. Конфигурации устаревают. Ключевые слова перестают работать. Новые рынки требуют новой логики.
Разница между «у меня есть боты» и «у меня есть работающая система автоматизации» — именно в этом регулярном уходе. Большинство людей, которые пробовали автоматизировать что-то, остановились на первой стадии: написали бота, запустили, через месяц он сломался и никто не починил.
Для того чтобы система работала на вас, а не вы на систему, нужен другой подход: не просто автоматизировать задачи, но и автоматизировать мониторинг самих автоматизаций. Каждый сервис должен регулярно отчитываться о своём статусе. Каждая критическая метрика должна иметь алерт при отклонении от нормы. Только тогда вы узнаёте о проблемах раньше, чем они начинают стоить денег.
Главный вывод: Ноль лидов за сутки не вызвало ни одного алерта — система не упала, она просто записывала данные в неправильные поля. Это значит, что метрики продуктивности (количество сохранённых лидов в час) должны мониториться так же, как технические метрики (uptime, время ответа).
Сколько стоит содержать такую систему
Вопрос, который задают чаще всего. Вот реальные цифры по инфраструктуре:
- Сервер (VPS): около $40 в месяц — на нём крутятся все сервисы
- AI API (GPT-4 для оценки лидов): $20–40 в месяц в зависимости от объёма
- WhatsApp-аккаунты: минимальные расходы на SIM-карты
- Домены и SSL: несколько долларов в месяц
- Итого: около $80–100 в месяц против 20 000 рублей только за один сторонний сервис мониторинга лидов
При этом собственная система в разы функциональнее: она не только мониторит лиды, но и управляет задачами, публикует объявления, переводит сообщения, ведёт дашборд загрузки вилл. Всё на одном сервере, всё под контролем.
Как начать автоматизировать бизнес на Бали
С чего начинать, если вы только думаете об автоматизации
Самая частая ошибка — начинать с самого сложного. Люди хотят сразу «внедрить AI» и строят грандиозные планы, а потом откладывают, потому что не знают с чего начать. Правильный подход — обратный.
Начните с инвентаризации: выпишите все повторяющиеся задачи, которые вы делаете каждый день или каждую неделю. Публикация объявлений, ответы на стандартные вопросы, сбор отчётов, проверка наличия вилл — всё, что делается по одному и тому же алгоритму. Это кандидаты на автоматизацию первого приоритета.
Выберите одну задачу — ту, которая занимает больше всего времени или которую чаще всего забывают сделать — и автоматизируйте только её. Не пытайтесь построить «систему» с первого шага. Сначала один работающий бот лучше, чем красивая архитектура на бумаге.
Три принципа устойчивой автоматизации
За несколько лет работы с автоматизацией бизнеса на Бали я сформулировал для себя три принципа, которые определяют, будет ли система работать через год или развалится через месяц.
Первый: каждый сервис должен уметь рапортовать о своём состоянии. Если бот не может сказать «я работаю» или «я сломан», вы никогда не узнаете о проблеме вовремя. Минимальный healthcheck — это уже 80% мониторинга.
Второй: метрики продуктивности важнее метрик uptime. Сервис может быть «запущен» по всем техническим показателям и при этом не делать полезной работы — как наш бот лидов, который записывал данные в неправильные поля. Считайте бизнес-метрики: сколько лидов сохранено, сколько объявлений опубликовано, сколько задач выполнено.
Третий: архитектура должна позволять масштабирование без переписывания. Когда мне понадобилось добавить Пхукет в мониторинг, я не переписывал систему — я добавил тег региона и новые аккаунты. Хорошая архитектура масштабируется добавлением данных, а не добавлением кода.
Когда имеет смысл обращаться за помощью
Если вы управляете недвижимостью, туристическим бизнесом или любым другим B2C-бизнесом на Бали или Пхукете и тратите значительное время на ручные повторяющиеся задачи — имеет смысл посчитать, сколько стоит ваше время и сколько стоит автоматизация.
В нашей студии 4BOS мы специализируемся именно на этом: строим системы автоматизации для малого и среднего бизнеса на Бали и Пхукете. Не продаём готовые коробочные решения — проектируем под конкретный бизнес и конкретные задачи. Если вам интересно обсудить вашу ситуацию, напишите в Telegram.
Если хотите сначала разобраться в теме самостоятельно — читайте другие статьи блога. Я описываю реальные кейсы, конкретные инструменты и архитектурные решения без воды и теории. Всё, что описано в статьях, реально работает в продакшне прямо сейчас.
Итого за день: 3 бага починено, 1 сервис восстановлен, 78 номеров исправлено, мониторинг расширен с 4 до 143 групп, 20% задач разблокированы. Я, ноутбук и боты.