Overslaan naar inhoud

Odoo Tracking Veld Uitleg: Volg Wijzigingen Met Vertrouwen

Leer hoe de tracking-attribuut werkt in Odoo, wanneer je het moet gebruiken en hoe je het kunt configureren in je datamodel
6 maart 2026 in
Odoo Tracking Veld Uitleg: Volg Wijzigingen Met Vertrouwen
Dasolo
| Nog geen reacties

Als je je ooit hebt afgevraagd wie een veld op een Odoo-record heeft gewijzigd en wanneer, is de trackingfunctie jouw antwoord.


Odoo stelt je in staat om wijzigingen in specifieke velden te volgen en elke wijziging rechtstreeks in de chatter van het record vast te leggen. Dit geeft teams volledige zichtbaarheid in hoe bedrijfsdata in de loop van de tijd evolueert, zonder dat er een apart auditsysteem hoeft te worden gebouwd.

Of je nu Odoo Studio-velden configureert of een aangepaste Python-module schrijft, begrijpen hoe veldtracking werkt is een essentieel onderdeel van het werken met het Odoo-datamodel. Deze gids leidt je door alles wat je moet weten.

Wat is het Tracking Field in Odoo


In Odoo is tracking geen veldtype op zich. Het is een attribuut dat je kunt inschakelen op bestaande velden, zoals Char, Many2one, Selection, Integer of Date-velden. Wanneer tracking actief is op een veld, legt Odoo elke waarde wijziging vast in de chatter, waarbij de oude waarde, de nieuwe waarde, de datum en de verantwoordelijke gebruiker worden weergegeven.

Dit verschijnt in de interface als een lognotitie in de berichtenthread van het record. Bijvoorbeeld, op een CRM-lead zou je kunnen zien: "Fase gewijzigd van Nieuw naar Gekwalificeerd", automatisch geregistreerd op het moment dat een verkoper de deal vooruit duwt.

De tracking-attribuut is beschikbaar op de meeste standaard Odoo-veldtypes en kan worden ingeschakeld via Odoo Studio of rechtstreeks in Python-code als onderdeel van een aangepast Odoo-ontwikkelingsproject.

Welke gegevens worden opgeslagen

Elke geregistreerde wijziging wordt opgeslagen als een mail.message record dat aan het document is gekoppeld. Het bericht bevat:

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

Deze geschiedenis is altijd zichtbaar voor iedereen met leesrechten op het record. Het vereist geen aanvullende configuratie naast het inschakelen van tracking op het veld.

Hoe het veld werkt


Voor tracking om te werken, moet het model de mail.thread mixin gebruiken. Deze mixin biedt de messaging- en logginginfrastructuur die de chatter aandrijft. De meeste standaard Odoo-bedrijfsmodellen, waaronder sale.order, crm.lead, account.move, en stock.picking, erven al van mail.thread.

Wanneer een gebruiker een record opslaat dat gewijzigde getrackte velden bevat, vergelijkt Odoo de oude en nieuwe waarden en schrijft automatisch een logbericht naar de chatter. Er is geen aanvullende actie van de gebruiker vereist.

Technisch Gedrag in de Odoo ORM

Vanuit technisch oogpunt onderschept de Odoo ORM schrijfbewerkingen op modelniveau. Wanneer een write() aanroep een gevolgd veld wijzigt, legt het framework de vorige waarde vast, past de wijziging toe en maakt vervolgens een mail.message record aan dat het verschil beschrijft.

In Python wordt het volgen ingeschakeld door tracking=True toe te voegen aan een velddefinitie in uw Odoo Python-veldconfiguratie:

state = fields.Selection(
    [('draft', 'Concept'), ('confirmed', 'Bevestigd')],
    tracking=True
)

U kunt ook een prioriteitsnummer van 1 tot 10 gebruiken om de weergavevolgorde te regelen wanneer meerdere gevolgde velden veranderen in dezelfde opslaanbewerking. Lagere nummers verschijnen eerst in het logbericht:

partner_id = fields.Many2one('res.partner', tracking=1)
priority = fields.Selection(tracking=10)

Interactie met Andere Records

Gevolgde wijzigingen worden rechtstreeks opgeslagen op het record waar het veld zich bevindt. Ze worden niet automatisch doorgegeven aan gerelateerde records. Als u tracking over gerelateerde modellen wilt, moet u het afzonderlijk inschakelen op elk model waar het van belang is.

