дальше.студия автоматизации бизнеса
Обсудить задачу
Рабочие процессы5 мин чтения

Клиент перенёс запись. Как разработать модуль напоминаний

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

Карточка записи и связанный с ней колокольчик перемещены на новое место в календаре; старый слот пуст.
Иллюстрация создана с помощью ИИ

Клиент попросил перенести занятие с четверга на пятницу. Администратор согласовал новое время, а бот в четверг отправил старое напоминание. Это условная ситуация: договорённость изменилась, очередь сообщений осталась прежней.

Для небольшого клуба, студии или команды выездных мастеров можно разработать свой модуль записи: карточка визита, перенос, отмена и напоминание работают как один процесс. Ниже разберу, что он должен делать, какой открытый код можно взять за основу и как проверить первую версию.

Как это выглядит для администратора

Администратор открывает нужный визит и выбирает новое время. Система проверяет доступность сотрудника, показывает изменение и просит подтвердить: было в четверг в 18:00, станет в пятницу в 19:00.

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

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

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

Какой открытый код взять за основу

Для этой задачи есть реальные Python-библиотеки с открытым исходным кодом:

  • aiogram помогает написать Telegram-бота: получать сообщения и обрабатывать кнопки.
  • APScheduler позволяет запускать задания в заданное время, менять их расписание и удалять ожидающие задания.
  • FastAPI можно использовать для серверной части, если запись будет доступна через сайт или интерфейс CRM.
  • Pydantic AI пригодится, если нужно разбирать просьбы о переносе из обычных сообщений.

У этих проектов лицензия MIT. В репозиториях есть документация и примеры. Это основа для разработки, а не готовый модуль записи: карточки, права сотрудников, правила переноса, связь с вашей CRM и обработку ошибок нужно добавить своим кодом.

Для простого бота с кнопками достаточно aiogram, хранения записей и планировщика. FastAPI нужен для связки с веб-интерфейсом; агент нужен там, где есть свободный текст. Сервер и использование выбранной модели потребуют отдельной настройки и расходов.

Что происходит с напоминанием при переносе

У визита должен быть постоянный номер. Ожидающее напоминание связано с этим номером, поэтому перенос изменяет существующее задание вместо создания ещё одной независимой рассылки.

После сохранения новой даты приложение обновляет время запуска задания. Если обновление не удалось, администратор видит ошибку и запись попадает в список для проверки. Не стоит показывать «всё перенесено», пока нужные действия не подтверждены.

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

Перед отправкой приложение снова читает карточку визита. Если время изменилось, визит отменён или уже состоялся, старое задание не должно отправлять приглашение. Проверка актуальной карточки и изменение очереди дополняют друг друга.

Это требования к нашей будущей связке. Библиотека сама не знает, что клиент перенёс занятие, кто должен получить сообщение и какие правила действуют в клубе. Эту часть разрабатываем под конкретную работу компании.

Есть граница: если сообщение уже отправлено или передано внешнему провайдеру, удаление задания из планировщика его не отзовёт. Перенос в последний момент нужно проверить отдельно и предусмотреть понятное объяснение клиенту.

Где поможет ИИ-агент

Для переноса через кнопки или форму новое время уже указано в нужном поле. Такой процесс можно собрать обычным кодом.

Агент полезен в другой ситуации: клиент пишет «можно на пятницу после семи?». Он может подготовить черновик: какой визит имеется в виду, какая дата предложена, что осталось уточнить. Pydantic AI поддерживает структурированный результат и подтверждение действий человеком.

Например, бот предлагает администратору: «Перенести занятие на пятницу, 19:00?». Администратор проверяет визит и свободное время, затем подтверждает. Только после этого приложение сохраняет изменение.

Если клиент написал «давайте позже», нового времени ещё нет. Бот должен запросить уточнение. Проверка формата ответа модели не доказывает, что она правильно поняла клиента: правила и подтверждение остаются частью приложения.

Что можно проверить самостоятельно

До разработки выпишите, как перенос проходит сейчас: кто получает просьбу, где хранится запись, кто подтверждает новый слот и что получает клиент. На одном примере уже будет видно, какой шаг приходится делать вручную.

В прототипе используйте свой номер и тестовые записи. Пройдите пять сценариев:

  1. Создать визит и получить напоминание с правильным временем.
  2. Перенести визит до отправки. Проверить, что осталось одно актуальное ожидающее напоминание.
  3. Перенести дважды. Сообщение должно соответствовать последнему подтверждённому времени.
  4. Отменить визит. Ожидающее приглашение должно быть снято.
  5. Перезапустить бота. Сохранённые записи и ожидающие задания должны остаться.

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

Этот список можно использовать как задание на разработку. Важно проверять карточку, очередь и фактически полученное сообщение вместе.

Что я могу разработать под ваш бизнес

Можно начать с небольшого инструмента: запись на один тип услуги, перенос с подтверждением, отмена и Telegram-напоминания. Затем связать его с вашей CRM, расписанием сотрудников или сайтом.

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

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

Ко всем разборам
Обсудить задачу