Se rendre au contenu

Le modèle crm.lead : Comprendre l’architecture Lead & Opportunity d’Odoo

Guide pratique et complet du modèle Lead CRM dans Odoo destiné aux développeurs et consultants fonctionnels — principes, objets et bonnes pratiques
11 mars 2026 par
Le modèle crm.lead : Comprendre l’architecture Lead & Opportunity d’Odoo
Dasolo
| Aucun commentaire pour l'instant

Introduction


Dans Odoo, les modèles déterminent la façon dont les données sont organisées et conservées. Chaque élément métier — commande, facture, prospect — est représenté par un modèle qui structure, valide et relie ces informations dans la base de données.


Maîtriser les modèles Odoo est indispensable pour les consultants fonctionnels comme pour les développeurs. Ce sont eux qui définissent les champs, les liens entre objets et la logique métier sur laquelle reposent les rapports et les automatisations.


Ici, nous nous concentrons sur crm.lead, le modèle qui alimente le pipeline commercial dans le module CRM. Que vous développiez des modules sur mesure, synchronisiez un CRM externe ou configuriez vos processus de vente, vous rencontrerez ce modèle.

Qu’est-ce que le modèle crm.lead


Le modèle crm.lead représente les prospects et les opportunités. C’est le point central où sont consignées les informations du pipeline, couvrant aussi bien les premiers contacts que les affaires qualifiées.


Le CRM l’utilise directement, et plusieurs autres apps (marketing, site web, modules tiers) viennent étendre ou référencer crm.lead. Remplissage de formulaire, création d’opportunité par un commercial ou transformation d’un prospect en client : tout passe par ce modèle.


Fonctionnellement, crm.lead s’appuie sur l’héritage de modèles d’Odoo : le module CRM apporte la structure de base et des modules complémentaires ajoutent champs et comportements (enrichissement, intégration web, etc.) sans réinventer le cœur.

Champs clés du modèle


Voici les champs principaux à connaître pour manipuler correctement des prospects et opportunités dans Odoo.


1. name

Type : Char. Libellé du prospect/opportunité affiché dans les vues liste et kanban. Sert d’identifiant lisible pour l’équipe commerciale (ex. « Demande site web », « Affaire X - Société Y »).


2. contact_name

Type : Char. Nom de la personne de contact quand aucun partenaire n’est encore lié. Lors de la conversion, cette information est généralement reportée vers res.partner.


3. email_from

Type : Char. Adresse e‑mail principale du prospect, utilisée pour les échanges pré‑conversion et comme critère de déduplication.


4. phone

Type : Char. Téléphone principal affiché sur le formulaire pour journaliser les appels et planifier des relances.


5. mobile

Type : Char. Portable du contact, utile pour SMS ou actions urgentes distinctes du numéro fixe.


6. partner_id

Type : Many2one (res.partner). Lien vers le contact ou la société une fois le prospect qualifié/converti. Avant conversion, champ vide ; après, il référence le partenaire créé ou retrouvé.


7. user_id

Type : Many2one (res.users). Commercial responsable du lead, impactant l’assignation, les rapports et la planification d’activités.


8. team_id

Type : Many2one (crm.team). Équipe commerciale en charge, utilisée pour la distribution en round‑robin et les analytics par équipe.


9. stage_id

Type : Many2one (crm.stage). Stade actuel du pipeline (Nouveau, Qualifié, Proposition, Négociation, Gagné, Perdu). Les transitions déclenchent des actions et alimentent les rapports.


10. type

Type : Selection. Indique si l’enregistrement est un lead ou une opportunité — les leads représentent les premiers contacts, les opportunités sont qualifiées et portent un montant attendu.


11. expected_revenue

Type : Float. Chiffre d’affaires anticipé en cas de gain, utilisé pour les prévisions et le calcul de la valeur du pipeline pondéré.


12. probability

Type : Float. Pourcentage de probabilité de réussite (0–100) servant aux calculs pondérés ; peut être manuel ou dérivé du stage.


13. company_id

Type : Many2one (res.company). En environnement multi‑sociétés, indique la société propriétaire du lead, influençant visibilité et devise.


14. description

Type : Text. Notes internes, compte‑rendu d’échanges ou contexte utile pour le suivi commercial.


15. create_date

Type : Datetime. Date/heure de création automatique — utile pour analyser l’ancienneté des leads et les délais de traitement.


16. write_date

Type : Datetime. Date/heure de dernière modification, pour savoir quand le lead a été mis à jour pour la dernière fois.


17. date_open

Type : Datetime. Moment où le lead a été assigné à un utilisateur ; indicateur de réactivité pour le premier contact.


18. date_closed

Type : Datetime. Date de clôture (gagné/perdu) utilisée pour mesurer la durée du cycle de vente.


19. date_deadline

Type : Date. Date prévue de clôture, pratique pour organiser le plan d’actions et les prévisions.


20. active

Type : Boolean. Drapeau d’archivage : false masque l’enregistrement sans le supprimer — pratique pour conserver l’historique.


21. street, street2, city, zip

Type : Char. Champs d’adresse, copiés vers le partenaire lors de la conversion si nécessaires.


22. country_id

Type : Many2one (res.country). Pays du contact, utile pour segmenter les territoires et format d’adresse.


23. state_id

Type : Many2one (res.country.state). Région/province ; la liste est filtrée par pays pour cohérence.


24. source_id

Type : Many2one (utm.source). Origine du lead (site web, parrainage, campagne…), essentiel pour l’attribution marketing.


25. campaign_id

Type : Many2one (utm.campaign). Campagne marketing associée pour analyser le ROI des actions publicitaires ou emailing.