Dit is opzettelijk. Het Odoo-datamodel houdt het auditspoor dicht bij het object dat wordt gewijzigd, wat het gemakkelijk maakt om de geschiedenis te bekijken zonder door meerdere gerelateerde records te navigeren.

Zakelijke gebruikscases


Hier zijn vijf praktische voorbeelden waarin het inschakelen van veldtracking echte waarde toevoegt aan de dagelijkse operaties.


1. CRM en Beheer van de Verkooppipeline

Verkoopteams moeten weten wanneer een lead van de ene fase naar de andere is gegaan en wie die wijziging heeft aangebracht. Het inschakelen van tracking op het stage_id veld in de CRM-module geeft managers een complete tijdlijn van elke statusovergang.

Dit helpt bij het identificeren waar deals vastlopen, ondersteunt pipeline reviews en maakt het gemakkelijker om verkoopmedewerkers te coachen op basis van daadwerkelijke gegevens in plaats van geheugen.


2. Aankoop- en factuurgoedkeuringsworkflows

In boekhouding en inkoop vereist audit compliance vaak dat men weet wie een document heeft goedgekeurd en wanneer. Het bijhouden van het state veld op inkooporders of leveranciersfacturen maakt deze geschiedenis onmiddellijk beschikbaar in de chatter zonder dat een aparte auditmodule nodig is.

Dit is vooral nuttig in bedrijven die onderhevig zijn aan financiële controles of interne auditvereisten.


3. Voorraad- en voorraadbeheer

Wanneer producthoeveelheden of opslaglocaties onverwacht veranderen, helpt het bijhouden van velden op voorraadbewegingen of producten magazijnbeheerders om de bron van discrepanties snel te identificeren.

In plaats van door logboeken te graven of collega's te vragen, is het antwoord daar in de chatter van het relevante record.


4. Klantgegevenskwaliteitsbeheer

Als uw team regelmatig klantrecords bijwerkt, kunt u wijzigingen in kritieke velden zoals email, phone of pricelist_id op het partnermodel bijhouden. Dit behoudt een geschiedenis van wijzigingen in contactgegevens direct in de CRM, wat nuttig is voor klantenserviceteams en kwaliteitsreviews van gegevens.


5. HR en werknemersrecords

Het bijhouden van wijzigingen in velden zoals functie, afdeling of salarisschaal op werknemersrecords zorgt voor een transparante geschiedenis van wijzigingen. Dit is belangrijk voor HR-compliance in veel sectoren en maakt interne audits aanzienlijk gemakkelijker uit te voeren.


Een trackingveld maken of aanpassen


Er zijn twee hoofdmethoden om tracking op een veld in Odoo in te schakelen: het gebruik van Odoo Studio voor een no-code benadering, of het schrijven van Python-code voor een volledig technische implementatie.

Odoo Studio gebruiken

Odoo Studio maakt het eenvoudig om tracking in te schakelen voor bestaande velden zonder enige code te schrijven. Open Studio op het relevante model, klik op het veld dat je wilt volgen, en zoek naar de Wijzigingen volgen schakelaar in het instellingenpaneel van het veld.

Eenmaal ingeschakeld, zullen alle toekomstige wijzigingen aan dat veld verschijnen in de chatter. Dit is de aanbevolen aanpak voor beheerders en zakelijke gebruikers die tracking willen toevoegen als onderdeel van hun Odoo-aanpassingsworkflow, zonder een ontwikkelaar erbij te betrekken.

Dezelfde Studio-interface kan worden gebruikt wanneer je velden in Odoo vanaf nul maakt. Bij het toevoegen van een nieuw aangepast veld via Studio, kun je tracking direct inschakelen tijdens het aanmaken van het veld.

Python gebruiken in een Aangepaste Module

Voor ontwikkelaars die modules bouwen of uitbreiden, wordt de tracking-attribuut rechtstreeks aan de velddefinitie in de modelklasse toegevoegd. Dit is standaardpraktijk in elke Odoo-ontwikkelaarsgids of Odoo-technische tutorial.

Het model moet ook erven van mail.thread om tracking effect te hebben. Hier is een minimaal voorbeeld:

from odoo import models, fields

