espace-paie-odentas/NOTIFICATION_NOTES_CONTRAT.md
odentas 206c1f2afc feat: Notification email lors de l'ajout de notes sur contrats
- 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
2025-12-16 20:39:36 +01:00

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 notes de Supabase
  • Un email est automatiquement envoyé à l'équipe paie

2. API Route

Route : POST /api/contrats/[id]/notes

Processus :

  1. Validation du contenu de la note
  2. Récupération des informations du contrat (org_id, numéro)
  3. Insertion de la note dans la base de données
  4. Récupération des informations de l'organisation (nom, code employeur)
  5. 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

  1. lib/emailTemplateService.ts - Ajout du type et de la configuration du template
  2. app/api/contrats/[id]/notes/route.ts - Ajout de la logique d'envoi d'email
  3. app/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-name ou x-company-name)