Telegram-бот для бронирования билетов на регулярные офлайн-мероприятия
📎 Заказчик два раза в месяц проводил офлайн-мероприятия для участников клуба. Количество сидячих мест было ограничено, и на каждое событие необходимо было проходить регистрацию — она открывалась лишь на несколько дней. Старый бот работал почти вручную, требовал постоянного контроля и часто допускал ошибки. Поэтому возникла необходимость полностью переработать систему и создать максимально автоматизированного бота, который будет работать практически автономно.
🎯 Цели и задачи
Нужно интегрировать Telegram-бота и групповой чат с участниками клуба, чтобы уведомления о каждой регистрации и отмене автоматически поступали в чат.
Создать в Telegram-боте обязательную регистрацию через ввод номера телефона с проверкой корректности ввода. Только после регистрации пользователь получает доступ к бронированию, отмене своих бронирований и доступ к групповому чату клуба.
В боте необходимо разработать функционал бронирования мест на мероприятие. Максимальное количество мест в одной брони — 4.
Нужно внедрить проверку на случай, если кто-то попытается забронировать места на фамилию, на которую уже оформлена бронь. В таком случае бот должен уведомить, что на эту фамилию уже есть активное бронирование.
После успешного бронирования бот должен отправлять в групповой чат сообщение с информацией о броне и количеством оставшихся мест.
Важно настроить ограничение, чтобы бот разрешал бронировать места только в определённые даты: за день до мероприятия и в день мероприятия, и только до заранее установленного времени. Эти даты определены заказчиком на год вперёд.
Бот должен позволять отменять бронирования — как полностью, так и частично. После отмены или изменения брони бот отправляет соответствующее уведомление в групповой чат с участниками клуба.
Бот должен учитывать заранее установленное количество доступных мест. Это число определяется за несколько дней до встречи: администратор вводит количество уже занятых мест (участниками с абонементами) и список этих участников, который постоянно меняется. В боте требуется команда для внесения информации о свободных местах и участниках с абонементами.
За несколько часов до начала офлайн-мероприятия бот должен отправить в групповой чат сводную информацию обо всех бронированиях и оставшихся местах (если они есть).
Если пользователь пытается отменить бронирование после 13:00 в день мероприятия, бот должен уведомить его, что такой отказ является платным (в соответствии с правилами клуба, которые пользователь принимает при регистрации).
Необходимо внедрить проверку наличия мест на всех этапах, чтобы исключить возможность бронирования сверх доступного количества.
Если в период активного бронирования все места заканчиваются, бот должен предложить пользователю подписаться на индивидуальные уведомления на случай, если кто-то откажется от своей брони. Если места действительно освобождаются, бот отправляет подписавшимся уведомление о доступности мест и возможности снова забронировать.
🧩 Процесс работы
1. Создаём Telegram-бота через BotFather: оформляем его, настраиваем внешний вид и добавляем необходимые команды. Разработка будет вестись на платформе Salebot, так как она предоставляет весь необходимый функционал для проекта.
2. Реализуем в боте регистрацию пользователей по номеру телефона. Это важный этап, на котором пользователь должен внимательно прочитать условия сообщества и согласиться с ними. После подтверждения он получает доступ к функционалу бронирования и ссылку на групповой чат в Telegram.
3. Далее реализуем функционал бронирования мест. Бот должен допускать бронирования только в заранее определённые даты по вторникам (расписание на год вперёд) и в понедельник перед этими датами. Время приёма заявок — с понедельника 9:00 до вторника (день мероприятия) 17:00. Одновременно внедряем проверку доступности мест и проверку, есть ли уже бронирование на указанную фамилию.
4. Теперь переходим к настройке цепочки отмены бронирования. Необходимо сделать проверку временных диапазонов, наличие существующих бронирований и возможность их изменения или отмены. Если пользователь отменяет бронь после 13:00 во вторник, бот отправляет уведомление, что за эту отмену нужно оплатить.
5. Теперь нужно настроить команду для администратора, которую он запускает за несколько дней до нового мероприятия. Можно автоматизировать этот процесс, но в данном случае выбран ручной вариант: администратор вводит список участников и количество занятых мест.
6. Теперь нужно настроить автоматическую отправку сообщения в общий групповой чат со всеми бронированиями на мероприятие. Сообщение должно отправляться автоматически в день мероприятия в 17:00.
💡Что в результате
В результате был создан полностью автоматизированный Telegram-бот для бронирования билетов на регулярные офлайн-мероприятия клуба. Бот обеспечивает обязательную регистрацию участников через номер телефона, проверяет корректность ввода и гарантирует доступ к бронированию и групповому чату только зарегистрированным пользователям. Он автоматически проверяет наличие мест, не допускает дублирования бронирований на одно и то же ФИО и позволяет бронировать до 4 мест за раз. Пользователи могут изменять или отменять бронирования, при этом бот учитывает временные ограничения и предупреждает о платных отказах после 13:00 в день мероприятия. Реализована также подписка на уведомления о свободных местах, если все билеты уже забронированы.
Для администраторов создан удобный инструмент управления: задаются количество доступных мест и список участников с абонементами. Бот автоматически отправляет итоговые уведомления в групповой чат о всех бронированиях и оставшихся местах в назначенное время. Все процессы — бронирование, отмена и уведомления — работают автономно, минимизируя ручной контроль, повышая точность и упрощая коммуникацию между участниками и организаторами мероприятий.
По любым вопросам, в том числе по созданию ботов, можно писать мне в Telegram