2.7 KiB
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
-
/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
- Ajout de 2 nouveaux types :
-
/lib/emailMigrationHelpers.ts- Fonction
sendInternalTicketCreatedEmail()- notification nouveau ticket - Fonction
sendInternalTicketReplyEmail()- notification réponse utilisateur - Conversion automatique des sauts de ligne en
<br>
- Fonction
-
/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
-
/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
- Se connecter en tant qu'utilisateur (non-staff)
- Créer un nouveau ticket → Email reçu sur paie@odentas.fr
- Répondre au ticket → Email reçu sur paie@odentas.fr
- Se connecter en tant que staff et répondre → Pas d'email interne (uniquement à l'utilisateur)