class ProjectTask(models.Model):
    _name = 'project.task'
    _inherit = ['project.task', 'mail.thread']

    x_client_priority = fields.Selection(
        [('low', 'Laag'), ('medium', 'Gemiddeld'), ('high', 'Hoog')],
        string='Klantprioriteit',
        tracking=True
    )

Dit is een typisch patroon wanneer je een bestaand model moet uitbreiden als onderdeel van een Odoo-ontwikkelingsproject. Het veld gedraagt zich als elke andere Odoo-databaseveld invoer, maar nu wordt elke wijziging in de waarde automatisch geregistreerd.

Belangrijke Opmerking over Aangepaste Modellen

Bij het creëren van volledig nieuwe aangepaste modellen, zorg ervoor dat je _inherit = ['mail.thread', 'mail.activity.mixin'] opneemt in je modeldefinitie. Zonder dit zal het tracking-attribuut stilletjes worden genegeerd en zullen er geen wijzigingen in de chatter worden geregistreerd.

Dit is een punt dat veel ontwikkelaars in de val laat lopen bij het volgen van een Odoo-veld tutorial voor de eerste keer. De mixin is niet optioneel als je wilt dat tracking werkt.

Beste praktijken


Tracking fields is easy to set up but easy to misuse. These guidelines will help you get the most out of the feature.

Track alleen velden die ertoe doen

Het inschakelen van tracking op elk veld creëert ruis in de communicatie en maakt het moeilijker om relevante geschiedenis te vinden. Focus op velden die echt nuttig zijn voor audit: staten, fasen, verantwoordelijke gebruikers, belangrijke data en financiële waarden.

Gebruik prioriteitsnummers voor duidelijkheid

Wanneer meerdere velden op hetzelfde model worden getrackt, gebruik dan prioriteitsnummers van 1 tot 10 om te bepalen hoe wijzigingen in het logbericht worden gegroepeerd. Dit verbetert de leesbaarheid in de communicatie, vooral bij modellen met veel getrackte velden.

Combineer met toegangsrechten

Tracking is het meest nuttig wanneer het wordt gecombineerd met juiste recordregels en toegangscontroles. Er is weinig waarde in het onderhouden van een audittrail als iedereen in het systeem het vrij kan wijzigen. Beveilig je datamodel voordat je op de communicatie vertrouwt als auditmechanisme.

Documenteer je getrackte velden

Houd een duidelijk overzicht bij van welke velden tracking is ingeschakeld, vooral in gedeelde of multi-developer projecten. Dit voorkomt verwarring tijdens codebeoordelingen en voorkomt per ongeluk dubbele tracking na module-upgrades.

Test voordat je live gaat

Verifieer altijd het trackinggedrag in een stagingomgeving voordat je naar productie gaat. Sommige veldtypes, met name berekende of gerelateerde velden, kunnen zich anders gedragen dan standaard opgeslagen velden wanneer tracking betrokken is.

Veelvoorkomende valkuilen


Dit zijn de fouten die het vaakst voorkomen bij het werken met veldtracking in Odoo.

Vergeten om te erven van mail.thread

Dit is het meest voorkomende probleem. Als een aangepast model niet erft van mail.thread, wordt de tracking-attribuut stilletjes genegeerd. Er wordt geen foutmelding weergegeven en er verschijnen geen logberichten in de chatter. Controleer altijd de erfketen van het model wanneer tracking niet lijkt te werken.

Tracking van niet-opgeslagen berekende velden

Berekende velden kunnen worden getrackt, maar alleen als ze zijn opgeslagen met store=True. Een niet-opgeslagen berekend veld heeft geen persistente waarde in de Odoo-databasevelden, dus er is niets om te vergelijken voor en na een wijziging. Als je probeert een niet-opgeslagen berekend veld te tracken, zal tracking stilletjes geen effect hebben.

Tracking inschakelen op te veel velden

Het is verleidelijk om tracking overal in te schakelen om de transparantie te maximaliseren. In de praktijk verstoort dit de chatter en maakt het echt moeilijker om betekenisvolle wijzigingen te vinden. Wees selectief en concentreer je op velden met echte audit- of operationele waarde.

Verwachten dat tracking werkt bij bulk- of directe SQL-bewerkingen

