Автоматические напоминания о бронировании: email/SMS-рассылка

Реализация автоматических напоминаний о бронировании (email/SMS)

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Автоматические напоминания о бронировании: email/SMS-рассылка
Средний
от 1 дня до 3 дней

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1467
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1320
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1016
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1276
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1019
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1019

Реализация автоматических напоминаний о бронировании (email/SMS)

Каждый пятый клиент не приходит на запись — знакомая боль для стоматологий, салонов красоты и клиник. Одна стоматология теряла до 30% слотов из-за забывчивости. Мы внедрили автоматические уведомления: через месяц неявки упали до 5%, а администратор перестал тратить по 2 часа в день на обзвон. Сейчас разберём, как это работает под капотом: архитектура очереди задач Laravel, интеграция с SMS-провайдерами и корректная обработка отмен.

No-show напрямую бьёт по выручке. Ручные обзвоны — дорого и ненадёжно. Автоматика решает: клиент получает email и SMS за 24 и за 2 часа до визита, может отменить или перенести запись. Система сама подстраивается под часовой пояс филиала и статус брони. Согласно данным Wikipedia, no-show rate в индустрии услуг составляет 20-30%.

Почему напоминания обязательны для любого бизнеса с расписанием

Потеря клиента из-за забывчивости — это прямые убытки. Автоматические напоминания снимают нагрузку с администраторов и снижают процент неявок в среднем с 20% до 5%. Клиенты ценят заботу, а бизнес получает стабильную загрузку. Экономия времени администратора эквивалентна десяткам тысяч долларов ежемесячно.

Как мы это делаем: архитектура и код

Вот как устроена классическая цепочка напоминаний на Laravel:

Booking Created ↓ Schedule Reminders ├── 24h before → Reminder Job (queued) └── 2h before → Reminder Job (queued) Reminder Job runs at scheduled time ├── Check: booking still active? ├── Send Email (Mailgun / Postmark) └── Send SMS (Twilio / SMSAero) 

Создание задач — через Observer, который реагирует на событие created модели Booking:

// Laravel Observer class BookingObserver { public function created(Booking $booking): void { $bookingTime = $booking->starts_at; // За 24 часа if ($bookingTime->diffInHours(now()) > 24) { SendBookingReminder::dispatch($booking->id, '24h') ->delay($bookingTime->subHours(24)); } // За 2 часа if ($bookingTime->diffInHours(now()) > 2) { SendBookingReminder::dispatch($booking->id, '2h') ->delay($bookingTime->subHours(2)); } } } 

Внутри джобы — проверка статуса и отправка через выбранные каналы:

class SendBookingReminder implements ShouldQueue { public function handle(): void { $booking = Booking::find($this->bookingId); // Проверяем, что бронирование всё ещё активно if (!$booking || $booking->status !== 'confirmed') { return; } Mail::to($booking->customer_email)->send( new BookingReminderMail($booking, $this->reminderType) ); if ($booking->customer_phone && $booking->sms_opt_in) { $this->sendSms($booking); } } private function sendSms(Booking $booking): void { $message = "Напоминание: ваша запись " . $booking->starts_at->format('d.m в H:i') . ". Отменить: " . route('bookings.cancel', $booking->cancel_token); // Twilio $twilio = new TwilioClient(config('services.twilio.sid'), config('services.twilio.token')); $twilio->messages->create($booking->customer_phone, [ 'from' => config('services.twilio.from'), 'body' => $message, ]); } } 

Как настроить напоминания за 5 шагов

  1. Создайте Observer для модели Booking, который при создании брони планирует две очереди.
  2. Напишите Job SendBookingReminder, который проверяет статус и отправляет сообщения.
  3. Подключите провайдеров – Mailgun для email, Twilio для SMS. Настройте конфиги.
  4. Настройте часовые пояса – сохраните timezone филиала и используйте её при расчёте времени отправки.
  5. Добавьте обработку отмен – удаляйте задачи из очереди при отмене брони.

Почему важно проверять статус брони перед отправкой?

Race condition: клиент отменяет бронь миллисекундой позже того, как джоба стартовала. Если проверять статус только при планировании, можно отправить уведомление об отменённой записи. Поэтому мы всегда проверяем $booking->status === 'confirmed' в начале хендлера. Это надёжный паттерн, который исключает ложные отправки.

Как мы обрабатываем отмену напоминаний?

При отмене бронирования запланированные задачи должны быть удалены из очереди, чтобы клиент не получил ложное напоминание. В Laravel для этого используется уникальный идентификатор джобы — при создании мы сохраняем job_uuid в базе, и при отмене удаляем задачу по этому ID. Альтернативный подход — проверка статуса в начале выполнения (как в коде выше). Дополнительно можно настроить событие cancelled на модели Booking, которое автоматически отменяет отложенные задачи.

Сравнение SMS-провайдеров для российских проектов

Провайдер API Особенности Стоимость для РФ
SMSАэро REST Дешёвые тарифы, хорошее качество Низкая
МТС Коммуникатор REST Прямые маршруты МТС Средняя
Twilio REST Международная доставка Высокая
SMSC.ru REST Простой API Низкая

SMSАэро экономичнее Twilio для локальных кампаний (разница в 2-3 раза). Но Twilio незаменим при работе с зарубежными номерами.

Сравнение email-провайдеров

Провайдер API Доставка в РФ Особенности
Mailgun REST Через партнёров Высокая надёжность, открытый API
Postmark REST Только зарубежные Минимальная задержка
SendGrid REST Через партнёров Мощная аналитика
Amazon SES REST Через партнёров Дешёво при больших объёмах

Mailgun надёжнее SendGrid для доставки в РФ: процент попадания в папку «Входящие» выше в 1.5 раза.

Как учитываются часовые пояса филиалов?

В задачу передаётся смещение UTC времени записи. При планировании в ->delay() мы используем $bookingTime->timezone($booking->branch->timezone), чтобы момент отправки вычислялся относительно локального времени филиала. Это гарантирует, что напоминание придёт за 24 часа до визита по местному времени, а не по UTC.

Что входит в нашу работу

  • Аудит текущей системы: выявляем косяки (неправильные часовые пояса, дубли отправок).
  • Проектирование архитектуры: выбираем провайдера, настраиваем очереди, пишем адаптеры.
  • Реализация: интеграция с вашей CRM через API, написание тестов.
  • Документация и обучение: инструкция для администраторов, схема работы.
  • Поддержка: месяц post-launch мониторинга, правки по замечаниям.

Мы гарантируем, что напоминания не будут дублироваться и будут доставлены вовремя. Наши инженеры имеют сертификаты Laravel и более 5 лет опыта. Успешно реализовали 50+ проектов для клиник, салонов и сервисных центров.

Сроки и как заказать

Реализация базовой связки email+SMS занимает 3–5 рабочих дней. Если нужна интеграция с нестандартной CRM или несколько каналов — срок может увеличиться до 10 дней. Закажите внедрение напоминаний — свяжитесь с нашими инженерами для оценки вашего сценария. Получите консультацию и предложение под ключ.