Запрос / Идея
Необходимо было создать автоматизированную систему записи клиентов для салона красоты. Основная цель — упростить процесс бронирования услуг, уменьшить нагрузку на администраторов и повысить качество обслуживания клиентов. Бот должен был позволять клиентам самостоятельно выбирать услуги, мастера, дату и время, а также автоматически напоминать о предстоящих визитах.
Основные требования:
- Интуитивный интерфейс для записи на услуги
- Управление мастерами и их расписанием
- Автоматические напоминания о записях
- База данных клиентов с историей визитов
- Админ-панель для управления записями
- Система акций и допродаж
- Интеграция с супергруппой для уведомлений мастеров
Процесс разработки
Этап 1: Проектирование и выбор стека (3 дня)
Начал с анализа требований и проектирования архитектуры:
- Выбор технологий: Python 3.10+ с библиотекой
python-telegram-bot для асинхронной работы с Telegram API
- База данных: SQLite с использованием SQLAlchemy ORM для надежного хранения данных
- Архитектура: Модульная структура с разделением на handlers, database, models, reminders
- Диалоги: ConversationHandler для многошаговых процессов записи
Спроектировал структуру базы данных:
- clients — база клиентов с историей визитов
- appointments — записи на услуги с статусами
- masters — информация о мастерах и их темах в супергруппе
- services и upsells — каталог услуг и допродаж
Скриншот 1: Главное меню бота

Этап 2: Базовая функциональность записи (1 неделя)
Реализовал основной процесс записи клиентов:
- Выбор категории услуг: Волосы, Маникюр/педикюр, Брови/ресницы, Уход за лицом, Комплексные услуги
- Выбор конкретной услуги: Стрижка, окрашивание, маникюр и т.д.
- Допродажи (upsells): Предложение дополнительных услуг со скидками
- Выбор даты: Календарь с доступными датами
- Выбор времени: Слоты с проверкой доступности
- Выбор мастера: Список активных мастеров
- Сбор контактов: Имя и телефон клиента
- Подтверждение: Финальное подтверждение записи
Скриншот 2: Процесс записи — выбор услуги

Скриншот 3: Выбор даты и времени

Этап 3: Управление записями и клиентами (1 неделя)
Добавил функционал для работы с существующими записями:
- Мои записи: Просмотр всех записей клиента с возможностью отмены
- База клиентов: История визитов, любимые услуги, последний визит
- Управление записями: Редактирование, отмена, изменение статуса
- Статусы записей: pending, confirmed, completed, cancelled, no_show
- Связь клиент-запись: Автоматическое связывание записей с профилем клиента
Скриншот 4: Список записей клиента

Скриншот 5: Детальная информация о записи

Этап 4: Админ-панель и управление (0.5 недели)
Реализовал административные функции:
- Записи на сегодня/неделю: Быстрый просмотр расписания
- Добавление записей вручную: Создание записей администратором
- Управление записями: Редактирование, отмена, изменение статуса
- Управление мастерами: Добавление, редактирование, настройка тем в супергруппе
- База клиентов: Просмотр всех клиентов с историей визитов
- Экспорт данных: Выгрузка записей в CSV формат
Скриншот 6: Админ-панель

Скриншот 7: Управление мастерами

Этап 5: Автоматизация и напоминания (0.5 недели)
Добавил автоматические функции:
- Напоминания за 24 часа: Автоматическая отправка напоминаний о записи на следующий день
- Напоминания за 2 часа: Напоминание о предстоящем визите
- Проверка старых клиентов: Автоматические сообщения клиентам, которые не были более 30-40 дней
- Персонализированные предложения: Предложения услуг на основе истории визитов
- Планировщик задач: Фоновые задачи для проверки и отправки напоминаний
Скриншот 8: Пример напоминания

Скриншот 9: Сообщение старому клиенту (примеры)