26. activity_ids

Type : One2many (mail.activity). Activités planifiées (appels, tâches, réunions) attachées au lead pour piloter le suivi.


27. color

Type : Integer. Index de couleur affiché en kanban/listes pour repérer visuellement priorités ou segments.


28. message_ids

Type : One2many (mail.message). Fil de discussion (chatter) regroupant emails, notes et historique des interactions.

Usage du modèle dans les processus métier


1. Capture des leads depuis le site web

Un formulaire de contact sur votre site Odoo crée automatiquement un crm.lead : nom, e‑mail et message alimentent les champs correspondants, puis le prospect apparaît dans le pipeline pour que l’équipe commerciale le traite.


2. Qualification et conversion des leads

Les commerciaux font évoluer le lead dans les étapes du pipeline. À la qualification on bascule le type en Opportunité et on renseigne le chiffre attendu ; à la conclusion, le prospect est converti en res.partner et, si besoin, une commande peut être créée.


3. Reporting du pipeline commercial

Les managers s’appuient sur les données crm.lead pour suivre la valeur du pipeline (expected_revenue, probability, stage), avec des vues filtrées par commercial et équipe pour mesurer la performance.


4. Attribution marketing

Les champs source_id et campaign_id relient les leads aux campagnes (UTM, emailings, pubs). Le marketing se sert de ces données pour mesurer l’efficacité et le retour sur investissement.


5. Gestion des activités et relances

Les commerciaux planifient tâches, appels et rendez‑vous via activity_ids. Les échéances d’activité alimentent les colonnes « Prochaine activité » et aident à ne pas laisser de lead sans suivi.

Comment les développeurs étendent ce modèle


Les développeurs disposent de plusieurs méthodes pour étendre crm.lead, l’héritage de modèles étant la technique principale.


Héritage de modèle

Déclarez _inherit = 'crm.lead' dans votre module pour ajouter champs, redéfinir des méthodes ou ajouter des contraintes. Ce mécanisme permet d’empiler des extensions sans toucher au cœur, facilitant les mises à jour.


Ajout de champs

Définissez de nouveaux champs dans le modèle hérité en choisissant le type adapté (Char, Many2one, Boolean, Integer, Text, Selection). Exemples fréquents : source commerciale interne, produit d’intérêt, secteur d’activité. Pensez aux champs dépendant de la société en multi‑company.


Extensions en Python

Surchagez les méthodes create, write ou action_convert pour intégrer de la logique métier, en appelant super() pour préserver le comportement standard. Utilisez les décorateurs Odoo (@api.depends, @api.onchange) pour champs calculés et interactions UI.


Odoo Studio

Odoo Studio permet d’ajouter rapidement des champs sans coder — pratique pour des personnalisations légères. Pour des workflows complexes ou des évolutions pérennes, préférer un module sur mesure pour une maintenance maîtrisée.

Bonnes pratiques


  • Adaptez les étapes (stages) à votre processus commercial. Vous pouvez séparer les séquences pour les leads et les opportunités si nécessaire.
  • Capturez source_id et campaign_id via les paramètres UTM des formulaires web pour assurer une attribution marketing fiable.
  • Utilisez team_id pour organiser l’assignation automatique (round‑robin) et gérer les territoires depuis crm.team.
  • Pour les intégrations API, privilégiez XML‑RPC ou JSON‑RPC : crm.lead est accessible et vous permettra de mapper les identifiants externes vers un champ dédié (ex. ref) pour synchronisation.
  • Préfixez vos champs personnalisés (x_ ou with module prefix) pour éviter les collisions lors de mises à jour ultérieures d’Odoo.

Erreurs courantes


  • Créer des doublons sans vérifier l’e‑mail. Avant de créer un lead, normalisez et vérifiez email_from (ou utilisez email_normalized) pour éviter les enregistrements en double.
  • Confondre type et stage_id. Le type (Lead vs Opportunity) détermine le statut global du record, tandis que stage_id positionne l’affaire dans l’entonnoir ; les deux sont importants pour le suivi et les rapports.
  • Ne pas renseigner user_id ou team_id. Les leads non assignés tombent souvent entre les mailles du filet : configurez des règles d’assignation automatiques ou imposez une affectation manuelle.
  • Redéfinir la logique de conversion sans appeler super(). L’action de conversion réalise plusieurs opérations cruciales ; étendez‑la, mais conservez l’appel au parent pour éviter les régressions.
  • Ajouter des champs requis sans valeur par défaut. Lors d’un déploiement, les enregistrements existants risquent d’échouer la validation si un champ obligatoire n’est pas initialisé.

Conclusion


Le modèle crm.lead est le pilier du module CRM d’Odoo : il centralise prospects et opportunités et pilote le pipeline commercial. Bien le comprendre facilite la configuration, la personnalisation et les intégrations.


Que vous cartographiez des processus commerciaux comme consultant ou développiez des modules CRM, une bonne connaissance de crm.lead évite des heures perdues et des erreurs courantes.

Besoin d’aide pour votre implémentation Odoo ?


Dasolo accompagne les entreprises dans l’implémentation, la personnalisation et l’optimisation d’Odoo. Nous sommes spécialisés en intégrations API et en développement, avec une solide expérience des modèles Odoo comme crm.lead.


Si vous avez besoin d’aide pour votre implémentation Odoo, la création de modules CRM sur mesure ou la synchronisation avec d’autres systèmes, nous pouvons vous accompagner. Demandez une démo pour discuter de votre projet.

Le modèle crm.lead : Comprendre l’architecture Lead & Opportunity d’Odoo
Dasolo 11 mars 2026
Partager cet article
Se connecter pour laisser un commentaire.