Einführung
In Odoo legt jedes Modell fest, wie Geschäftsdaten strukturiert und in der Datenbank abgelegt werden. Ob Angebote, Rechnungen oder Interessenten – alle relevanten Informationen werden in Modellen organisiert, damit sie zuverlässig gesucht, gefiltert und verknüpft werden können.
Sowohl technische Entwickler als auch funktionale Berater sollten Odoo‑Modelle sicher verstehen. Modelle sind das Rückgrat der Datenarchitektur: Sie definieren Felder, Beziehungen zwischen Datensätzen und die Geschäftslogik, die das Verhalten der Anwendung steuert.
Dieser Beitrag konzentriert sich auf das crm.lead‑Modell. Es bildet die Grundlage für die Vertriebs‑Pipeline in Odoo CRM. Ob Sie Module anpassen, externe Systeme anbinden oder Vertriebsprozesse konfigurieren — mit crm.lead kommen Sie regelmäßig in Berührung.
Was das crm.lead‑Modell bedeutet
Das crm.lead‑Modell repräsentiert in Odoo sowohl frühzeitige Interessenten (Leads) als auch qualifizierte Verkaufschancen (Opportunities). Es ist das zentrale Datenobjekt, in dem alle Informationen zu Kontakt, Status und Prognosen zusammenlaufen.
Primär wird dieses Modell vom CRM‑Modul genutzt; außerdem greifen Marketing‑ und Website‑Funktionen darauf zu. Ein über die Website eingehendes Kontaktformular, eine manuell angelegte Opportunity oder die Umwandlung eines Leads in einen Kunden — all das passiert in crm.lead.
Funktionalität wird über Odoo‑Vererbung ergänzt: Das Basis‑CRM definiert die Kernstruktur, zusätzliche Module fügen Felder oder Verhalten hinzu (z. B. Anreicherung von Leads oder Web‑Formular‑Integration). So bleibt der Kern schlank und Erweiterungen modular.
Wichtige Felder im Modell
Im Folgenden finden Sie die Felder, die in crm.lead am häufigsten benutzt werden. Ein klares Verständnis dieser Felder erleichtert Konfiguration, Reporting und Integrationen.
1. name
Typ: Char. Bezeichnet die Kurzbeschreibung oder den Titel des Leads/der Opportunity. Dieses Feld ist der sichtbare Kopf in Listen‑ und Kanban‑Ansichten — z. B. „Kontaktanfrage über Website“ oder „Rahmenvertrag Müller GmbH“.
2. contact_name
Typ: Char. Name der Kontaktperson, solange noch kein res.partner verknüpft ist. Beim Konvertieren eines Leads wird dieser Name häufig in den Partnerdatensatz übernommen.
3. email_from
Typ: Char. Haupt‑E‑Mailadresse des Leads. Wichtige Information für die Kommunikation und zur Erkennung/Vermeidung von Duplikaten vor der Konvertierung.
4. phone
Typ: Char. Festnetz‑ oder Haupttelefonnummer. Sichtbar im Lead‑Formular und relevant für Anrufprotokolle und Follow‑Ups.
5. mobile
Typ: Char. Mobilnummer. Wird oft für SMS‑Benachrichtigungen oder kurzfristige Kontaktaufnahmen genutzt, wenn sie sich von der Hauptnummer unterscheidet.
6. partner_id
Typ: Many2one (res.partner). Verknüpft den Lead mit einem Kontakt oder Unternehmen nach der Qualifizierung oder Konvertierung; vor der Konvertierung bleibt das Feld leer.
7. user_id
Typ: Many2one (res.users). Zuständiger Vertriebsmitarbeiter. Wichtig für Zuordnung, Auswertung und die „Meine Opportunities“‑Sichten.
8. team_id
Typ: Many2one (crm.team). Vertriebs‑Teamzuordnung. Ermöglicht Round‑Robin‑Zuweisungen und teamorientiertes Reporting.
9. stage_id
Typ: Many2one (crm.stage). Aktueller Pipeline‑Status. Typische Stufen: Neu, Qualifiziert, Angebot, Verhandlung, Gewonnen, Verloren — Übergänge steuern Automatisierungen und Auswertungen.
10. type
Typ: Selection. Kennzeichnet, ob es sich um einen Lead (früh) oder eine Opportunity (qualifiziert) handelt. Der Typ beeinflusst verfügbare Ansichten und mögliche Stufen.
11. expected_revenue
Typ: Float. Erwarteter Umsatz bei erfolgreichem Abschluss. Wichtig für Pipeline‑Wert und Forecasts; häufig aus Betrag und Wahrscheinlichkeit berechnet.
12. probability
Typ: Float. Erfolgschance in Prozent (0–100). Grundlage für gewichtete Pipeline‑Berechnungen; kann manuell gesetzt oder über die Stage bestimmt werden.
13. company_id
Typ: Many2one (res.company). In Multi‑Company‑Setups zeigt dieses Feld, zu welcher Firma der Lead gehört — relevant für Sichtbarkeit und Währungsfragen.
14. description
Typ: Text. Freitextfeld für Notizen, Gesprächsprotokolle oder Kontextinformationen, die dem Vertrieb bei Nachverfolgung helfen.
15. create_date
Typ: Datetime. Zeitstempel der Erstellung. Wird automatisch gepflegt und ist nützlich für Lead‑Aging‑Analysen und Performance‑Messungen.
16. write_date
Typ: Datetime. Zeitstempel der letzten Änderung. Ebenfalls automatisch und hilfreich, um Aktivität und Aktualität zu beurteilen.
17. date_open
Typ: Datetime. Zeitpunkt der ersten Zuweisung an einen User (wenn user_id gesetzt wird). Nützlich, um Time‑to‑First‑Contact zu messen.
18. date_closed
Typ: Datetime. Zeitpunkt, an dem der Lead geschlossen wurde (gewonnen/verloren). Relevant für Sales‑Cycle‑Analysen und Conversion‑Reporting.
19. date_deadline
Typ: Date. Erwartetes Abschlussdatum. Hilft bei Forecasts und zur Planung von Aktivitäten und Ressourcen.
20. active
Typ: Boolean. Soft‑Delete‑Flag. Bei False wird der Datensatz archiviert und aus Standardlisten ausgeblendet — oft genutzt für verlorene oder zusammengeführte Leads.
21. street, street2, city, zip
Typ: Char. Adressfelder, die bei Bedarf schon vor einer Konvertierung erfasst und später in den Partnerdatensatz übernommen werden können.
22. country_id
Typ: Many2one (res.country). Landeseinstellung für regionale Auswertungen und korrekte Adressdarstellung; nützlich für Gebietszuteilungen.
23. state_id
Typ: Many2one (res.country.state). Bundesland/Region; die Auswahl wird in der Regel durch das Land eingeschränkt und dient der weiteren Segmentierung.
24. source_id
Typ: Many2one (utm.source). Herkunft des Leads (Website, Empfehlung, Kampagne etc.). Wichtig für Marketing‑Attribution und Kanal‑Auswertung.
25. campaign_id
Typ: Many2one (utm.campaign). Verknüpft den Lead mit einer spezifischen Kampagne — essenziell für ROI‑Analysen von E‑Mails und Anzeigen.
26. activity_ids
Typ: One2many (mail.activity). Geplante Aktivitäten (Aufgaben, Anrufe, Meetings). Treibt das Aktivitäts‑Widget und Erinnerungsfunktionen an.
27. color
Typ: Integer. Farbindex für Kanban/Listenansichten. Praktisch, um Leads nach Priorität oder anderen Kriterien visuell hervorzuheben.
28. message_ids
Typ: One2many (mail.message). Die Chatter‑Historie: Notizen, E‑Mails und Aktivitäten, die vollständigen Kontext zu jeder Interaktion liefern.
Wie das Modell im Tagesgeschäft eingesetzt wird
1. Leads per Website erfassen
Wenn Besucher über ein Kontaktformular Ihrer Website anfragen, erzeugt Odoo automatisch ein crm.lead. Felder wie E‑Mail, Name und Nachricht werden aus dem Formular übernommen, sodass das Vertriebsteam die Anfragen bequem in der Pipeline abarbeiten kann.
2. Qualifizierung und Konvertierung von Leads
Vertriebsmitarbeitende bewegen Leads durch die Stufen. Bei Qualifizierung wird der Typ zu Opportunity geändert und ein erwarteter Umsatz angelegt. Nach erfolgreichem Abschluss erstellt Odoo den passenden res.partner und – falls gewünscht – eine Verkaufsbestellung.
3. Reporting der Vertriebs‑Pipeline
Führungskräfte nutzen crm.lead‑Daten für Pipeline‑Reports: erwarteter Umsatz, Wahrscheinlichkeit und Stage ergeben den gewichteten Pipeline‑Wert. Filter nach Verkäufer und Team zeigen Performance und Engpässe.
4. Marketing‑Attribution
Quelle (source_id) und Kampagne (campaign_id) verknüpfen Leads mit Marketingmaßnahmen. UTM‑Parameter füllen diese Felder, sodass Marketingteams Kampagnen‑Erfolg und ROI messen können.
5. Aktivitäten und Nachverfolgung
Verkäufer planen Aktivitäten an Leads; diese landen in activity_ids. Deadlines steuern die Spalte „Nächste Aktivität“ und sorgen dafür, dass Follow‑Ups nicht untergehen.
Wie Entwickler das Modell erweitern
Entwickler erweitern crm.lead mit mehreren Mustern; Odoo‑Modellvererbung ist dabei das zentrale Werkzeug.
Modell‑Vererbung
Setzen Sie _inherit = 'crm.lead', um das Modell zu erweitern. So fügen Sie Felder hinzu, überschreiben Methoden oder definieren Constraints, ohne den Originalcode zu verändern — sinnvoll für Update‑Sicherheit und saubere Modultrennung.
Felder hinzufügen
Ergänzen Sie neue Felder im geerbten Modell und wählen Sie passende Typen (Char, Many2one, Boolean, Integer, Text, Selection). Häufige Erweiterungen sind zusätzliche Lead‑Quellen, Produktinteressen oder Branchenangaben. In Multi‑Company‑Szenarien sollten Sie abwägen, ob Felder unternehmensabhängig sein müssen.
Python‑Erweiterungen
Überschreiben Sie create, write oder action_convert, wenn Sie Logik hinzufügen müssen — rufen Sie dabei super() auf, um Basisfunktionen zu erhalten. Nutzen Sie Odoo‑Dekoratoren (@api.depends, @api.onchange) für berechnete Felder und UI‑Reaktionen. Achten Sie besonders auf Konvertierungs‑ und Stage‑Logik, da falsche Änderungen Prozesse unterbrechen können.
Odoo Studio
Odoo Studio ermöglicht feldbasierte Anpassungen ohne Code und ist ideal für schnelle Erweiterungen wie zusätzliche Auswahlfelder. Bei komplexen Abläufen, Automatisierungen oder langfristiger Wartung sind maßgeschneiderte Module jedoch die robustere Lösung.
Empfohlene Vorgehensweisen
- Passen Sie Stages an Ihren Verkaufsprozess an; bei Bedarf trennen Sie die Stage‑Sequenzen für Leads und Opportunities.
- Übernehmen Sie UTM‑Parameter in source_id und campaign_id auf Website‑Formularen, um saubere Marketing‑Attribution zu gewährleisten.
- Nutzen Sie team_id für Round‑Robin‑ und territoriespezifische Zuweisungen; Regeln definieren Sie in crm.team.
- Für API‑Integrationen bieten sich XML‑RPC oder JSON‑RPC an. Das crm.lead‑Modell ist vollständig zugänglich — mappen Sie externe CRM‑IDs auf ein eigenes Feld (z. B. ref), um Synchronisationen stabil zu halten.
- Vergeben Sie für eigene Felder das Präfix x_ oder ein eigenes Modulpräfix, damit künftige Odoo‑Versionen keine Namenskonflikte erzeugen.
Häufige Fehler
- Leads doppelt anlegen statt nach email_from zu prüfen. Vor jeder Erstellung sollten Sie auf Duplikate prüfen oder email_normalized nutzen, um redundante Datensätze zu vermeiden.
- Typ (Lead vs. Opportunity) und stage_id durcheinanderbringen. Der Typ bestimmt die Art des Datensatzes, die Stage seine Position im Funnel — beides ist relevant für Reporting und Automatisierungen.
- user_id oder team_id nicht setzen. Nicht zugewiesene Leads bleiben leicht liegen; automatisierte Zuweisungen oder klare Regeln verhindern, dass Anfragen verloren gehen.
- Konvertierungslogik überschreiben ohne super() aufzurufen. Die action_convert‑Methode führt zentrale Schritte aus — erweitern, aber nicht blind ersetzen.
- Pflichtfelder ohne Default hinzufügen. Werden neue erforderliche Felder ohne Standardwerte eingeführt, schlagen bestehende Leads bei Modul‑Upgrades fehl.
Fazit
Das crm.lead‑Modell ist das Herzstück des Odoo CRM. Es verwaltet Leads und Opportunities, treibt die Pipeline‑Ansichten und bildet die Basis für Reporting, Automatisierung und Integrationen. Wer dieses Modell beherrscht, kann Odoo effizienter einsetzen.
Ob Sie Vertriebsprozesse abbilden oder technische Erweiterungen bauen: Ein fundiertes Verständnis von crm.lead spart Zeit und vermeidet typische Fallstricke bei Implementierungen.
Brauchen Sie Unterstützung bei Ihrer Odoo‑Einführung?
Dasolo unterstützt Unternehmen bei Implementierung, Anpassung und Optimierung von Odoo. Unser Schwerpunkt liegt auf API‑Integrationen und kundenspezifischer Entwicklung; wir bringen fundierte Erfahrung mit Odoo‑Datenmodellen wie crm.lead mit.
Wenn Sie Hilfe bei Ihrer Odoo‑Einführung, maßgeschneiderten CRM‑Modulen oder Systemintegrationen benötigen, sprechen Sie uns an. Demo vereinbaren um Ihr Projekt zu besprechen.