# 📧 RĂ©sumĂ© : Migration Email Signature SalariĂ© vers SystĂšme Universel v2 ## 🎯 Objectif atteint Au lieu que la Lambda `postDocuSealSalarie` envoie directement les emails via AWS SES, elle appelle maintenant une API de l'Espace Paie qui utilise le systĂšme universel v2. Tous les emails sont maintenant loggĂ©s dans la base de donnĂ©es. --- ## ✅ Ce qui a Ă©tĂ© fait ### 1. **Espace Paie - SystĂšme Email** #### Fichier : `lib/emailTemplateService.ts` - ✅ Ajout du type `'signature-request-salarie'` dans `EmailTypeV2` - ✅ Ajout des champs `matricule` et `typecontrat` dans `EmailDataV2` - ✅ Configuration complĂšte du template avec : - Subject : `"Signez votre contrat {{organizationName}}"` - Carte info : employeur + matricule - Carte dĂ©tails : rĂ©fĂ©rence, type contrat, dates, poste, production - Bouton CTA : "Signer le contrat" - Footer personnalisĂ© pour les salariĂ©s #### Fichier : `lib/cleanEnv.ts` - ✅ Ajout de `LAMBDA_API_KEY` dans l'objet `ENV` #### Fichier : `app/api/emails/signature-salarie/route.ts` ⭐ NOUVEAU - ✅ Route POST protĂ©gĂ©e par API Key - ✅ Validation des donnĂ©es entrantes - ✅ Appel Ă  `sendUniversalEmailV2()` avec le type `signature-request-salarie` - ✅ Retour du messageId SES - ✅ Logs automatiques dans `email_logs` (via le systĂšme universel) ### 2. **Lambda AWS** #### Fichier : `LAMBDA_SIGNATURE_SALARIE_UPDATED.js` ⭐ CODE MIS À JOUR Changements par rapport Ă  l'ancien code : **❌ SupprimĂ© :** - `sendSignatureEmail()` - Envoi direct via SES - `uploadEmailToS3()` - Upload du HTML sur S3 - `logToAirtable()` - Journalisation Airtable - `generateEmailHtml()` - Template HTML hardcodĂ© - Import de `ses` d'AWS SDK **✅ AjoutĂ© :** - Appel POST vers `${ESPACE_PAIE_URL}/api/emails/signature-salarie` - Header `X-API-Key` pour l'authentification - Payload structurĂ© avec tous les champs nĂ©cessaires - Gestion d'erreur amĂ©liorĂ©e avec timeout **📝 Variables d'environnement :** - **Nouvelles** : `ESPACE_PAIE_URL`, `ESPACE_PAIE_API_KEY` - **À supprimer** : `AWS_SES_FROM`, `S3_BUCKET_NAME_EMAILS`, `AIRTABLE_API_KEY` ### 3. **Documentation** #### Fichier : `LAMBDA_EMAIL_SIGNATURE_SALARIE_GUIDE.md` ⭐ NOUVEAU Guide complet avec : - Architecture du systĂšme - Configuration AWS Lambda - Configuration Espace Paie - DĂ©ploiement pas Ă  pas - Debug & monitoring - SĂ©curitĂ© - Gestion des erreurs - Checklist de dĂ©ploiement --- ## 🔧 Configuration requise ### Variables d'environnement Espace Paie ```env # .env.local (dĂ©veloppement) LAMBDA_API_KEY= # Vercel (production) # Ajouter via : vercel env add LAMBDA_API_KEY ``` ### Variables d'environnement Lambda AWS ```env # À AJOUTER ESPACE_PAIE_URL=https://paie.odentas.fr ESPACE_PAIE_API_KEY= # À CONSERVER (pour Supabase, DocuSeal, Zapier) DOCUSEAL_API_TOKEN=xxxxx SUPABASE_URL=xxxxx SUPABASE_SERVICE_ROLE=xxxxx ZAPIER_WEBHOOK_URL=xxxxx # À SUPPRIMER (optionnel mais recommandĂ©) AWS_SES_FROM=paie@odentas.fr S3_BUCKET_NAME_EMAILS=odentas-emails AIRTABLE_API_KEY=xxxxx ``` --- ## 📊 Flux de donnĂ©es ### Avant (ancien systĂšme) ``` DocuSeal → Lambda → AWS SES → SalariĂ© ↓ S3 (HTML) ↓ Airtable (logs) ``` ### AprĂšs (nouveau systĂšme) ⭐ ``` DocuSeal → Lambda → API Espace Paie → SystĂšme Email v2 → AWS SES → SalariĂ© ↓ Supabase email_logs ↓ Interface /staff/email-logs ``` --- ## 🎁 Avantages | Aspect | Avant | AprĂšs | |--------|-------|-------| | **Templates** | HTML hardcodĂ© dans Lambda | Template universel v2 centralisĂ© | | **Logs** | Airtable (externe) | Supabase `email_logs` (intĂ©grĂ©) | | **Debugging** | CloudWatch uniquement | CloudWatch + Interface Staff + DB | | **CohĂ©rence** | Email diffĂ©rent des autres | MĂȘme style que tous les emails | | **Maintenance** | 4 fichiers Ă  maintenir | 1 configuration template | | **HTML Storage** | S3 manuel | Automatique dans logs | --- ## 🚀 Pour dĂ©ployer ### 1. GĂ©nĂ©rer l'API Key ```bash openssl rand -hex 32 # Copier la clĂ© gĂ©nĂ©rĂ©e ``` ### 2. Espace Paie ```bash # Local echo "LAMBDA_API_KEY=" >> .env.local # Vercel vercel env add LAMBDA_API_KEY # Coller la clĂ© # Puis redĂ©ployer vercel --prod ``` ### 3. Lambda AWS 1. Aller dans AWS Console → Lambda → `postDocuSealSalarie` 2. Configuration → Environment variables 3. Ajouter : - `ESPACE_PAIE_URL` = `https://paie.odentas.fr` - `ESPACE_PAIE_API_KEY` = `` (la mĂȘme) 4. Code → Remplacer par `LAMBDA_SIGNATURE_SALARIE_UPDATED.js` 5. Deploy ### 4. Tester 1. DĂ©clencher un webhook DocuSeal 2. VĂ©rifier CloudWatch logs 3. VĂ©rifier `/staff/email-logs` 4. VĂ©rifier la rĂ©ception de l'email --- ## 🔍 VĂ©rifications ### ✅ L'API fonctionne ```bash curl -X POST https://paie.odentas.fr/api/emails/signature-salarie \ -H "X-API-Key: votre_cle" \ -H "Content-Type: application/json" \ -d '{ "employeeEmail": "test@example.com", "signatureLink": "https://test.com", "reference": "TEST-001", "organizationName": "Test Org" }' ``` RĂ©ponse attendue : ```json { "success": true, "messageId": "01000192...", "recipient": "test@example.com", "reference": "TEST-001" } ``` ### ✅ Les logs apparaissent 1. Interface : `/staff/email-logs` 2. Filtrer par type : `signature-request-salarie` 3. VĂ©rifier le statut `sent` 4. Cliquer pour voir le HTML --- ## 📁 Fichiers du projet ``` Espace Paie/ ├── app/api/emails/signature-salarie/ │ └── route.ts ⭐ NOUVEAU ├── lib/ │ ├── emailTemplateService.ts ✏ MODIFIÉ │ └── cleanEnv.ts ✏ MODIFIÉ ├── LAMBDA_SIGNATURE_SALARIE_UPDATED.js ⭐ NOUVEAU (Ă  copier dans Lambda) ├── LAMBDA_EMAIL_SIGNATURE_SALARIE_GUIDE.md ⭐ NOUVEAU └── LAMBDA_EMAIL_SIGNATURE_SALARIE_SUMMARY.md ⭐ CE FICHIER ``` --- ## 🆘 Support En cas de problĂšme : 1. **Logs Lambda** : CloudWatch Logs 2. **Logs API** : Console serveur Next.js (Vercel logs) 3. **Logs email** : `/staff/email-logs` dans l'interface 4. **Documentation** : `LAMBDA_EMAIL_SIGNATURE_SALARIE_GUIDE.md` --- ## 📝 Notes - ✅ Compatible avec l'ancien systĂšme (possibilitĂ© de rollback) - ✅ Pas d'impact sur les autres emails - ✅ Le template peut ĂȘtre modifiĂ© dans `emailTemplateService.ts` - ✅ L'API peut ĂȘtre rĂ©utilisĂ©e pour d'autres webhooks Lambda --- *ImplĂ©mentation rĂ©alisĂ©e le 15 octobre 2025* *SystĂšme Email Universel v2 - Odentas Espace Paie*