Tracking wordt geactiveerd via de Odoo ORM wanneer records worden gewijzigd met de standaard write() methode. Directe SQL-updates, bulkimporten die de ORM omzeilen, of bepaalde laag-niveau API-aanroepen zullen tracking niet activeren. Als je de XML-RPC API of batchbewerkingen gebruikt, controleer dan of de schrijfbewerkingen via de ORM-laag gaan.

Conflicten tussen Studio en Python-definities

Als een veld oorspronkelijk is gemaakt en geconfigureerd in Odoo Studio met ingeschakelde tracking, wees dan voorzichtig bij het ook wijzigen van hetzelfde veld in een Python-module. Conflictueuze definities tussen Studio en code kunnen leiden tot onverwacht gedrag tijdens module-upgrades of database-updates.

FAQ


Kan ik een veld op elk model in Odoo tracken?

Alleen modellen die erven van mail.thread ondersteunen veldtracking. De meeste standaard bedrijfsmodellen in Odoo bevatten deze mixin al, maar aangepaste modellen moeten dit expliciet verklaren in hun class-definitie.

Zal het inschakelen van tracking de prestaties beïnvloeden?

De impact is minimaal voor de meeste gebruikssituaties. Elke geregistreerde wijziging creëert een mail.message record, wat een kleine overhead toevoegt aan de schrijfoperatie. Voor zeer hoge-volume transactionele modellen, wees voorzichtig met het aantal velden dat je bijhoudt om te voorkomen dat er een buitensporig aantal logrecords wordt aangemaakt.

Kan ik tracking op een veld uitschakelen zonder bestaande geschiedenis te verliezen?

Ja. Het uitschakelen van tracking stopt het registreren van nieuwe wijzigingen, maar alle bestaande logberichten in de chatter blijven toegankelijk. De geschiedenis die al is vastgelegd, wordt bewaard en zal niet worden verwijderd.

Werkt tracking op Many2many-velden?

Tracking van Many2many-velden wordt ondersteund in Odoo. De chatter toont welke records aan de relatie zijn toegevoegd of verwijderd, in plaats van een voor- en na-waarde weer te geven. Het werkt, maar houd er rekening mee dat het weergaveformaat verschilt van eenvoudige waardevelden.

Kan ik tracking gebruiken zonder Odoo Studio?

Absoluut. De tracking parameter is een standaard Python-veldattribuut in het Odoo-framework. Je kunt het inschakelen in elke aangepaste module zonder Studio te gebruiken. Studio biedt gewoon een visuele, codevrije interface voor dezelfde onderliggende functionaliteit. Dit is een standaardonderdeel van elke Odoo-veld tutorial of Odoo-ontwikkelaarsgids.

Conclusie


Het trackingattribuut is een van die Odoo-functies die stilletjes veel waarde toevoegt zonder veel opzet te vereisen. Door het in te schakelen op de juiste velden, geef je je team een betrouwbare audit trail, verminder je geschillen over wie wat heeft veranderd, en bouw je een basis voor betere gegevensbeheer binnen je organisatie.

Of je het nu configureert via Odoo Studio voor een snelle codevrije opzet, of het implementeert via een aangepaste Python-module als onderdeel van een breder Odoo-ontwikkelings- of Odoo-aanpassingsproject, het resultaat is hetzelfde: volledige zichtbaarheid in hoe je bedrijfsgegevens in de loop van de tijd veranderen.

De sleutel is weten waar je het moet toepassen. Focus op de velden die beslissingen, goedkeuringen en verantwoordelijkheid in je workflows aansteken, en je zult het meeste waarde halen met zeer weinig inspanning.

Bij Dasolo helpen we bedrijven Odoo te implementeren, aan te passen en te optimaliseren om aan hun specifieke bedrijfsprocessen te voldoen. Of je nu hulp nodig hebt bij het ontwerpen van je datamodel, het inschakelen van veldtracking in je workflows, of het bouwen van aangepaste modules vanaf nul, ons team staat klaar om je te ondersteunen.

Neem vandaag nog contact met ons op om uw Odoo-implementatie te bespreken. Neem contact met ons op en laten we samen de beste aanpak voor uw project uitzoeken.

Odoo Tracking Veld Uitleg: Volg Wijzigingen Met Vertrouwen
Dasolo 6 maart 2026
Deel deze post
Aanmelden om een reactie achter te laten