Skip to main content

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.

---