Overslaan naar inhoud

Uitleg Tracking Field in Odoo: Volg Wijzigingen van Records Eenvoudig

Ontdek wat het tracking-attribuut in Odoo precies doet, wanneer je het best gebruikt en hoe je het correct instelt in je datamodel. Deze korte handleiding helpt je beslissen welke velden je moet bijhouden, waarom versiegeschiedenis en audittrail belangrijk zijn voor je bedrijfsprocessen, en geeft stap-voor-stap aanwijzingen om tracking te activeren via je modellen en velden zodat wijzigingen automatisch gelogd worden.
6 maart 2026 in
Uitleg Tracking Field in Odoo: Volg Wijzigingen van Records Eenvoudig
Dasolo
| Nog geen reacties

Als je je ooit hebt afgevraagd wie een veld op een Odoo-record wijzigde en wanneer, dan is de trackingfunctie precies daarvoor bedoeld.


Odoo schrijft wijzigingen van geselecteerde velden automatisch weg in de chatter van het betreffende record. Zo bouw je een ingebouwd historiekspoor zonder aparte audittool: elke wijziging verschijnt als bericht en is direct zichtbaar voor teamleden met leesrechten.

Of je nu velden toevoegt via Odoo Studio of zelf een modulе programmeert in Python, inzicht in hoe tracking werkt is essentieel voor klanten, beheerders en ontwikkelaars. Deze gids legt de concepten, technische details en praktijkvoorbeelden uit die je nodig hebt.

Wat is het trackingveld in Odoo


In Odoo is ‘tracking’ geen apart veldtype maar een attribuut dat je aan bestaande velden hangt (zoals Char, Many2one, Selection, Integer of Date). Activeer je tracking op een veld, dan registreert Odoo de oude en nieuwe waarde, wie de wijziging deed en wanneer, als bericht in de chatter.

In de gebruikersinterface zie je die informatie terug als een logbericht in het berichtenoverzicht. Bijvoorbeeld bij een lead kan automatisch een regel verschijnen als: "Status gewijzigd van Nieuwe naar Gekwalificeerd" zodra de verkoper de pipeline bijwerkt.

Het trackingattribuut is beschikbaar voor de meeste standaard veldtypes en kan aan- of uitgezet worden via Odoo Studio of door het veld in Python van tracking te voorzien binnen een custom module.

Welke gegevens worden opgeslagen

Elke getraceerde wijziging wordt vastgelegd als een mail.message gekoppeld aan het document. Dat bericht bevat onder meer de volgende onderdelen:

  • Het veldlabel dat gewijzigd is
  • De vorige waarde (voor de wijziging)
  • De nieuwe waarde (na de wijziging)
  • De tijdstempel van de wijziging
  • De gebruiker die de wijziging uitvoerde

Deze historie is zichtbaar voor iedereen met leesrechten op het record. Er is geen extra module nodig: tracking werkt zodra je het attribuut voor een veld activeert.

Hoe het veld precies werkt


Belangrijk technisch detail: het model moet het mail.thread-mixin gebruiken. Dat mixin levert de messaging- en logging-infrastructuur voor de chatter. Veel standaardmodellen (bijv. sale.order, crm.lead, account.move, stock.picking) erven al van mail.thread.

Wanneer een gebruiker een record opslaat waarin getraceerde velden gewijzigd werden, vergelijkt Odoo automatisch oud en nieuw en schrijft het systeem een logbericht naar de chatter; de gebruiker hoeft daar niets extra voor te doen.

Technisch gedrag binnen de Odoo ORM

Op technisch vlak onderschept de Odoo ORM schrijfoperaties op modelniveau. Tijdens een write()-bewerking pakt het framework de vorige waarde, voert de wijziging door en creëert het vervolgens een mail.message dat het verschil beschrijft.

In Python activeer je tracking door aan de velddefinitie tracking=True mee te geven binnen je modelclass.

Voorbeeld van een eenvoudige velddefinitie met tracking:

Je kunt ook een prioriteitswaarde (1–10) gebruiken om de volgorde te bepalen wanneer meerdere getraceerde velden tegelijk veranderen: lagere nummers verschijnen eerst in het logbericht.

Voorbeeld met prioriteit: zet relationele velden met hoge relevantie op lage nummers en minder belangrijke velden op hogere nummers om de leesvolgorde te sturen.

Interactie met gerelateerde records

Wijzigingsberichten worden op het exacte record opgeslagen waar het veld leeft. Ze worden niet automatisch doorgegeven aan gerelateerde modellen; wil je geschiedenis op meerdere modellen, dan moet je tracking op elk relevant model inschakelen.