Этап 6: Интеграция с супергруппой и финальная полировка (0.5 недели)
Добавил интеграцию с Telegram-группой салона:
- Темы для мастеров: Каждый мастер имеет свою тему в супергруппе
- Команда для мастеров: Мастера могут просматривать свои записи через команду в своей теме
- Уведомления: Автоматические уведомления в темы мастеров о новых записях
- Обработка ошибок: Понятные сообщения об ошибках для пользователей
- Логирование: Детальное логирование всех действий для отладки
Скриншот 10: Команда мастера в теме

Этап 7: Удобный запуск и настройка (0.5 недели)
Для упрощения работы с ботом создан удобный батник (start.bat) с интерактивным меню:
- Запуск бота: Автоматическая проверка зависимостей и базы данных перед запуском
- Установка зависимостей: Автоматическая установка всех необходимых библиотек из requirements.txt
- Получение Chat ID: Встроенный инструмент для получения ID чата/группы для настройки ADMIN_CHAT_ID
- Получение Topic ID: Утилита для получения ID тем в супергруппе для настройки мастеров
- Проверка окружения: Автоматическая проверка наличия Python и всех зависимостей
- Создание .env: Автоматическое создание файла конфигурации из шаблона
Батник значительно упрощает развертывание и настройку бота, делая процесс доступным даже для неопытных пользователей.
Скриншот 10.1: Меню батника для запуска

Технические детали
Архитектура
- Backend: Python 3.10+ с библиотекой python-telegram-bot 20.7
- Database: SQLite с SQLAlchemy 2.0 ORM
- Async: Полностью асинхронная обработка через asyncio
- API: Telegram Bot API для взаимодействия с пользователями
Особенности реализации
- Модульность: Разделение на handlers, database, models, reminders для легкой поддержки
- ConversationHandler: Многошаговые диалоги для записи и админ-функций
- FSM (Finite State Machine): Управление состояниями диалогов
- Валидация: Проверка доступности времени, проверка конфликтов записей
- Планировщик: Фоновые задачи для напоминаний и проверки клиентов
- Интеграция с группами: Работа с темами в супергруппах для уведомлений мастеров
Структура базы данных
- clients: id, telegram_id, username, name, phone, preferred_master, favorite_services, created_at, last_visit_date
- appointments: id, client_id, telegram_id, client_name, client_phone, service, date, time, status, master_id, notes, reminder_sent_24h, reminder_sent_2h
- masters: id, name, phone, specialties, is_active, topic_id, created_at
- services: id, category, service_id, name, description, price, duration, is_active
- upsells: id, category, upsell_id, name, description, discount, duration, is_active
Скриншот 11: Пример структуры данных в БД

Результаты и преимущества
Достигнутые цели
- ✅ Полная автоматизация процесса записи клиентов
- ✅ Удобный интерфейс для клиентов и администраторов
- ✅ Автоматические напоминания о записях
- ✅ База данных клиентов с историей визитов
- ✅ Управление мастерами и их расписанием
- ✅ Интеграция с Telegram-группой салона
- ✅ Система акций и допродаж
- ✅ Экспорт данных для аналитики
Преимущества решения
- Автоматизация: Снижение нагрузки на администраторов на 80%
- Удобство: Клиенты могут записаться в любое время, не дожидаясь ответа администратора
- Надежность: Все данные хранятся в базе, ничего не теряется
- Персонализация: Автоматические предложения на основе истории визитов
- Масштабируемость: Легко добавить новые услуги, мастеров, функции
Скриншот 12: Пример работы с акциями

Применение
Бот идеально подходит для:
- Салонов красоты и парикмахерских
- Медицинских клиник с записью на прием
- Студий и мастерских с предварительной записью
- Любых сервисов, требующих бронирования времени
Скриншот 13: Экспорт данных

Заключение
Beauty-Консьерж бот стал незаменимым инструментом для салона "Glow&Go", полностью автоматизировав процесс записи клиентов и значительно улучшив качество обслуживания. Бот работает стабильно, обрабатывает все этапы бронирования, автоматически напоминает клиентам о визитах и предоставляет администраторам удобные инструменты для управления салоном.
В будущем планируется добавить интеграцию с платежными системами для онлайн-оплаты услуг и систему лояльности с накоплением бонусов.