Canonical Data Model in Orchestrations¶
The Canonical Data Model (CDM) is central to how DIBOP transforms data between systems. This page explains how the CDM integrates with orchestrations and why it matters for your workflows.
The N-to-N Problem¶
Without a canonical model, connecting N systems requires N x (N-1) direct mappings. For 5 systems, that is 20 mappings. For 10 systems, it is 90. Every new system multiplies the effort.
The CDM solves this by introducing a single shared schema. Each system maps to and from the CDM -- not to every other system. For N systems, you need only 2N mappings (one inbound, one outbound per system).
Without CDM: With CDM:
A ←→ B A ←→ CDM ←→ B
A ←→ C C ←→ CDM ←→ D
A ←→ D E ←→ CDM
B ←→ C
B ←→ D (5 systems = 10 mappings)
C ←→ D
(4 systems = 12 mappings)
How the CDM Works in Orchestrations¶
When you build an orchestration that moves data between two systems, the CDM acts as an intermediate format:
- Inbound Mapping: The source connector maps its native fields to CDM fields
- Orchestration Logic: Your steps work with CDM fields (consistent, predictable)
- Outbound Mapping: The target connector maps CDM fields to its native format
Example: Vehicle Sync¶
OEM Portal CDM (Vehicle) DMS
----------- ------------- ---
vehicle_id ──> vin ──> stock_vin
fahrzeug_marke ──> make ──> veh_make
modell_name ──> model ──> veh_model
baujahr ──> year ──> model_year
kilometerstand ──> mileage_km ──> odometer
Each connector handles its own mapping to/from the CDM. Your orchestration works with the CDM fields -- vin, make, model, year -- regardless of which systems are involved.
CDM Domains¶
The CDM is organised into domains, each representing a business entity. DIBOP currently supports 22 domains:
| Domain | Description |
|---|---|
| Vehicle | Core vehicle data (VIN, make, model, year, specs) |
| Customer | Customer records (name, contact, address) |
| Order | Sales and purchase orders |
| Workshop Job | Service and repair jobs |
| Part | Parts catalogue and inventory |
| Lead | Sales leads and opportunities |
| Vehicle Inspection | Inspection records and results |
| Appointment | Scheduled appointments |
| Shipment | Shipping and delivery records |
| Location | Physical locations (dealerships, warehouses) |
| Parking Event | Vehicle parking and storage events |
| Vehicle Location | Real-time vehicle positions |
| Deal | Completed sales transactions |
| Employee | Staff records |
| Finance Agreement | Financing and leasing contracts |
| Payroll Run | Payroll processing records |
| EOL Vehicle | End-of-life vehicle records |
| Auction Transaction | Vehicle auction records |
| Title Record | Vehicle title and registration |
| Recycler Part | Recycled/salvage parts |
| Depollution Record | Environmental compliance records |
| Compliance Check | Regulatory compliance verifications |
See Available Domains for detailed field lists.
Using CDM Fields in Steps¶
In API Call Steps¶
When an API Call step communicates with a connected system, the connector automatically handles the mapping. You work with CDM field names in your orchestration, and the connector translates them to the system's native format.
In Transform Steps¶
Transform steps can reference CDM fields to reshape data:
{
"vehicle_summary": "${fetch_vehicle.vin} - ${fetch_vehicle.make} ${fetch_vehicle.model} (${fetch_vehicle.year})",
"contact_info": "${fetch_customer.email}",
"is_recent": "${fetch_vehicle.year} >= 2023"
}
In Conditional Steps¶
Use CDM fields in conditions:
Condition: ${fetch_vehicle.mileage_km} > 100000
Then: → flag_high_mileage
Else: → standard_processing
PII Classification¶
Every field in the CDM is classified for PII (Personally Identifiable Information) sensitivity:
| Classification | Meaning | Examples |
|---|---|---|
| None | Not personally identifiable | Vehicle make, model, year |
| PII | Personally identifiable | Customer name, email, phone |
| Sensitive PII | Highly sensitive | Government ID, financial account numbers |
PII classification is visible in the Canonical Explorer and affects how data is logged and retained.
PII in Logs
DIBOP automatically redacts PII fields in execution logs and API call logs. You will see masked values (e.g., j***@example.com) instead of the actual data.
Mapping Coverage¶
Not every connector maps every CDM field. The mapping coverage tells you how completely a connector supports a given domain:
- Full coverage: The connector maps all required and optional fields
- Partial coverage: The connector maps required fields and some optional fields
- Minimal coverage: The connector maps only the required fields
You can view mapping coverage in the Canonical Explorer and on each connector's detail page.
AI-Assisted Mapping¶
When configuring a new connector, DIBOP's AI can assist with field mapping:
- Paste a sample JSON response from the external system
- DIBOP's AI analyses the fields and suggests CDM mappings
- Review and approve or adjust the suggestions
- Mappings are classified as Verified (manually confirmed) or Assumed (AI-suggested, not yet confirmed)
See Field Mapping for the full workflow.
Best Practices¶
- Always work with CDM fields in orchestrations -- do not reference native system fields directly, as this ties your orchestration to a specific connector
- Check mapping coverage before building an orchestration -- if a connector does not map the CDM fields you need, the orchestration will have gaps
- Verify AI-suggested mappings -- AI suggestions are usually correct but should be confirmed for critical fields
- Use the Canonical Explorer to understand which fields are available before you start building
Next Steps¶
- What is the CDM? -- deeper dive into the model
- Available Domains -- full field lists for all 22 domains
- Field Mapping -- how to configure and verify mappings