Dat is bewust zo ontworpen: de audittrail blijft dicht bij het object dat gemodificeerd is, waardoor je geschiedenis kan bekijken zonder door verschillende gerelateerde records te moeten navigeren.

Praktische bedrijfsvoorbeelden


Vijf concrete situaties waarin tracking dagelijks waarde toevoegt


1) CRM en pijplijnbeheer

Salesmanagers willen weten wanneer een lead van fase wisselt en wie dat deed. Tracking op het stage_id-veld levert een tijdlijn van statusovergangen die helpt bij pipeline-analyses.

Dat maakt vastlopende deals inzichtelijk, ondersteunt pipeline reviews en levert objectieve input om verkopers te coachen.


2) Inkoop- en factuurgoedkeuringen

In accounting en procurement is het vaak vereist om te kunnen aantonen wie een document goedkeurde en wanneer. Tracking op het state-veld van bestellingen en facturen legt die informatie vast in de chatter zonder aparte auditmodule.

Dat is vooral belangrijk voor bedrijven met strikte financiële controles of interne audits.


3) Magazijn- en voorraadbeheer

Als hoeveelheden of opslaglocaties onverwacht veranderen, helpt tracking op stock moves of productvelden magazijnverantwoordelijken snel de oorzaak te vinden.

In plaats van uitgebreide logbestanden te doorzoeken of collega’s te moeten ondervragen, zie je direct in het record waar de wijziging vandaan komt.


4) Klantengegevens en datakwaliteit

Wanneer contactgegevens vaak aangepast worden, kun je kritieke velden zoals email, phone of pricelist_id op de partner tracken. Dat levert een bruikbare historie voor supportteams en data-audits.


5) HR en personeelsdossiers

Tracking van functie, afdeling of salarisklasse op personeelsrecords geeft een transparante wijzigingsgeschiedenis — nuttig voor HR-compliance en interne controles.


Trackingveld aanmaken of aanpassen


Twee manieren om tracking te activeren: geen-code via Odoo Studio of technisch via Python in een custom module.

Odoo Studio gebruiken

Met Odoo Studio schakel je tracking zonder code in. Open Studio op het model, klik het veld aan en zet de schakelaar ‘Track Changes’ aan in de veldinstellingen.

Zodra geactiveerd verschijnen alle toekomstige wijzigingen in de chatter. Dit is de aanbevolen route voor administrators en business users die snel logging willen toevoegen zonder een ontwikkelaar te betrekken.

Ook bij het aanmaken van nieuwe custom velden in Studio kun je tracking meteen tijdens de creatie inschakelen.

Tracking via Python in een custom module

Voor ontwikkelaars voeg je het trackingattribuut toe in de velddefinitie van de modelclass. Dit is de standaardwijze in technische Odoo-implementaties.

Zorg er bovendien voor dat je model mail.thread erft; zonder dat mixin doet tracking niets. Hieronder een compact voorbeeld van hoe dat eruitziet in code.

Voorbeeldpatroon: inherit van het bestaande model en voeg een selectieveld toe met tracking=True om wijzigingen automatisch te loggen.

Dit patroon gebruik je vaak als je een bestaand model uitbreidt; het veld gedraagt zich als elk ander veld, maar elke waardeaanpassing wordt nu als bericht vastgelegd.

Belangrijke opmerking bij volledig nieuwe modellen

Maak je een volledig nieuw model, vergeet dan niet _inherit = ['mail.thread', 'mail.activity.mixin'] op te nemen in de definitie. Zonder deze mixins wordt het trackingattribuut genegeerd en verschijnen er geen berichten in de chatter.

Veel ontwikkelaars struikelen hierover bij hun eerste Odoo-project: het mixin is verplicht als je tracking wilt gebruiken.

Aanbevolen werkwijzen


Tracking is eenvoudig in te schakelen, maar kan ook verkeerd ingezet worden. Volg deze richtlijnen om maximaal rendement te halen.

Track alleen wat relevant is

Als je tracking op álle velden zet, vult de chatter zich met ruis en raakt nuttige historie onvindbaar. Concentreer je op velden met echte audit- of operationele waarde: status, verantwoordelijke, belangrijke data en financiële velden.

Gebruik prioriteiten voor overzicht

Stel prioriteitsniveaus in (1–10) om te bepalen hoe wijzigingen gegroepeerd en weergegeven worden bij meerdere gelijktijdige veranderingen — dat verbetert de leesbaarheid aanzienlijk.

Combineer met toegangsrechten

Tracking werkt het best in combinatie met goed ingestelde recordregels en rechten. Een audittrail heeft weinig zin wanneer iedereen onbeperkt kan bewerken; beveilig de data voordat je op de chatter vertrouwt als controlemechanisme.

