Canonical Data Model
Een canonical data model (CDM) is een gedeeld, applicatieonafhankelijk formaat voor bedrijfsdata, zoals producten, klanten en orders. Elk systeem vertaalt zijn data naar en van dit ene model in plaats van naar elk ander systeem.
Wat is Canonical Data Model?
Een canonical data model (CDM) is een gemeenschappelijk dataformaat tussen systemen. Het legt de gedeelde bedrijfsobjecten vast, zoals Product, Klant en Order, met hun velden, datatypes, eenheden, toegestane waarden en relaties, los van welke applicatie dan ook. Elk systeem mapt zijn eigen data één keer naar het canonieke model en koppelingen wisselen data uit in dat formaat. Het voordeel zit in het aantal vertalingen. Als zes systemen rechtstreeks met elkaar praten, heb je tot 30 mappings in één richting nodig, want N systemen vragen N(N-1) mappings. Met een canoniek model heeft elk systeem één mapping naar het model en één terug, dus 2N, oftewel 12 voor die zes systemen. Een zevende systeem toevoegen kost dan twee nieuwe mappings in plaats van twaalf. Het patroon komt uit de wereld van applicatie-integratie en wordt vaak uitgevoerd in middleware of een integratieplatform. Een canoniek model in deze betekenis is hetzelfde: de afgesproken referentieversie van de data die elke koppeling spreekt. Het is een afspraak over data-uitwisseling, geen database, en het vervangt het eigen datamodel van elk systeem niet.
Waarom Canonical Data Model belangrijk is voor e-commerce
In e-commerce betaalt een canoniek model zich het eerst terug bij productdata. Het ERP noemt een veld item_desc_2, de webshop noemt het description, een marketplace wil bullet_point1 tot en met bullet_point5 en het leveranciersbestand gebruikt eigen kolomnamen en eenheden. Zonder gedeeld model betekent elk nieuw kanaal of elke nieuwe leverancier weer een eigen mapping, en een kleine wijziging in één systeem breekt meerdere koppelingen. Een eenvoudig product-CDM legt per attribuut één naam vast, één eenheid per maat (bijvoorbeeld gewicht in grammen en afmetingen in millimeters), vaste waardelijsten voor zaken als kleur en materiaal, en duidelijke regels voor codes zoals SKU en GTIN. Leveranciersdata wordt bij import naar dat model gemapt en elk kanaal krijgt een eigen mapping eruit via attribuut-mapping. In veel stacks wordt een PIM in de praktijk de canonieke bron voor productcontent: WISEPIM houdt bijvoorbeeld één set attributen met hun regels bij en mapt die bij export naar de velden van elk kanaal. Het patroon heeft ook echte kosten. Afspraken maken over één model kost tijd, het model heeft versiebeheer en een eigenaar nodig, en een model dat elke uitzondering wil afdekken wordt te complex om te gebruiken. Houd het gericht op de objecten en velden die echt tussen systemen bewegen.
Voorbeelden van Canonical Data Model
- 1Productdata tussen ERP, PIM en webshop: een retailer definieert een canoniek Product met sku, gtin, merk, titel, gewicht_g en afmetingen in millimeters. ERP, PIM en webshop mappen er elk één keer naartoe, dus een marketplace toevoegen vraagt maar één nieuwe mapping.
- 2Leveranciers onboarden: een distributeur krijgt bestanden van 200 leveranciers in verschillende opmaak en mapt elk bestand naar zijn canonieke productmodel, zodat de rest van de stack maar één formaat ziet.
- 3Klantdata in CRM, marketing en ERP: een B2B-bedrijf gebruikt één canoniek Klant-object, zodat CRM, marketingplatform en ERP het eens zijn over klantnummer, juridische naam en adressen.
- 4Orderstroom in een integratieplatform: orders uit de webshop, van Bol.com en van Amazon komen in verschillende formaten binnen en worden vertaald naar één canonieke Order voordat ze het magazijnsysteem bereiken.
- 5Eenheden en waardelijsten: een meubelmerk slaat alle afmetingen op in centimeters en alle kleuren uit één waardelijst, en zet pas bij export om naar inches of kanaalspecifieke kleurnamen.
Hoe WISEPIM helpt
- Eén attribuutmodel voor productcontent: leg attributen één keer vast, met type, eenheid en validatieregels op het veld, en elk product wordt op dezelfde manier gecontroleerd.
- Mappen naar binnen en naar buiten: map kolommen van leveranciers en ERP bij import naar WISEPIM, en map WISEPIM-attributen bij export met een opgeslagen sjabloon naar de velden van elk kanaal.
- Minder losse koppelingen: gekoppelde webshops en kanaalfeeds lezen allemaal uit hetzelfde productrecord, dus een nieuw kanaal vraagt één mapping, geen nieuwe kopie van de data.
Veelgemaakte fouten met Canonical Data Model
- Je probeert elk veld van elk systeem te modelleren, waardoor het model te groot wordt om af te spreken of te onderhouden.
- Je gebruikt de interne veldnamen van één systeem als canonieke namen, zodat het model toch aan dat systeem vastzit.
- Je wijzigt het model zonder versiebeheer en breekt daarmee koppelingen die de oude structuur verwachten.
- Je laat eenheden en waardelijsten open, zodat 10 cm, 100 mm en 0,1 m in hetzelfde veld staan.
- Je behandelt het model als puur IT-project, zonder de product- en salesteams die weten wat de data betekent.
Tips voor Canonical Data Model
- Begin klein. Modelleer de paar objecten en velden die het vaakst tussen systemen bewegen, meestal producten, klanten en orders.
- Leg eenheden en waardelijsten vast in het model, zoals gewicht in grammen en één kleurenlijst, en zet alleen aan de randen om.
- Geef het model een eigenaar en een versienummer en documenteer de mapping van elk systeem.
- Kopieer niet de structuur van één systeem in het model. Gebruik bedrijfsnamen die je begrijpt zonder het ERP of de webshop te kennen.
- Herzie het model als je een systeem of kanaal toevoegt, in plaats van losse uitzonderingen in afzonderlijke koppelingen te bouwen.
Trends rondom Canonical Data Model
- AI-gestuurde mapping: Het gebruik van machine learning om brongegevens automatisch naar het canonieke formaat te vertalen.
- Headless commerce: Het CDM dat de uniforme datalaag biedt voor diverse frontend ervaringen.
- Duurzaamheidsdata: Het integreren van Digital Product Passport (DPP) vereisten direct in de CDM-structuur.
Tools voor Canonical Data Model
- WISEPIM
- MuleSoft
- Apache Camel
- Microsoft Dataverse
- Salsify