Customer Domain
The Customer domain focuses on the people and organizations that consume an organization's products and services. It provides a structured approach for modeling customer segments, personas, journeys, and relationships, enabling a customer-centric view that drives strategic decisions and operational excellence.
Schema: customer.schema.json
Specification: JSON Schema Draft-07
Overview
What is the Customer Domain?
The Customer domain extends the Stakeholder domain by providing deeper insights into customer behaviors, needs, and interactions. The domain covers:
- Customer Segments — Distinct groups with similar characteristics and needs
- Customer Personas — Fictional representatives of typical customers
- Customer Journeys — End-to-end experiences across touchpoints
- Customer Relationships — Ongoing connections and their management
This domain enables organizations to design more effective products, services, and experiences based on deep customer understanding.
Purpose and Value
The Customer domain enables architects and planners to:
- Align capabilities with needs — Connect organizational capabilities to customer expectations
- Map customer journeys — Link journeys to internal value streams for better experience design
- Support targeting decisions — Enable data-driven customer segment strategies
- Drive product development — Base product and service development on customer insights
- Measure customer success — Track satisfaction, loyalty, and lifetime value
The Customer domain maps directly to customer data concepts:
- Customer Segment → Customer dimension /cohort
- Customer Persona → Customer archetype
- Customer Journey → Event stream /customer timeline
- Customer Relationship → Account /relationship entity
- Lifetime Value → CLV calculation
Core Components
The Customer domain uses interconnected elements:
- Customer Segment: Distinct group with common characteristics
- Customer Persona: Representative fictional character
- Customer Journey: End-to-end experience mapping
- Customer Relationship: Ongoing connection management
Domain Attributes
Customer Segment Attributes
| Attribute | Type | Description | Required |
|---|---|---|---|
customerID | String | Unique identifier for the customer element | ✓ |
title | String | Name or title of the customer segment | ✓ |
description | String | Detailed explanation of segment characteristics | ✓ |
customerSegmentType | Enum | Classification of segment | |
orgUnitTitle | String | Organization unit responsible | ✓ |
orgUnitID | String | ID of the organization unit named in orgUnitTitle | |
orgUnitRoles | Array[String] | Roles that manage this segment | |
customerNeeds | Array[String] | Primary needs, wants, and pain points | |
customerValue | String | Value proposition offered to this segment | |
acquisitionChannels | Array[String] | Channels used to acquire customers | |
retentionStrategies | Array[String] | Approaches to maintaining customers | |
customerLifecycleStage | Enum | Current position in lifecycle | |
customerLifetimeValue | Object | Expected or measured customer value: value, currency, timespan, calculationMethod | |
performanceIndicators | Array[Object] | Metrics for segment success: metricName, metricDescription, currentValue, targetValue, unit | |
dependencies | Array[Object] | Dependencies on other domains: dependencyType, domainType, entityID, description | |
relatedCustomerSegments | Array[Object] | Related segments: segmentID, relationshipType, relationshipStrength (1–5) | |
improvementOpportunities | Array[String] | Areas for experience enhancement | |
strategicAlignment | String | Alignment with strategic goals | |
customerEmpathyScore | String | Strategic empathy: customers' perception of the organization's empathy | |
customerJourneyEmotionalMapping | Boolean | Strategic empathy: whether customer journeys are mapped to understand emotional touchpoints | |
clientTrustIndex | String | Strategic empathy: level of trust clients have in the organization | |
feedbackLoopForEmotionalInsights | Boolean | Strategic empathy: whether mechanisms capture and act on emotional feedback from customers | |
crossDomainRelationships | Array[Object] | Directional relationships from this record to entities in other domains (see Cross-Domain Relationships) |
Personas, journeys and relationships are separate elements, not nested in the segment record. Each one names its segment in customerSegmentID.
Enumeration Values
Customer Segment Type (customerSegmentType)
| Value | Description | Example |
|---|---|---|
demographic | Based on demographic attributes | Age, income, location |
behavioral | Based on behavior patterns | Usage frequency, purchase history |
valueBased | Based on customer value | High-value, growth potential |
needsBased | Based on customer needs | Problem-solution fit |
lifecycle | Based on stage in the customer lifecycle | New customers, long-tenure customers |
industry | Based on industry (B2B) | Financial services, healthcare |
geographic | Based on where customers are | Region, urban or rural |
psychographic | Based on attitudes and values | Lifestyle, preferences |
technographic | Based on technology use | Digital-first, legacy-system users |
other | Any other basis, described in description | Organization size (enterprise, SMB) |
Customer Lifecycle Stage (customerLifecycleStage)
| Value | Description | Example |
|---|---|---|
awareness | Becoming aware of the organization or offer | Campaign reach |
consideration | Potential customer evaluating options | Lead, opportunity |
purchase | Being acquired; first purchase or contract | Contract signature |
onboarding | Initial setup and first value delivery | First value realized |
usage | Regular use of products or services | Active accounts |
growth | Expanding relationship | Upsell, cross-sell |
retention | Maintaining the relationship, including customers at risk of leaving | Renewal, loyalty, declining engagement |
advocacy | Active promotion | Referrals, testimonials |
winBack | Re-engaging lost or lapsed customers | Former customer campaigns |
other | Any other stage | — |
Segment Relationship Type (relationshipType in relatedCustomerSegments)
| Value | Description | Example |
|---|---|---|
parent | The related segment contains this one | Affluent customers → Affluent Professionals |
child | The related segment is a sub-segment of this one | Affluent Professionals → Young Professionals |
complementary | Segments that are served together or reinforce each other | Business owners and their households |
competitor | Segments competing for the same offer or resources | Price-sensitive vs premium buyers |
influencer | The related segment influences this one's decisions | Financial advisers |
progression | Customers typically move from one segment to the other | Mass affluent → High net worth |
other | Any other relationship | — |
Customer Persona (customerPersona)
| Attribute | Type | Description | Required |
|---|---|---|---|
personaID | String | Unique identifier for the persona | ✓ |
title | String | Name of the persona | ✓ |
description | String | Detailed profile | ✓ |
orgUnitTitle | String | The organization unit responsible | |
orgUnitID | String | ID of the organization unit named in orgUnitTitle | |
customerSegmentID | String | ID of the segment this persona belongs to | ✓ |
demographicAttributes | Object | age, gender, location, incomeLevel, occupation, education, householdStatus (all strings) | |
psychographicAttributes | Object | values, attitudes, interests (arrays of strings) and lifestyle (string) | |
behaviors | Array[String] | Typical behaviors and preferences | |
goals | Array[String] | What the persona wants to achieve | |
painPoints | Array[String] | Challenges and frustrations | |
influences | Array[String] | Decision-making influences | |
purchaseDecisionProcess | String | How decisions are made | |
technographics | String | Technology usage patterns | |
quotations | Array[String] | Representative quotes | |
narrativeScenario | String | Day-in-the-life scenario |
Customer Journey (customerJourney)
| Attribute | Type | Description | Required |
|---|---|---|---|
journeyID | String | Unique identifier for the customer journey | ✓ |
journeyTitle | String | Name of the journey | ✓ |
description | String | Overview of the journey | ✓ |
customerSegmentID | String | ID of the segment this journey is for | ✓ |
personaIDs | Array[String] | IDs of the applicable personas | |
orgUnitTitle | String | The organization unit responsible | |
orgUnitID | String | ID of the organization unit named in orgUnitTitle | |
journeyStages | Array[Object] | Sequential stages (see Journey Stage below) |
Journey Stage (journeyStage)
| Attribute | Type | Description | Required |
|---|---|---|---|
stageID | String | Unique identifier for the journey stage, so other records can reference it | |
stageName | String | Name of the stage | ✓ |
description | String | What happens in this stage | |
touchpoints | Array[String] | Interaction points with the organization | |
customerActions | Array[String] | What customers do at this stage | |
customerThoughts | Array[String] | What customers think or feel | |
customerPainPoints | Array[String] | Challenges at this stage | |
customerOpportunities | Array[String] | Experience improvements | |
relevantCapabilities | Array[String] | Supporting capabilities | |
relevantCapabilityIDs | Array[String] | IDs of the capabilities supporting this stage | |
relevantValueStreams | Array[String] | Value streams involved | |
relevantValueStreamIDs | Array[String] | IDs of the value streams involved | |
performanceMetrics | Array[String] | How success is measured at this stage |
Customer Relationship (customerRelationship)
| Attribute | Type | Description | Required |
|---|---|---|---|
relationshipID | String | Unique identifier for the customer relationship | ✓ |
title | String | Name of the relationship | ✓ |
description | String | Detailed description of the relationship | ✓ |
customerSegmentID | String | ID of the segment this relationship applies to | ✓ |
orgUnitTitle | String | The organization unit responsible | |
orgUnitID | String | ID of the organization unit named in orgUnitTitle | |
relationshipType | String | Nature of the relationship | |
relationshipStrength | Integer | Quality of the relationship, 1 (lowest) to 5 (highest) | |
engagementLevel | String | Degree of active engagement | |
loyaltyStatus | String | Current loyalty or retention status | |
relationshipHistory | Array[String] | Timeline of key relationship events | |
relationshipValue | Object | Current and potential value: currentValue, potentialValue (strings) | |
relationshipRisks | Array[String] | Threats to continuity | |
growthOpportunities | Array[String] | Expansion opportunities | |
engagementModel | String | How the relationship is managed |
relationshipType, engagementLevel and loyaltyStatus are free text. Typical relationship types are transactional, contractual, advisory, partnership, self-service and dedicated (key account management); typical engagement levels run from inactive through low, moderate and active to highly engaged.
Domain Relationships
The Customer domain integrates with other metamodel domains:
| Target Domain | Relationship Type | Description |
|---|---|---|
| Stakeholder | Extension | Customers are external stakeholders |
| Products | Consumption | Customers consume products |
| Services | Usage | Customers use services |
| Capabilities | Alignment | Capabilities aligned to customer needs |
| Value Stream | Experience | Customer journeys map to value streams |
| Strategy | Focus | Strategy focuses on customer segments |
| Performance | Measurement | Customer metrics track success |
| Channel | Interaction | Customers interact through channels |
| Organization | Service | Org units serve customers |
| Information | Data | Customer data informs decisions |
Examples
Example 1: Retail Banking Customer Segment
Customer segment
{
"customerID": "CUST-SEG-001",
"title": "Affluent Professionals",
"description": "High-income professionals with complex financial needs and limited time for financial management",
"customerSegmentType": "valueBased",
"orgUnitTitle": "Premium Banking Division",
"orgUnitID": "OU-001",
"orgUnitRoles": [
"Segment Manager",
"Relationship Banking Lead",
"Product Specialist"
],
"customerNeeds": [
"Time-efficient financial management",
"Wealth preservation and growth",
"Personalized advisory services",
"Seamless digital and in-person experiences"
],
"customerValue": "Comprehensive financial management with personalized service and premium digital capabilities",
"acquisitionChannels": [
"Professional referrals",
"Executive events",
"Digital targeting"
],
"retentionStrategies": [
"Dedicated advisor",
"Quarterly portfolio reviews",
"Premium service level"
],
"customerLifecycleStage": "growth",
"customerLifetimeValue": {
"value": 25000,
"currency": "USD",
"timespan": "Annual",
"calculationMethod": "Risk-adjusted revenue minus servicing costs"
},
"performanceIndicators": [
{
"metricName": "Relationship Depth",
"metricDescription": "Average number of products per customer",
"currentValue": "3.7",
"targetValue": "4.5",
"unit": "Products"
},
{
"metricName": "Net Promoter Score",
"metricDescription": "Likelihood to recommend to others",
"currentValue": "42",
"targetValue": "60",
"unit": "NPS Points"
}
],
"dependencies": [
{
"dependencyType": "critical",
"domainType": "capability",
"entityID": "CAP-001",
"description": "Wealth Advisory Services capability"
},
{
"dependencyType": "important",
"domainType": "service",
"entityID": "SVC-003",
"description": "Portfolio Management Service"
}
],
"relatedCustomerSegments": [
{
"segmentID": "CUST-SEG-003",
"relationshipType": "progression",
"relationshipStrength": 4
}
],
"improvementOpportunities": [
"Enhanced mobile investment capabilities",
"Proactive life event planning",
"Integrated business and personal banking"
],
"strategicAlignment": "Core focus segment for 2025 growth strategy, driving 40% of total profits",
"customerEmpathyScore": "7.8/10 in the 2025 premium client survey",
"customerJourneyEmotionalMapping": true,
"clientTrustIndex": "High: 82% of clients rate trust 4 or 5 out of 5",
"feedbackLoopForEmotionalInsights": true
}
Persona
{
"personaID": "PERSONA-001",
"title": "Michael Chen",
"description": "42-year-old technology executive balancing career advancement with family needs",
"orgUnitTitle": "Premium Banking Division",
"orgUnitID": "OU-001",
"customerSegmentID": "CUST-SEG-001",
"demographicAttributes": {
"age": "42",
"gender": "Male",
"location": "Urban",
"incomeLevel": "$250,000+",
"occupation": "Technology executive"
},
"psychographicAttributes": {
"values": [
"Achievement",
"Security",
"Family"
],
"interests": [
"Technology",
"Travel",
"Investing"
]
},
"behaviors": [
"Researches thoroughly before decisions",
"Prefers digital interactions",
"Values efficiency"
],
"goals": [
"Build wealth for early retirement",
"Fund children's education",
"Minimize tax burden"
],
"painPoints": [
"Limited time for financial management",
"Complex tax situation",
"Information overload"
],
"influences": [
"Peer recommendations",
"Expert financial advice",
"Industry trends"
],
"purchaseDecisionProcess": "Gathers options online, consults advisor, then makes decision",
"technographics": "Early adopter, mobile-first, uses financial management apps",
"quotations": [
"I need financial solutions that work around my schedule, not the other way around"
]
}
Journey
{
"journeyID": "JOURNEY-001",
"journeyTitle": "Wealth Management Onboarding",
"description": "Process of transitioning high-value clients into comprehensive wealth management",
"customerSegmentID": "CUST-SEG-001",
"personaIDs": [
"PERSONA-001"
],
"orgUnitTitle": "Premium Banking Division",
"orgUnitID": "OU-001",
"journeyStages": [
{
"stageID": "JOURNEY-001-S1",
"stageName": "Discovery",
"touchpoints": [
"Website",
"Advisor referral"
],
"customerActions": [
"Research wealth management options"
],
"customerThoughts": [
"Will they understand my complex situation?"
],
"customerPainPoints": [
"Generic information",
"Unclear differentiation"
],
"customerOpportunities": [
"Personalized content",
"Early advisor contact"
]
},
{
"stageID": "JOURNEY-001-S2",
"stageName": "Needs Assessment",
"touchpoints": [
"Initial consultation"
],
"customerActions": [
"Share financial goals and current portfolio"
],
"customerThoughts": [
"Concern about whether needs will be understood"
],
"customerPainPoints": [
"Repetitive information gathering",
"Complex paperwork"
],
"customerOpportunities": [
"Digital pre-collection",
"Streamlined forms"
],
"relevantCapabilities": [
"Financial Needs Analysis",
"Client Profiling"
],
"relevantCapabilityIDs": [
"CAP-011",
"CAP-012"
]
},
{
"stageID": "JOURNEY-001-S3",
"stageName": "Solution Design",
"touchpoints": [
"Advisor presentation",
"Digital tools"
],
"customerActions": [
"Review proposed strategies"
],
"relevantCapabilities": [
"Portfolio Management"
],
"relevantCapabilityIDs": [
"CAP-013"
],
"relevantValueStreams": [
"Wealth Advisory Value Stream"
],
"relevantValueStreamIDs": [
"VS-020"
],
"performanceMetrics": [
"Proposal acceptance rate: target 85%"
]
},
{
"stageID": "JOURNEY-001-S4",
"stageName": "Implementation",
"touchpoints": [
"Account setup",
"Portfolio transfer"
],
"customerActions": [
"Complete onboarding steps"
],
"relevantValueStreams": [
"Wealth Advisory Value Stream"
],
"relevantValueStreamIDs": [
"VS-020"
],
"performanceMetrics": [
"Time to complete: target 5 days"
]
}
]
}
Relationship
{
"relationshipID": "REL-001",
"title": "Premium Advisory Relationship",
"description": "Comprehensive wealth management with dedicated advisor",
"customerSegmentID": "CUST-SEG-001",
"orgUnitTitle": "Premium Banking Division",
"orgUnitID": "OU-001",
"relationshipType": "Advisory",
"relationshipStrength": 4,
"engagementLevel": "Active",
"loyaltyStatus": "Loyal",
"relationshipValue": {
"currentValue": "$15,000 annual revenue",
"potentialValue": "$25,000 annual revenue"
},
"relationshipRisks": [
"Advisor turnover",
"Competitor offers",
"Market dissatisfaction"
],
"growthOpportunities": [
"Trust services",
"Business banking integration",
"Family office services"
],
"engagementModel": "Quarterly in-person reviews, monthly check-ins, dedicated support line"
}
Example 2: B2B Customer Segment
{
"customerID": "CUST-SEG-B2B-001",
"title": "Enterprise Data Platform Customers",
"description": "Large enterprises seeking comprehensive data platform solutions for analytics and AI",
"customerSegmentType": "industry",
"orgUnitTitle": "Enterprise Sales Division",
"orgUnitID": "OU-005",
"customerNeeds": [
"Scalable data infrastructure",
"Enterprise-grade security and compliance",
"Integration with existing systems",
"Self-service analytics capabilities"
],
"customerValue": "End-to-end data platform with enterprise support and proven scalability",
"customerLifecycleStage": "growth",
"customerLifetimeValue": {
"value": 2500000,
"currency": "USD",
"timespan": "5 years"
},
"performanceIndicators": [
{
"metricName": "Annual Contract Value",
"currentValue": "$500K",
"targetValue": "$750K"
},
{
"metricName": "Net Revenue Retention",
"currentValue": "115%",
"targetValue": "120%"
}
],
"strategicAlignment": "Primary revenue driver for enterprise business unit"
}
Implementation Guidelines
Customer-Centric Design Best Practices
- Start with research — Base segments and personas on real customer data
- Validate regularly — Update personas and journeys based on feedback
- Map to capabilities — Connect customer needs to organizational capabilities
- Measure outcomes — Track customer metrics alongside business metrics
- Close the loop — Use customer feedback to improve experiences
Customer Journey Mapping
OpenMetadata Integration
When integrating with OpenMetadata, map Customer entities as follows:
| Triodian Element | OpenMetadata Entity | Notes |
|---|---|---|
| Customer Segment | Glossary Term | Customer vocabulary |
| Customer Data | Table | Customer tables |
| Journey Events | Topic | Event streams |
| Metrics | Dashboard | Customer dashboards |
| Persona | Tag | Customer tagging |
# Example: Create customer segment as glossary term
def create_customer_glossary(customer_segment):
"""
Map Triodian Customer Segment to OpenMetadata Glossary
"""
glossary_term = {
"name": customer_segment["customerID"].lower(),
"displayName": customer_segment["title"],
"description": customer_segment["description"],
"glossary": "customer_segments",
"synonyms": [],
"relatedTerms": [
seg["segmentID"].lower()
for seg in customer_segment.get("relatedCustomerSegments", [])
],
"tags": [
{"tagFQN": f"LifecycleStage.{customer_segment.get('customerLifecycleStage', 'unknown')}"},
{"tagFQN": f"SegmentType.{customer_segment.get('customerSegmentType', 'unknown')}"}
],
"owner": {"name": customer_segment.get("orgUnitTitle", ""), "type": "team"},
"references": [
{
"name": "Lifetime Value",
"endpoint": str(customer_segment.get("customerLifetimeValue", {}).get("value", ""))
}
]
}
return glossary_term
Schema Reference
- Repository:
Triodian/Triodian_Metamodel - Schema: customer.schema.json
- Specification: JSON Schema Draft-07
- License: Apache License 2.0
Previous: People Domain | Next: Market Domain