Documenteer welke velden getrackt worden

Houd een overzicht bij van getraceerde velden binnen je project of organisatie. Dat voorkomt verwarring bij upgrades, code reviews of wanneer meerdere ontwikkelaars aan hetzelfde model werken.

Test in staging voordat je live gaat

Controleer het gedrag op een stagingomgeving: bepaalde veldtypes (zeker berekende of gerelateerde velden) kunnen anders reageren bij tracking dan standaard opgeslagen velden.

Veelvoorkomende valkuilen


De meest voorkomende fouten bij field tracking in Odoo

Vergeten te erven van mail.thread

Dit is de nummer één oorzaak van niet-werkende tracking. Als het model niet van mail.thread erft, negeert Odoo het trackingattribuut zonder foutmelding. Controleer altijd de inheritance-keten als tracking ontbreekt.

Tracking op niet-opgeslagen computed fields

Computed fields kunnen alleen getrackt worden als ze opgeslagen zijn met store=True. Niet-opgeslagen computed fields hebben geen persistente waarde om te vergelijken, dus tracking heeft dan geen effect.

Te veel velden tracken

Hoewel het verleidelijk is om overal tracking aan te zetten, leidt dat tot overvolle chattelogs en verminderde bruikbaarheid. Wees selectief: track alleen wat operationeel of juridisch relevant is.

Verwachten dat tracking werkt bij directe SQL of bulkoperaties

Tracking wordt getriggerd via de ORM (standaard write()). Directe SQL-updates, imports of API-aanroepen die de ORM omzeilen, activeren geen tracking. Controleer bij batchverwerking dat je via de ORM schrijft.

Conflicten tussen Studio en Python-definities

Als een veld in Studio werd aangemaakt met tracking en je past het later in Python aan, kunnen conflicten ontstaan bij upgrades. Wees voorzichtig bij gemengde definities en documenteer welke partij de bron van waarheid is.

Veelgestelde vragen (FAQ)


Kan ik tracking op elk model gebruiken?

Alleen modellen die van mail.thread erven ondersteunen tracking. Veel standaardmodellen doen dat al, maar bij custom modellen moet je het expliciet toevoegen.

Heeft tracking invloed op performance?

Voor de meeste gevallen is de impact beperkt: elk logbericht is één extra mail.message-record en voegt een kleine overhead toe. Bij zeer hoge volumes moet je wel zorgvuldig kiezen welke velden je trackt om explosieve groei in logrecords te vermijden.

Kan ik tracking uitschakelen zonder bestaande historie te verliezen?

Ja. Uitschakelen voorkomt dat nieuwe wijzigingen worden vastgelegd, maar de reeds bestaande berichten blijven bewaard in de chatter.

Werkt tracking op Many2many-velden?

Ja. Many2many-tracking toont welke records in de relatie werden toegevoegd of verwijderd in plaats van een simpel voor/na-waardepaar. De weergave wijkt dus af van simpele velden, maar wordt ondersteund.

Kan ik tracking gebruiken zonder Odoo Studio?

Zeker. Het tracking-attribuut is gewoon een standaard Python-veldparameter binnen Odoo. Je kunt het in eender welke custom module inschakelen. Studio is alleen een visuele, no-code manier om hetzelfde te bereiken.

Samenvatting


Het trackingattribuut is een van die Odoo-functies die veel praktische waarde toevoegt met weinig inspanning. Door het verstandig toe te passen creëer je een betrouwbaar historiekspoor, voorkom je discussies over wie wat wijzigde en versterk je de datagovernance.

Of je nu snel via Odoo Studio werkt of een ontwikkelaar inschakelt om tracking in een module op te nemen, het eindresultaat is hetzelfde: volledige zichtbaarheid in hoe je bedrijfsgegevens door de tijd heen veranderen.

De kunst is kiezen waar je tracking inzet. Richt je op velden die beslissingen, goedkeuringen en aansprakelijkheid sturen; daar haal je het meeste rendement met minimale inspanning.

Bij Dasolo begeleiden we organisaties bij het inrichten, aanpassen en optimaliseren van Odoo. Of het nu gaat om datamodelontwerp, het activeren van tracking doorheen workflows of het bouwen van maatwerkmodules, wij ondersteunen je implementatie.

Neem vandaag contact met ons op om je Odoo-implementatie te bespreken. Contacteer ons en laten we samen bekijken welke aanpak het beste past bij jouw project.

Uitleg Tracking Field in Odoo: Volg Wijzigingen van Records Eenvoudig
Dasolo 6 maart 2026
Deel deze post
Aanmelden om een reactie achter te laten