Mettre en œuvre un CRM intégré permettant aux équipes commerciales, administratives et de gestion locative de suivre l'ensemble du cycle de vie client.
À l'issue du Sprint 8 :
Ce sprint transforme la plateforme en véritable outil de gestion commerciale.
CRMModule LeadsModule ActivitiesModule TasksModule PipelineModule CustomerNotesModule AutomationModule
Prospect ↓ Qualification ↓ Contact ↓ Visite ↓ Négociation ↓ Client ↓ Réservation
En tant que commercial
Je souhaite enregistrer un prospect
Afin de suivre une opportunité commerciale.
POST /crm/leads
Nom Prénom Téléphone Email Origine Commentaires
Site Web Téléphone Email Salon Réseau Recommandation Autre
GET /crm/leads
Statut Commercial Source Date création
PUT /crm/leads/{id}
POST /crm/leads/{id}/move-stage
NOUVEAU ↓ QUALIFIÉ ↓ CONTACTÉ ↓ VISITE ↓ NÉGOCIATION ↓ GAGNÉ └── PERDU
NOUVEAU QUALIFIÉ CONTACTÉ VISITE NÉGOCIATION GAGNÉ PERDU
POST /crm/leads/{id}/convert
Lead ↓ Customer ↓ User ↓ Reservation possible
POST /crm/activities
APPEL EMAIL VISITE RENDEZ_VOUS MESSAGE AUTRE
Date Commercial Compte rendu Résultat
GET /crm/customers/{id}/activities
POST /crm/tasks
Titre Description Assigné à Date échéance Priorité
LOW MEDIUM HIGH URGENT
POST /crm/tasks/{id}/complete
POST /crm/customers/{id}/notes
COMMERCIALE ADMINISTRATIVE FINANCIÈRE TECHNIQUE
GET /crm/customers/{id}/notes
GET /crm/customers/{id}/timeline
Création compte Emails Appels Réservations Paiements Contrats Notes
POST /crm/reminders
Prospect inactif Contrat non signé Paiement en attente Réservation abandonnée
Email SMS Notification
Prospect inactif ↓ 7 jours ↓ Email automatique
model Lead {
id String @id @default(uuid())
firstName String
lastName String
email String?
phone String?
source String?
stage String
assignedToId String?
createdAt DateTime @default(now())
}
model Activity {
id String @id @default(uuid())
leadId String?
customerId String?
activityType String
activityDate DateTime
notes String?
}
model Task {
id String @id @default(uuid())
title String
description String?
assignedToId String
dueDate DateTime
priority String
completed Boolean @default(false)
}
model CustomerNote {
id String @id @default(uuid())
customerId String
noteType String
content String
createdById String
createdAt DateTime
}
src/modules/crm ├── leads │ ├── pipeline │ ├── activities │ ├── tasks │ ├── notes │ ├── timeline │ └── automations
LeadService PipelineService ActivityService TaskService CustomerNoteService ReminderService
LeadCreated
LeadConverted
TaskCompleted
ReminderTriggered
CRM Leads Activities Tasks CustomerNotes Pipeline
Environ :
35 endpoints
/crm /crm/leads /crm/leads/[id] /crm/pipeline /crm/tasks /crm/customers /crm/customers/[id]
LeadKanban LeadCard CustomerTimeline TaskBoard ActivityFeed ReminderPanel
Prospects actifs Prospects gagnés Prospects perdus Taux conversion Activités du jour Tâches en retard
LeadService PipelineService TaskService ActivityService
Création prospect ↓ Qualification ↓ Activité ↓ Conversion
Création prospect ↓ Déplacement pipeline ↓ Ajout activité ↓ Création tâche ↓ Ajout note ↓ Conversion client
Le Sprint 8 est terminé lorsque :
Scénario métier :
1. Création prospect 2. Qualification 3. Appel commercial 4. Création tâche 5. Ajout note 6. Déplacement pipeline 7. Conversion client 8. Création réservation
À l'issue du Sprint 8 :
La plateforme couvre désormais les processus commerciaux et opérationnels de l'agence.
Objectif :
Centraliser toutes les communications de la plateforme.
Modules concernés :
MessagingModule NotificationsModule EmailModule SmsModule TemplatesModule CampaignsModule
Fonctionnalités :
À l'issue du Sprint 9, la plateforme disposera d'un centre de communication unifié.