Knowledge Domain Database - Customer Relationship Management
How does the domain work before writing a line of code? Choose a document from the left tree: each page explains part of the model.
Business Rules - CRM
This document lists the core business rules of the CRM domain, each with a unique BR-NNN code. Every rule is technology-independent and describes an invariant constraint on the behaviour of the domain.
---
BR-001 - An opportunity always belongs to a customer or prospect
Code: BR-001
Name: Every Opportunity is linked to an identified Customer (or prospect)
Description: An Opportunity cannot exist without a referenced Customer or prospect. The customer record is the anchor of all sales activities and sales opportunities.
Rationale: Ensure sales traceability and correct attribution of opportunities.
Priority: HIGH
Actors: Sales Rep, Account Manager
Traceability: glossary.md Opportunity, Customer; state-machines/opportunity-lifecycle.md.
---
BR-002 - Stage advancement on qualification criteria
Code: BR-002
Name: An Opportunity advances stage only if it meets the next-stage criteria
Description: Moving an Opportunity from one stage to the next (prospect → qualified → proposal → negotiation → closed) requires meeting explicit qualification criteria (e.g. budget, authority, need, timing). No unjustified stage skipping.
Rationale: Ensure a clean pipeline and reliable sales forecasts.
Priority: HIGH
Actors: Sales Rep, Account Manager
Traceability: BR; events/domain-events.md OpportunityQualified; glossary.md Sales pipeline.
---
BR-003 - MQL and SQL distinct in lead qualification
Code: BR-003
Name: Lead conversion distinguishes marketing (MQL) and sales (SQL) qualification
Description: A marketing-qualified lead (MQL) becomes a sales-qualified lead (SQL) only after sales acceptance. Conversion to Customer/Opportunity happens downstream of SQL qualification.
Rationale: Align marketing and sales and avoid working unready leads.
Priority: MEDIUM
Actors: Marketing Team, Sales Rep
Traceability: glossary.md MQL, SQL; events/domain-events.md LeadConverted.
---
BR-004 - Every lost opportunity records a reason
Code: BR-004
Name: A closed-lost Opportunity always records a loss reason
Description: When an Opportunity is closed as lost, a structured reason must be recorded (price, competition, timing, no-decision). Without a reason the opportunity cannot be closed-lost.
Rationale: Enable loss analysis and improvement of the sales process.
Priority: MEDIUM
Actors: Sales Rep, Account Manager
Traceability: events/domain-events.md OpportunityLost; glossary.md.
---
BR-005 - Sales activities tracked on the opportunity
Code: BR-005
Name: Every SalesActivity is linked to an Opportunity or a Customer
Description: Calls, emails, demos and follow-ups must be recorded as a SalesActivity linked to the relevant Opportunity or Customer, with date and outcome.
Rationale: Build a reliable relational history and enable scheduled follow-ups.
Priority: MEDIUM
Actors: Sales Rep, Account Manager
Traceability: events/domain-events.md FollowUpScheduled; glossary.md.
---
BR-006 - Consistent customer segmentation
Code: BR-006
Name: Every Customer is assigned to a Segment on defined criteria
Description: Customers are assigned to a Segment (by industry, size, value, behaviour) on consistent criteria that drive campaigns and sales priorities. A customer belongs to a traceable segmentation.
Rationale: Target sales and marketing actions in a focused and measurable way.
Priority: MEDIUM
Actors: Marketing Team, Account Manager
Traceability: glossary.md Segment; events/domain-events.md CampaignLaunched.
---
BR-007 - Signed contract closes the opportunity as won
Code: BR-007
Name: Contract signature moves the Opportunity to closed-won
Description: When the contract is signed (ContractSigned), the Opportunity moves to closed-won and the prospect/contact becomes an active Customer (CustomerAcquired). The opportunity value is consolidated into sales metrics.
Rationale: Align the sales funnel with actual customer acquisition.
Priority: HIGH
Actors: Account Manager, Sales Rep
Traceability: BR-001; events/domain-events.md ContractSigned, CustomerAcquired.
---
BR-008 - Detected churn triggers a retention process
Code: BR-008
Name: Detecting churn on a Customer triggers a retention action
Description: When churn risk or event is detected on a Customer (ChurnDetected), a retention process is triggered (contact, offer, escalation to the Account Manager) before considering the customer lost.
Rationale: Reduce customer loss and protect installed-base value.
Priority: MEDIUM
Actors: Account Manager, CRM System
Traceability: glossary.md (churn); events/domain-events.md ChurnDetected.
---