espace-paie-odentas/SUPPORT_INTERNAL_NOTIFICATIONS_SUMMARY.md

2.7 KiB

Résumé : Notifications Internes Support

Fonctionnalité implémentée

Objectif : Envoyer un email à paie@odentas.fr quand un utilisateur (non-staff) interagit avec le support.

📧 Deux types de notifications

1. Nouveau ticket créé

  • Déclencheur : Utilisateur crée un ticket
  • Email à : paie@odentas.fr
  • Sujet : [SUPPORT] Nouveau ticket : {sujet}
  • Contient : Organisation, code employeur, nom/email créateur, message initial

2. Réponse utilisateur

  • Déclencheur : Utilisateur répond à un ticket existant
  • Email à : paie@odentas.fr
  • Sujet : [SUPPORT] Réponse au ticket : {sujet}
  • Contient : Organisation, code employeur, nom/email utilisateur, statut, réponse

🔧 Fichiers modifiés

  1. /lib/emailTemplateService.ts

    • Ajout de 2 nouveaux types : support-ticket-created, support-ticket-reply
    • Ajout de 5 nouveaux champs dans EmailDataV2
    • Création des templates email avec infoCard et detailsCard
  2. /lib/emailMigrationHelpers.ts

    • Fonction sendInternalTicketCreatedEmail() - notification nouveau ticket
    • Fonction sendInternalTicketReplyEmail() - notification réponse utilisateur
    • Conversion automatique des sauts de ligne en <br>
  3. /app/api/tickets/route.ts

    • Ajout de l'envoi de notification après création de ticket (si !isStaff)
    • Récupération des infos utilisateur et organisation
    • Gestion d'erreur non-bloquante
  4. /app/api/tickets/[id]/messages/route.ts

    • Ajout de l'envoi de notification après ajout de message (si !isStaff)
    • Récupération des infos utilisateur et ticket
    • Gestion d'erreur non-bloquante

🎯 Points clés

Sauts de ligne préservés : Conversion \n<br> dans les messages
Gestion d'erreurs : Les erreurs d'email ne bloquent jamais la création du ticket
Permissions : Utilisation de createSbServiceRole() pour getUserById
Code employeur : Récupéré depuis organization_details.code_employeur
Pas de double notification : Staff n'envoie pas de notification interne
Messages internes ignorés : Les messages internal: true ne génèrent pas d'email

🚀 Prêt à déployer

  • 0 erreur TypeScript
  • Templates email créés
  • Fonctions helper implémentées
  • API routes modifiées
  • Documentation complète dans SUPPORT_INTERNAL_NOTIFICATIONS.md

🧪 Test rapide

  1. Se connecter en tant qu'utilisateur (non-staff)
  2. Créer un nouveau ticket → Email reçu sur paie@odentas.fr
  3. Répondre au ticket → Email reçu sur paie@odentas.fr
  4. Se connecter en tant que staff et répondre → Pas d'email interne (uniquement à l'utilisateur)