Кейс CRM с нуля

Booking CRM Bot: CRM для записи в Telegram

Клиент записывается к специалисту через Telegram-бота, а владелец управляет клиентами, услугами, расписанием, статусами, статистикой и напоминаниями в закрытом кабинете. Вся CRM-логика и модель данных разработаны под этот процесс с нуля.

О проекте

Контекст проекта

Факты, которые можно подтвердить по проекту и открытому репозиторию.

Тип проекта

CRM-система записи с Telegram-ботом для клиентов и отдельным кабинетом специалиста. Один запуск предназначен для одного специалиста и работает с собственной базой данных.

Что хранит CRM

Клиентов, записи, услуги, расписание, статусы, служебные заметки, настройки напоминаний и данные для статистики.

Состав разработки

Модель данных, клиентский сценарий, кабинет владельца, API, фоновые задачи, миграции базы, автоматические тесты и Docker-конфигурация.

Задача

Проблема, ограничения и роль в проекте

Почему понадобилось отдельное решение и какие рамки учитывались при разработке.

Исходная проблема

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

Зачем понадобилась CRM

Клиенты, записи, услуги, расписание, статусы и история действий должны находиться в одной системе, а не быть распределены между чатами и таблицами.

Граница продукта

Это не маркетплейс и не общий каталог специалистов. Каждый экземпляр системы изолирован и настраивается под одного владельца и его Telegram-бота.

Подтверждённые ограничения

Платёжный модуль и отдельная веб-панель в репозитории не заявлены. Кабинет владельца работает в Telegram, а суммы используются для расчётов, но не подтверждают получение оплаты.

Архитектура

Как устроено решение

Основные компоненты и путь данных без привязки к закрытым доступам и секретам окружения.

01

Telegram-бот

Обслуживает два сценария: самостоятельную запись клиента и закрытый кабинет владельца с проверкой прав доступа.

02

FastAPI

Принимает защищённый Telegram webhook, предоставляет health-check и связывает внешние события с прикладными сервисами.

03

PostgreSQL

SQLAlchemy-модели и Alembic-миграции хранят клиентов, записи, услуги, расписание и связанные настройки.

04

Redis и worker

Используются для временного удержания слотов, фоновой доставки уведомлений и повторных попыток без дублирования сообщений.

05

Доменный слой

Отдельные сервисы отвечают за свободные интервалы, записи, каталог услуг, аналитику, расписание и уведомления.

06

Запуск и проверка

Docker-конфигурация собирает приложение и инфраструктуру, а тесты проверяют записи, слоты, кабинет владельца, уведомления и аналитику.

Функции

Ключевые функции

Функции перечислены по фактической реализации, а не как возможные будущие доработки.

Запись клиента

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

Управление записью

В боте доступны история, отмена, перенос, повторная запись, экспорт события в ICS и связь со специалистом.

Кабинет специалиста

Владелец просматривает записи на сегодня, завтра, неделю или выбранную дату и управляет их статусами.

Услуги и расписание

Можно менять цены, длительность и буферы услуг, рабочие часы, выходные, дополнительные дни и временные блокировки.

Защита от конфликтов

Система рассчитывает доступные интервалы, временно удерживает выбранный слот и защищает расписание от двойного бронирования.

Ручная запись

Специалист может добавить запись по телефону, а после подтверждения номера связать её с Telegram-профилем клиента.

Аналитика

Кабинет показывает записи и статусы за выбранный период, количество клиентов, ручные записи, расчётные суммы и популярные услуги.

Напоминания

Фоновая доставка отправляет уведомления и напоминания, повторяет неудачные попытки и предотвращает дубли.

Экспорт

Записи можно выгрузить в Excel, чтобы провести дополнительный анализ или сохранить рабочий отчёт.

Подтверждение

Демонстрация и исходный код

В открытом репозитории опубликованы модели и миграции базы данных, движок расчёта слотов, обработчики бота, сервисы кабинета специалиста, уведомления, тесты и Docker-конфигурация.

Отдельные скриншоты интерфейса пока не опубликованы.
Посмотреть репозиторий на GitHub
Результат

Результат и измерения

Отделяю подтверждённый функциональный результат от показателей, которые не передавались после запуска.

До автоматизации

Запись через переписку и звонки требует ручного согласования времени, переноса контактов и отдельного контроля напоминаний.

После разработки

Клиентский путь и работа специалиста объединены в Telegram, а PostgreSQL становится единым источником данных по клиентам, услугам и записям.

Что можно измерить

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

Выводы

Что изменилось бы в следующей версии

Выводы по архитектуре, эксплуатации и дальнейшему развитию проекта.

Архитектурное решение

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

Текущее ограничение

Система сфокусирована на записи и управлении клиентами в Telegram. Платежи и отдельный веб-интерфейс не входят в опубликованную реализацию.

Следующий этап

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

Услуги

Что может понадобиться вместе с этой задачей

Дополнительные направления, которые часто используются вместе с этой услугой.

Связаться

Создать заказ

Свяжитесь удобным способом и коротко опишите задачу. Даже если пока нет точного ТЗ, можно начать с идеи и желаемого результата.

Нужна CRM для записи с Telegram-ботом?

Опишите услуги, расписание, роли и путь клиента. Я помогу определить первую рабочую версию CRM и спроектировать интеграцию с Telegram без лишних модулей.