internal-guides

notification-reminders

# Relances anti-spam pour utilisateurs inactifs ## Objectif Relancer les utilisateurs qui: - ne se sont pas connectes depuis un certain delai, - ont...

24 avril 20261 min de lecturePar Papotons
notification-reminders - Image de couverture

Relances anti-spam pour utilisateurs inactifs

Objectif

Relancer les utilisateurs qui:

  • ne se sont pas connectes depuis un certain delai,
  • ont encore des notifications non lues,
  • ont laisse les canaux de notification actives.

La relance est en format digest (pas une relance par notification) pour limiter le bruit.

Endpoint cron

  • Route: POST /api/cron/notification-reminders
  • Auth:
    • x-cron-secret: <CRON_SECRET> ou
    • Authorization: Bearer <CRON_SECRET>
  • Mode simulation:
    • body { "dryRun": true }
    • ou query ?dryRun=1

Variables d'environnement

  • CRON_SECRET (obligatoire pour proteger la route)
  • NOTIFICATION_REMINDER_INACTIVITY_HOURS (defaut: 48)
  • NOTIFICATION_REMINDER_UNREAD_WINDOW_DAYS (defaut: 14)
  • NOTIFICATION_REMINDER_COOLDOWN_HOURS (defaut: 48)
  • NOTIFICATION_REMINDER_MAX_PER_7_DAYS (defaut: 3)
  • NOTIFICATION_REMINDER_BATCH_SIZE (defaut: 250, max 500)

Regles anti-spam

  • max 1 relance par utilisateur/canal toutes les 48h (parametrable),
  • max 3 relances sur 7 jours (parametrable),
  • priorite au push, fallback email uniquement si push indisponible,
  • jamais push + email pour le meme utilisateur dans un meme run.

Historique de relance stocke dans notification_reminder_log.

Scheduler

Exemple Vercel Cron (toutes les heures):

{
  "crons": [
    { "path": "/api/cron/notification-reminders", "schedule": "0 * * * *" }
  ]
}

Ensuite, configure l'appel avec le secret (header) via ton orchestrateur.