Introductie
In Odoo bepaalt een model hoe gegevens worden georganiseerd en bewaard in de database. Alles wat je aan bedrijfsinformatie beheert — van offertes tot facturen en van leads tot klanten — krijgt zijn plek in een model.
Kennis van Odoo-modellen is onmisbaar voor zowel ontwikkelaars als functionele consultants. Modellen vormen de ruggengraat van de data-architectuur: ze beschrijven velden, relaties en de bijbehorende bedrijfslogica.
Dit artikel draait rond het crm.lead-model, het hart van de salesflow in Odoo CRM. Of je nu modules op maat bouwt, externe systemen koppelt of verkoopprocessen configureert: vroeg of laat werk je met dit model.
Wat is het crm.lead-model
Het crm.lead-model staat voor leads en opportunities in Odoo. Het is de centrale opslagplaats voor alles wat met de salespipeline te maken heeft — van ongerichte binnenkomende leads tot gekwalificeerde deals.
De CRM-module gebruikt dit model intensief, en andere modules zoals marketing of website koppelen er vaak aan. Een ingevuld contactformulier op de site, het aanmaken van een opportunity door een verkoper of het omzetten van een lead naar klant: allemaal acties die crm.lead gebruiken.
Functionaliteit wordt meestal toegevoegd via Odoo-inheritance: de basisstructuur komt van de core CRM-module en extra modules breiden die uit met nieuwe velden of gedrag. Zo blijven uitbreidingen modulair en onderhoudsvriendelijk.
Belangrijke velden in het model
Hieronder vind je de belangrijkste velden in het crm.lead-model. Wie deze kent, kan leads en opportunities efficiënter beheren en rapporteren.
1. name
Type: Char. De hoofdtitel van de lead of opportunity—het veld dat in lijsten en kanban het eerst opvalt. Bijvoorbeeld "Aanvraag via website" of "Grote deal — Van den Broeck BV".
2. contact_name
Type: Char. Naam van de contactpersoon wanneer er nog geen res.partner gekoppeld is. Bij conversie wordt deze meestal overgezet naar het partnerrecord.
3. email_from
Type: Char. Primaire e-mail van de lead. Wordt gebruikt voor communicatie en deduplicatie voordat een lead wordt omgezet.
4. phone
Type: Char. Vast telefoonnummer. Verschijnt op het leadformulier en wordt gebruikt bij belactiviteiten en opvolging.
5. mobile
Type: Char. Mobiel nummer voor snelle opvolging of SMS-contact waar nodig.
6. partner_id
Type: Many2one (res.partner). Verwijst naar de klant of contact zodra de lead gekwalificeerd of geconverteerd is. Voor conversie staat dit meestal leeg en wordt het daarna ingevuld.
7. user_id
Type: Many2one (res.users). De verantwoordelijke verkoper. Belangrijk voor toewijzing, rapportage en planning van activiteiten. Stuurt persoonlijke overzichten zoals "Mijn opportunities".
8. team_id
Type: Many2one (crm.team). Het verkoopteam waartoe de lead behoort. Handig voor ronde-robin toewijzing en teamrapportages.
9. stage_id
Type: Many2one (crm.stage). De huidige fase in de pijplijn — bijvoorbeeld Nieuw, Gekwalificeerd, Offerte, Onderhandeling, Gewonnen of Verloren. Veranderingen triggeren vaak automatiseringen en beïnvloeden rapporten.
10. type
Type: Selection. Geeft aan of het om een Lead of een Opportunity gaat. Leads zijn vroeg in het proces; opportunities zijn gekwalificeerd en hebben meestal een verwachte waarde.
11. expected_revenue
Type: Float. De verwachte opbrengst bij winst van de deal. Wordt gebruikt in pipeline- en forecastberekeningen, vaak afgeleid uit kans en bedrag.
12. probability
Type: Float. Win-kans in procenten (0–100). Wordt gebruikt voor gewogen waarde in de pijplijn; kan handmatig of op basis van fase worden ingesteld.
13. company_id
Type: Many2one (res.company). Geeft bij multi-company setups aan bij welke vennootschap de lead hoort en heeft invloed op zichtbaarheid en valuta.
14. description
Type: Text. Ruimte voor notities, samenvattingen van gesprekken en context die verkopers nodig hebben bij opvolging.
15. create_date
Type: Datetime. Automatisch vastgelegde datum/tijd van aanmaak. Handig voor analyse van leeftijd van leads en tijd tot conversie.
16. write_date
Type: Datetime. Laatste wijzigingsdatum — automatisch bijgehouden om bewerkingstijdstippen te kunnen analyseren.
17. date_open
Type: Datetime. Wanneer een lead voor het eerst toegewezen werd aan een gebruiker. Belangrijk om responstijden en time-to-first-contact te meten.
18. date_closed
Type: Datetime. Datum waarop een lead gesloten werd (gewonnen of verloren). Wordt gebruikt om conversieratio’s en salescyclustijden te berekenen.
19. date_deadline
Type: Date. Verwachte sluitingsdatum van de deal voor forecast en planning; wordt door verkopers gebruikt om streefdata te volgen.
20. active
Type: Boolean. Soft-delete vlag: false archiveert het record zodat het standaard verborgen wordt. Handig om verloren of samengevoegde leads te bewaren zonder te verwijderen.
21. street, street2, city, zip
Type: Char. Adresvelden die relevant zijn als de lead al een fysiek adres heeft; bij conversie meestal naar res.partner gekopieerd.
22. country_id
Type: Many2one (res.country). Land van de lead — nuttig voor regionale rapportage en juiste adresformattering.
23. state_id
Type: Many2one (res.country.state). Provincie of staat; vaak gefilterd afhankelijk van het geselecteerde land.
24. source_id
Type: Many2one (utm.source). De bron van de lead: website, referral, advertentie, enz. Essentieel voor marketingattributie.
25. campaign_id
Type: Many2one (utm.campaign). Verwijst naar een marketingcampagne om ROI en performance van campagnes te koppelen aan leads.
26. activity_ids
Type: One2many (mail.activity). Geplande opvolgactiviteiten — calls, taken en meetings die aan de lead gekoppeld zijn en de opvolging sturen.
27. color
Type: Integer. Kleurindex gebruikt in kanban of lijsten om leads visueel te onderscheiden (prioriteit, bron, enz.).
28. message_ids
Type: One2many (mail.message). De chatter: interne notities, e-mails en communicatiegeschiedenis die context biedt tijdens het verkooptraject.
Hoe dit model in bedrijfsprocessen gebruikt wordt
1. Leadopvang via de website
Wanneer een bezoeker een contactformulier op je site invult, creëert Odoo automatisch een crm.lead. Velden zoals e-mail, contactnaam en omschrijving worden uit het formulier gehaald zodat je verkoopteam snel kan opvolgen.
2. Kwalificatie en conversie van leads
Verkopers schuiven leads door de fasen. Bij kwalificatie verandert men vaak het type naar Opportunity en stelt men een verwachte omzet in. Bij winst wordt de lead omgezet: er wordt een res.partner aangemaakt of gekoppeld en eventueel een verkooporder gegenereerd.
3. Pipeline- en managementrapportage
Leidinggevenden gebruiken crm.lead-gegevens voor prognoses en performance-analyses. Verwachte omzet, kans en fase vormen samen de gewogen pijplijn; filters op gebruiker en team geven inzicht in individuele en teamprestaties.
4. Marketingattributie
Bron- en campagnevelden verbinden leads met marketinginspanningen. UTM-gegevens uit advertenties of e-mailcampagnes vullen deze velden, zodat marketeers de effectiviteit van campagnes kunnen meten.
5. Activiteiten en opvolgingsbeheer
Verkopers plannen opvolgactiviteiten op leads. De activiteit_ids en deadlines sturen herinneringen en bepalen welke lead als 'volgende activiteit' verschijnt in overzichten.
Hoe ontwikkelaars dit model uitbreiden
Ontwikkelaars breiden crm.lead uit met verschillende patronen, waarbij modelinheriting de kern is.
Modelinheriting
Gebruik _inherit = 'crm.lead' om het model uit te breiden. Zo kun je nieuwe velden toevoegen, methodes overschrijven of extra validaties invoegen, terwijl je aanpassingen netjes in een apart module blijven.
Velden toevoegen
Definieer extra velden in je inherited model en kies het juiste type: Char, Many2one, Boolean, Integer, Text of Selection. Veel voorkomende uitbreidingen zijn extra leadbronnen, interesses of sectoren. Denk aan company-dependent velden in multi-company om onverwachte data-issues te vermijden.
Python-uitbreidingen
Overschrijf methodes zoals create, write of action_convert om bedrijfslogica toe te voegen — maar roep altijd super() aan. Gebruik Odoo-decorators (@api.depends, @api.onchange) voor computed velden en interactieve UI-gedragingen.
Odoo Studio
Odoo Studio is handig voor snelle aanpassingen zonder code, zoals extra dropdowns of tekstvelden. Voor complexe logica, automatisering of als je upgrades wilt blijven ondersteunen, verdient een custom module de voorkeur.
Aanbevolen werkwijzen
- Stem je fasen af op het verkoopproces en gebruik eventueel aparte fasevolgordes voor leads versus opportunities.
- Zorg dat UTM-parameters van websiteformulieren automatisch source_id en campaign_id vullen voor correcte marketingattributie.
- Gebruik team_id voor ronde-robin of territoriumtoewijzing en leg regels vast in crm.team voor consistente distributie.
- Voor API-koppelingen werk je via XML-RPC of JSON-RPC; crm.lead is volledig beschikbaar. Koppel externe CRM-IDs aan een eigen referentieveld (bv. ref) om synchronisatie betrouwbaar te maken.
- Voor custom velden gebruik je best een module-prefix of het x_-voorvoegsel om conflicten met toekomstige Odoo-updates te vermijden.
Veelgemaakte fouten
- Leads dupliceren in plaats van te zoeken op email_from. Voer altijd een deduplicatiecontrole uit (bijv. email_normalized) voordat je nieuwe records aanmaakt.
- Type en stage_id door elkaar halen: type bepaalt of het een Lead of Opportunity is; stage bepaalt de plaats in de funnel. Beide beïnvloeden weergaven en rapporten.
- Vergeten user_id of team_id in te stellen leidt tot 'verloren' leads. Zorg voor automatische toewijzing of duidelijke handmatige procedures.
- Conversielogica overschrijven zonder super() aan te roepen. action_convert voert cruciale stappen uit—breid uit, vervang niet blind.
- Verplicht gemaakte custom velden zonder standaardwaarden toevoegen: bij upgrades kunnen bestaande records foutmeldingen geven. Voorzie defaults of een migratiescript.
Slotwoord
Het crm.lead-model staat centraal in Odoo CRM: het beheert leads en opportunities en vormt de basis voor je verkooppijplijn. Wie de velden en uitbreidingsmogelijkheden kent, kan Odoo beter configureren, aanpassen en koppelen.
Of je nu processen vertaalt als functioneel consultant of modules bouwt als ontwikkelaar: een goed begrip van crm.lead voorkomt fouten en bespaart implementatietijd.
Hulp nodig bij uw Odoo-implementatie?
Dasolo begeleidt bedrijven bij implementatie, maatwerk en optimalisatie van Odoo. We hebben ruime ervaring met API-koppelingen en de onderliggende datastructuur, waaronder modellen zoals crm.lead.
Hebt u hulp nodig bij uw Odoo-implementatie, maatwerk voor CRM of integraties? We helpen u graag verder. Plan een demo om uw project te bespreken.