- Ajout du type 'contract-note-added' dans le système email universel v2 - Email automatique envoyé à paie@odentas.fr quand un client ajoute une note - Fonctionne pour tous les types de contrats (CDDU mono, multi, RG) - Email contient: organisation, code employeur, n° contrat, utilisateur, contenu note - Lien direct vers le contrat dans l'interface staff - Gestion des erreurs: note créée même si email échoue - Documentation complète dans NOTIFICATION_NOTES_CONTRAT.md
3.5 KiB
3.5 KiB
Notification Email - Ajout de Notes sur Contrats
Vue d'ensemble
Lorsqu'un client ajoute une note depuis la page d'un contrat (CDDU mono, multi ou RG), un email de notification est automatiquement envoyé à paie@odentas.fr.
Pages concernées
/contrats/[id]- Contrats CDDU mono-mois/contrats-multi/[id]- Contrats CDDU multi-mois/contrats-rg/[id]- Contrats Régime Général
Fonctionnement
1. Ajout d'une note
Lorsqu'un utilisateur ajoute une note via le composant NotesSection :
- La note est enregistrée dans la table
notesde Supabase - Un email est automatiquement envoyé à l'équipe paie
2. API Route
Route : POST /api/contrats/[id]/notes
Processus :
- Validation du contenu de la note
- Récupération des informations du contrat (org_id, numéro)
- Insertion de la note dans la base de données
- Récupération des informations de l'organisation (nom, code employeur)
- Envoi de l'email de notification via le système universel v2
3. Email de notification
Type d'email : contract-note-added
Destinataire : paie@odentas.fr
Informations incluses :
- Nom de l'organisation
- Code employeur
- Numéro du contrat
- Nom de l'utilisateur qui a ajouté la note
- Contenu de la note
- Lien direct vers le contrat dans l'interface staff
Template : Utilise le système d'email universel v2 avec :
- Carte d'information (organisation, code employeur, contrat, utilisateur)
- Carte de détails (contenu de la note)
- Bouton CTA vers le contrat dans l'interface staff
Configuration
Type d'email ajouté
Dans lib/emailTemplateService.ts :
export type EmailTypeV2 =
// ...
| 'contract-note-added' // Notification interne : note ajoutée à un contrat
// ...
Champs de données ajoutés
Dans EmailDataV2 :
export interface EmailDataV2 {
// ...
noteContent?: string;
contractId?: string;
contractNumber?: string;
noteAuthor?: string;
// ...
}
Configuration du template
'contract-note-added': {
subject: '[CONTRAT] Nouvelle note ajoutée - {{contractNumber}}',
title: '📝 Nouvelle note sur un contrat',
greeting: 'Équipe Paie',
mainMessage: 'Un client a ajouté une note sur un contrat.',
ctaText: 'Voir le contrat',
// ...
}
Gestion des erreurs
- Si l'organisation n'est pas trouvée, l'email n'est pas envoyé mais la note est quand même créée
- Si l'envoi de l'email échoue, l'erreur est loguée mais la requête ne retourne pas d'erreur (la note est bien créée)
- Cela garantit que l'ajout de note fonctionne même si le système d'email rencontre un problème
Logs
Les logs suivants sont générés :
- ✅ Email de notification envoyé pour la note ajoutée au contrat: [id]
- ⚠️ Impossible de récupérer les informations de l'organisation pour l'email de notification
- ❌ Erreur lors de l'envoi de l'email de notification: [error]
Fichiers modifiés
lib/emailTemplateService.ts- Ajout du type et de la configuration du templateapp/api/contrats/[id]/notes/route.ts- Ajout de la logique d'envoi d'emailapp/api/send-email-v2/route.ts- Ajout du type dans la liste des types valides
Notes techniques
- Le système utilise le système d'email universel v2 du projet
- L'email est envoyé de manière asynchrone et n'affecte pas la performance de l'ajout de note
- Le lien CTA pointe vers l'interface staff :
https://espace-paie.odentas.fr/staff/contrats/[id] - Le nom de l'utilisateur est récupéré depuis les headers HTTP (
x-user-nameoux-company-name)