Mettre en place un centre de communication unifié couvrant l'ensemble des échanges entre :
À l'issue du Sprint 9 :
Ce sprint transforme la plateforme en outil omnicanal de communication.
MessagingModule NotificationsModule EmailModule SmsModule TemplatesModule CampaignsModule RealtimeModule
Événement métier ↓ Notification Engine ↓ Email SMS Notification In-App WebSocket ↓ Historisation
En tant qu'utilisateur
Je souhaite envoyer un message
Afin d'échanger avec l'agence.
POST /messages
Destinataire Sujet Message Pièces jointes
GET /messages/conversations
Participants Dernier message Date Nombre non lus
POST /messages/conversations/{id}/messages
PDF Image Document bureautique
20 Mo
ReservationCreated
Client Agence Propriétaire
ContractGenerated ContractSigned
PaymentSucceeded PaymentFailed RefundIssued
Confirmation réservation Rappel arrivée Paiement en attente Signature en attente
Twilio OVH SMS SMSFactor
GET /notifications
INFO SUCCESS WARNING ERROR
POST /notifications/{id}/read
Nouveau message Nouveau contrat Paiement reçu Nouvelle réservation
POST /templates
EMAIL SMS PUSH
{{customer_name}}
{{property_name}}
{{reservation_number}}
{{amount}}
POST /templates/preview
POST /campaigns
EMAIL SMS
Clients Prospects Propriétaires
Date Heure Fuseau horaire
GET /communications/history
Utilisateur Canal Date Statut
PUT /users/me/notification-settings
Email SMS Push Marketing Réservations Paiements Contrats
model Conversation {
id String @id @default(uuid())
subject String?
createdAt DateTime @default(now())
}
model Message {
id String @id @default(uuid())
conversationId String
senderId String
content String
createdAt DateTime @default(now())
}
model Notification {
id String @id @default(uuid())
userId String
type String
title String
message String
isRead Boolean @default(false)
createdAt DateTime @default(now())
}
model Template {
id String @id @default(uuid())
name String
channel String
subject String?
content String
active Boolean
}
model Campaign {
id String @id @default(uuid())
name String
channel String
scheduledAt DateTime?
status String
}
src/modules/communications ├── messaging │ ├── notifications │ ├── email │ ├── sms │ ├── templates │ ├── campaigns │ └── realtime
MessagingService NotificationService EmailService SmsService TemplateService CampaignService RealtimeService
MessageSent
NotificationCreated
EmailSent
SmsSent
CampaignExecuted
Resend SendGrid Mailjet
Twilio OVH SMS SMSFactor
Socket.IO WebSocket Gateway NestJS
Messaging Notifications Templates Campaigns Emails Sms
Environ :
35 endpoints
/messages /messages/[id] /notifications /templates /campaigns /campaigns/[id]
MessageCenter ConversationList NotificationBell NotificationCenter TemplateEditor CampaignScheduler
Messages envoyés Emails envoyés SMS envoyés Taux ouverture Taux clic Campagnes actives
MessagingService NotificationService EmailService SmsService CampaignService
Réservation ↓ Notification ↓ Email ↓ Historisation
Création réservation ↓ Notification automatique ↓ Email envoyé ↓ SMS envoyé ↓ Consultation historique
Le Sprint 9 est terminé lorsque :
Scénario métier :
1. Création réservation 2. Notification automatique 3. Envoi email 4. Envoi SMS 5. Message client 6. Réponse agence 7. Notification temps réel 8. Consultation historique
À l'issue du Sprint 9 :
La plateforme couvre désormais l'ensemble du cycle relationnel avec les clients et les propriétaires.
Objectif :
Fournir aux directions et gestionnaires les indicateurs de pilotage de l'activité.
Modules concernés :
ReportingModule DashboardModule AnalyticsModule ExportsModule ForecastModule
Fonctionnalités :
À l'issue du Sprint 10, la plateforme disposera d'une couche décisionnelle complète permettant le pilotage de l'agence.