Modules — CRM & ventes¶
Ces modules portent le parcours métier central : capter des leads, les distribuer à des closers, et faire progresser chaque opportunité dans un pipeline.
| Module | app/ · domain/ · web/ |
Rôle |
|---|---|---|
| forms | forms/ |
Formulaires de capture de leads, champs typés, soumission, génération par IA. |
| leads | leads/ |
Leads bruts issus des soumissions, import CSV, listing par workspace. |
| projects | projects/ |
Projets/campagnes de vente, affectation aux closers. |
| project-leads | project-leads/ |
Leads distribués à un closer dans un projet : cycle de vie, historique d'affectation, notes, analyse IA. |
| workflows | workflows/ |
Définitions de statuts et transitions du pipeline ; pipeline de vente par défaut. |
| scoring | scoring/ (app/) |
Règles de score de qualité d'un lead. |
forms¶
Formulaires partageables de capture. Les champs sont typés (texte, email, téléphone, select…). La soumission crée un lead. Le module supporte une génération assistée par IA (POST /forms/generate, via OpenRouter ; sans clé, un stub est utilisé) et des règles de scoring.
leads¶
Un lead est une soumission brute rattachée au workspace. Source possible : soumission de formulaire ou import CSV. Le listing est paginé (voir Conventions). Un lead devient exploitable une fois distribué dans un projet, sous forme de project-lead.
projects¶
Un projet (campagne) regroupe un effort de vente et l'affecte à des closers. Il définit le contexte dans lequel les leads sont travaillés.
project-leads¶
C'est le cœur du pipeline. Un project-lead est un lead distribué à un closer au sein d'un projet. Il porte :
- un statut dans le cycle de vie (ex. nouveau → qualifié → en négociation → gagné/perdu) régi par les workflows ;
- un historique d'affectation (assignment history) ;
- des notes, et une analyse / insights par IA (
ai-analysis.service.ts) ; - un snapshot de commission :
salesManagerIdest figé au moment de l'affectation et n'est pas re-synchronisé si le manager de l'adhésion change ensuite — ainsi les commissions des leads clôturés restent attribuées au manager qui supervisait à l'affectation.
Historique d'affectation
On n'écrit jamais de ligne d'historique from → to toutes deux nulles : une telle ligne ne porte aucune information. Le snapshot de l'état courant vit sur ProjectLead.assignmentReason.
La couche HTTP « CRM » (web/crm/) expose ces opérations et délègue la logique à project-leads.
workflows¶
Définit les statuts du pipeline et les transitions autorisées, dont un pipeline de vente par défaut. Une transition illégale est rejetée par une erreur de validation (400), éventuellement rangée sous une clé de champ ad hoc (ex. target) — voir Erreurs API.
scoring¶
Applique des règles de score de qualité aux leads (par ex. à partir des réponses du formulaire), pour prioriser le travail des closers.
Liens transverses¶
- Les paiements et commissions générés par une vente : voir Finance.
- Les notifications d'affectation et de changement de statut : voir Transverses.