Вступление
К нам обратилась транспортная компания, специализирующаяся на международных пассажирских перевозках. Они организуют регулярные автобусные маршруты между Украиной и странами Европы. С задачей оптимизировать процесс бронирования мест и исключить пересечения в резервах, которые могли привести к потере клиентов.
Исходные данные
До обращения к нам компания работала с серьезными системными проблемами:
- Отсутствие визуализации занятости мест: Менеджеры не имели наглядного инструмента для отслеживания свободных и занятых мест в автобусах на конкретные даты
- Риск двойного бронирования: Два менеджера могли одновременно зарезервировать одно место разным клиентам, что приводило к конфликтным ситуациям в 15-20% случаев
- Ручное ведение учета: Информация о бронированиях фиксировалась в разрозненных Excel-файлах, тратя до 40% рабочего времени менеджеров на поиск данных
- Отсутствие этапности процесса: Не было четкого разделения между резервом места и окончательным бронированием после оплаты
- Невозможность аналитики: Руководство не имело данных о загруженности маршрутов и популярности конкретных дат
- Отсутствие интеграции с CRM: Данные о бронированиях в системе никак не связывались с фактической занятостью мест в автобусах, если их не внесли вручную
Вывод:Отсутствие системы бронирования в одном месте создавало проблемы для бизнеса. Двойные резервы приводили к потере клиентов, а отсутствие наглядности мешало оптимизировать загрузку маршрутов.
Задача
Создать систему контроля занятости мест с интеграцией CRM для исключения конфликтов бронирования.
Для достижения этой цели были поставлены подзадачи:
- Разработать динамический календарь с визуализацией занятости каждого места
- Автоматизировать процесс обновления статусов бронирования из CRM
- Создать четкую этапность: заявка → резерв → оплата → бронирование
- Обеспечить возможность отмены резервов и аналитики загруженности
- Исключить человеческий фактор при возникновении конфликтов
Что делали
1. Разработка архитектуры системы в GoogleSheet
- Создали структуру с отдельными листами для каждого маршрута (5 направлений)
- Разработали динамические календари для двух автобусов на каждом маршруте
- Спроектировали систему цветового кодирования: желтый (резерв), зеленый (бронирование), без цвета (свободно)
Функция№1 — Создание листов под каждый отдельный маршрут
Данная функция имеет возможность создаваться вручную. Вся её задача состоит в том, чтобы при вызове, у менеджера была возможность указать номер месяца, на который нужно создать листы под маршруты. Дальше, по итогам её отработки, создаются отдельные листы, под те маршруты, что были заложены бизнесом.



В результате получаем листы под каждый маршрут, с месяцем, который был указан при вызове функции:
1 — Номер автобуса
2 — Номера мест в автобусе
3 — Дата (динамическая, проставляется, в зависимости от указанного месяца — кол-во дней)
4 — Отдельный лист
2. Программирование функций автоматизации
Функция создания календарей: Автоматическое создание листов на выбранный месяц с календарной сеткой под каждый маршрут.
Функция обновления бронирований: Алгоритм поиска нужного листа по дате и маршруту, определение автобуса, простановка цветовых меток
Функция получения данных из CRM: Настройка я автоматической передачи данных о новых заявках
3. Интеграция с CRM
- Настроили автоматические вебхуки на определенных этапах воронки
- Создали систему обработки данных из CRM с дополнительными запросами полей
- Реализовали прямые ссылки на сделки в ячейках календаря для быстрого перехода
4. Создание аналитических инструментов
- Разработали сводный лист «Заявки» с читабельным представлением всех бронирований
- Настроили автоматическое обновление аналитики при каждой новой заявке
- Создали систему быстрого восстановления данных в случае сбоев
5. Разработка системы резервного копирования
- Создали функцию полной очистки и пересоздания календарей
- Реализовали возможность «переигрывания» всех операций за 10 минут
- Обеспечили защиту от потери данных при технических сбоях
Сложности
В процессе разработки столкнулись с необходимостью учета человеческого фактора — ситуации, когда менеджеры одновременно работают с одним местом. Пришлось разработать дополнительные алгоритмы обработки конфликтных ситуаций и создать инструкции по их разрешению. Также возникли сложности с синхронизацией данных при изменении порядка операций (отмена бронирования до фактического завершения процесса резерва).
Что получилось
В результате создания кастомного календаря бронирования:
- Время поиска свободного места сократилось с 12 минут до 20 секунд (в 36 раз)
- Исключены 95% случаев двойного бронирования — конфликты возникают только при одновременной работе менеджеров
- Автоматизирована синхронизация с CRM — все изменения статусов отражаются в календаре без участия человека
- Создана полная визуализация загруженности — менеджеры видят загрузку автобуса
- Реализован быстрый доступ к сделкам — переход в CRM по прямой ссылке из любой ячейки календаря
- Настроена аналитика загруженности — руководство получает данные о популярности маршрутов и дат
- Время восстановления системы при сбоях сокращено до 10 минут против нескольких часов ручной работы
Выводы и итоги
Создание кастомного календаря бронирования позволило компании:
- Исключить репутационные риски от двойных резервов и недовольства клиентов
- Повысить эффективность работы менеджеров в 3 раза за счет визуализации и автоматизации
- Создать надежную систему аналитики для принятия управленческих решений
- Подготовить масштабируемое решение, которое легко адаптируется под новые маршруты
- Обеспечить стабильность работы с возможностью быстрого восстановления при сбоях