Files
remnawave-minishop/docs/features/notifications.md
T

9.6 KiB

Уведомления

Minishop отправляет уведомления в Telegram и на email. Telegram-канал означает личные сообщения пользователю, сообщения администраторам из ADMIN_IDS или сообщения в LOG_CHAT_ID - зависит от события. Email работает только при настроенном SMTP и наличии email у получателя.

Для уведомлений жизненного цикла подписки есть отдельный флаг SUBSCRIPTION_EMAIL_NOTIFICATIONS_ENABLED. Если он включен, пользовательские уведомления об окончании подписки отправляются в Telegram при наличии привязанного Telegram-аккаунта и на email при наличии привязанной почты.

Сводная таблица

Событие Получатель Telegram Email Условия и ограничения
Код входа по email и magic link Пользователь - Нужны SMTP_* и EMAIL_* настройки. Magic link также требует корректный SUBSCRIPTION_MINI_APP_URL.
Код установки или смены пароля Пользователь - Нужны SMTP_* и EMAIL_* настройки.
Успешная оплата подписки Пользователь Email отправляется, если SMTP настроен и у пользователя есть email.
Успешная покупка пакета трафика Пользователь Email отправляется, если SMTP настроен и у пользователя есть email.
Успешная покупка premium-трафика Пользователь Email отправляется, если SMTP настроен и у пользователя есть email.
Успешная покупка HWID-устройств Пользователь - Отправляется после оплаты hwid_devices или hwid_devices_renewal.
Ошибка оплаты по webhook провайдера Пользователь - Отправляется, когда платежный провайдер сообщает о неуспешном платеже.
Напоминание за 3 дня до окончания подписки Пользователь Управляется SUBSCRIPTION_NOTIFY_DAYS_BEFORE и SUBSCRIPTION_EMAIL_NOTIFICATIONS_ENABLED.
Напоминание за 2 дня до окончания подписки Пользователь Работает, если SUBSCRIPTION_NOTIFY_DAYS_BEFORE >= 2; email требует SUBSCRIPTION_EMAIL_NOTIFICATIONS_ENABLED=True.
Предупреждение о списании автопродления за 48 часов Пользователь Отправляется вместо обычного 48-часового напоминания для YooKassa-подписок с включенным автопродлением.
Напоминание за 1 день до окончания подписки Пользователь Работает, если SUBSCRIPTION_NOTIFY_DAYS_BEFORE >= 1. Для YooKassa auto-renew 24-часовой webhook сначала пытается списать продление и может не отправить напоминание.
Напоминание за несколько часов до окончания подписки Пользователь Отправляется локальным worker, если SUBSCRIPTION_NOTIFY_HOURS_BEFORE задан от 1 до 23.
Уведомление в день окончания подписки Пользователь Управляется SUBSCRIPTION_NOTIFY_ON_EXPIRE; email требует SUBSCRIPTION_EMAIL_NOTIFICATIONS_ENABLED=True.
Уведомление через сутки после окончания подписки Пользователь Управляется SUBSCRIPTION_NOTIFY_AFTER_EXPIRE; email требует SUBSCRIPTION_EMAIL_NOTIFICATIONS_ENABLED=True.
Исчерпан трафик пробного периода Пользователь - Отправляется локальным worker для trial-подписок.
Ответ администратора в тикете поддержки Пользователь Telegram отправляется пользователям с Telegram-аккаунтом, email - пользователям с привязанным email.
Закрытие тикета поддержки Пользователь Telegram отправляется пользователям с Telegram-аккаунтом, email - пользователям с привязанным email.
Слияние email- и Telegram-аккаунтов Пользователь - Email отправляется на итоговый email аккаунта после безопасного merge.
Новый тикет поддержки Администраторы Telegram/log уведомления зависят от LOG_SUPPORT; email включается через SUPPORT_ADMIN_EMAIL_NOTIFICATIONS_ENABLED.
Ответ пользователя в тикете поддержки Администраторы Telegram/log уведомления зависят от LOG_SUPPORT; email включается через SUPPORT_ADMIN_EMAIL_NOTIFICATIONS_ENABLED.
Новая регистрация через Telegram Администраторы / лог-чат - Управляется LOG_NEW_USERS.
Новая регистрация по email Администраторы / лог-чат - Управляется LOG_NEW_USERS.
Email привязан к Telegram-аккаунту Администраторы / лог-чат - Управляется LOG_NEW_USERS.
Telegram привязан к email-аккаунту Администраторы / лог-чат - Управляется LOG_NEW_USERS.
Email- и Telegram-аккаунты объединены Администраторы / лог-чат - Управляется LOG_NEW_USERS.
Успешная оплата Администраторы / лог-чат - Управляется LOG_PAYMENTS.
Активация trial Администраторы / лог-чат - Управляется LOG_TRIAL_ACTIVATIONS.
Активация промокода Администраторы / лог-чат - Управляется LOG_PROMO_ACTIVATIONS.
Подозрительная попытка промокода Администраторы / лог-чат - Управляется LOG_SUSPICIOUS_ACTIVITY.
Результат ручной синхронизации с Remnawave Panel Администратор, запустивший синхронизацию - Worker отправляет короткий результат в target_chat_id, если синхронизация запускалась через очередь.
Ошибка создания пользователя в Remnawave Panel Администраторы - Отправляется администраторам из ADMIN_IDS.
Архив бэкапа создан Администраторы / backup-чат - Архив отправляется в BACKUP_CHAT_ID, а если он пустой - в LOG_CHAT_ID.
Ошибка бэкапа Администраторы / backup-чат - Ошибка отправляется в BACKUP_CHAT_ID, а если он пустой - в LOG_CHAT_ID.

Важно про окончание подписки

Если пользователь привязал email к Telegram-аккаунту, уведомления об окончании подписки дублируются в оба канала: Telegram и email. Если привязан только Telegram - уйдет только Telegram. Если есть только email - уйдет только email.

Email-доставка требует одновременно:

  • SUBSCRIPTION_EMAIL_NOTIFICATIONS_ENABLED=True;
  • настроенный SMTP-контур;
  • email у пользователя.

Синхронизация каналов

Remnawave webhook и локальный SubscriptionNotificationWorker используют общий сервис отправки и общую таблицу дедупликации subscription_notifications.

Дедупликация ведется отдельно по каналам: например, before_3d:telegram и before_3d:email. Благодаря этому сбой одного канала не блокирует второй, а повторное событие из webhook или worker не отправляет уже доставленное уведомление повторно.

Старые записи без канала, например before_3d, считаются Telegram-историей. Они блокируют повторное Telegram-сообщение, но не мешают отправить email после обновления.