Customer Management
Module Code: CRM Priority: P1 (Core Operations - Customer & Lead Management) Status: Extracted from v5.1 and enhanced Dependencies: P0 modules (M00, M01, M02, M03, M05 Task & Workflow Engine) Related Module: M10 Lead Management (for complete prospect-to-customer lifecycle) Old Module Number: M01 (Customer Database)
Module Overview
Purpose: Centralized customer information management system serving as the single source of truth for all customer data across the dealership. Forms the foundation for customer relationship management and integrates with lead management for complete prospect-to-customer lifecycle tracking.
Priority: P1 (Core Operations - Customer & Lead Management)
Scope:
- Customer master data management (individuals, corporate, fleet, government)
- Customer 360° view (transactions, service history, communications)
- Lead-to-customer conversion tracking
- Customer segmentation and analytics
- Integration with M10: Lead Management for complete CRM
Dependencies:
- User Access & Security (user access control)
- Access Control & Permissions (data access permissions)
- Employee Directory (customer assignments to employees)
- Company Configuration (location-based customer data)
Integration Points: All modules (every module references customer data)
Related Documentation
- 🏠 Documentation Home - System overview & all modules
Functional Specifications
5.1 Customer Information Management
Customer Definition Rules:
| Rule | Description |
|---|---|
| Customer Record Creation | Customer records created only when monetary transaction occurs |
| Lead Tracking | Leads without transactions tracked separately in Lead Management (M09) |
| Marketing Analytics | Closed lead requests maintained for marketing analytics |
| Duplicate Management | Duplicate prevention with intelligent merge capability |
Customer Types:
| Type | Description |
|---|---|
| Individual | Retail buyers (personal vehicle purchases) |
| Corporate | Business accounts (company vehicle purchases) |
| Fleet | Fleet account holders (multiple vehicle management) |
| Government | Government entities (public sector procurement) |
5.2 Create New Customer
Individual Customer Creation:
Process Flow:
- Generate unique customer code (auto-incremented)
- Capture mandatory fields (name, contact, ID verification)
- Create linked customer needs request
- Execute duplicate detection algorithm
- Offer merge option if duplicate found
- Initialize customer lifecycle tracking
Required Fields:
| Field | Type | Validation |
|---|---|---|
| Customer Name | VARCHAR(200) | Full name required |
| Phone Number | VARCHAR(20) | Format validation |
| VARCHAR(255) | Optional but recommended | |
| National ID | VARCHAR(50) | Format + checksum validation |
| Date of Birth | DATE | 18+ for contracts |
| Address | TEXT | Full address |
| Customer Type | ENUM | Individual/Corporate/Fleet/Government |
Corporate Customer Creation:
Process Flow:
- Search existing corporate database
- Display alert if potential duplicate detected
- Option to update existing record or create new
- Capture corporate-specific fields (tax ID, business license)
- Assign account manager
- Set up billing and payment terms
Additional Corporate Fields:
| Field | Type | Required |
|---|---|---|
| Company Name | VARCHAR(255) | Yes |
| Tax ID | VARCHAR(50) | Yes |
| Business License | VARCHAR(100) | Yes |
| Legal Representative | VARCHAR(200) | Yes |
| Billing Address | TEXT | Yes |
| Payment Terms | ENUM | Yes |
| Credit Limit | DECIMAL | Optional |
| Account Manager | UUID (Employee) | Yes |
Data Completion Tracking:
| Feature | Description |
|---|---|
| Progress Indicator | Visual display showing % of fields completed |
| Field Classification | Mandatory vs optional field identification |
| Reminders | Automated reminders for incomplete critical information |
| Quality Score | Data quality score calculation and tracking |
5.3 Lead-to-Customer Conversion
Integration with M09: Lead Management (Coming Soon)
Conversion Workflow:
| Step | Action | System Behavior |
|---|---|---|
| 1 | Lead qualifies for conversion | Lead status = “Qualified” in M09 |
| 2 | Sales team initiates conversion | Create customer record from lead data |
| 3 | Auto-populate customer fields | Transfer all lead information to customer |
| 4 | Link lead history to customer | Maintain complete interaction history |
| 5 | Update lead status | Lead status = “Converted” with customer link |
| 6 | Initialize customer lifecycle | Begin customer journey tracking |
Conversion Triggers:
| Trigger | Description | Action |
|---|---|---|
| First Transaction | Any monetary transaction completed | Auto-create customer record |
| Manual Conversion | Sales rep manually converts qualified lead | Create customer with lead data |
| Vehicle Purchase | Vehicle sale order created | Immediate customer creation required |
| Service Booking | Service appointment with payment | Create customer for service history |
Data Transfer Mapping:
| Lead Field (M09) | Customer Field (M05) | Transformation |
|---|---|---|
| Lead Name | Customer Name | Direct copy |
| Lead Phone | Phone Number | Direct copy |
| Lead Email | Direct copy | |
| Lead Source | Acquisition Source | Direct copy |
| Lead Score | Initial Customer Score | Converted to customer score |
| Lead Notes | Customer Notes | Append to customer history |
| Assigned Sales Rep | Account Manager | Transfer assignment |
| Lead Interactions | Communication History | Full history transfer |
Conversion Business Rules:
| Rule | Description | Validation |
|---|---|---|
| Duplicate Prevention | Check existing customers before conversion | Fuzzy match on name, phone, email |
| Data Validation | All mandatory fields must be complete | Pre-conversion validation check |
| Lead History Preservation | All lead interactions preserved | Link maintained for reporting |
| Attribution Tracking | Original lead source tracked | Marketing ROI analysis |
| No Reverse Conversion | Customer cannot be reverted to lead | One-way conversion only |
Conversion Metrics & KPIs:
| Metric | Description | Target |
|---|---|---|
| Lead-to-Customer Rate | % of leads that convert to customers | > 25% |
| Conversion Time | Average days from lead to customer | < 30 days |
| First Purchase Value | Average first transaction amount | Track by source |
| Conversion by Source | Conversion rate by lead source | Optimize marketing |
| Data Quality Score | % of complete customer profiles | > 95% |
Post-Conversion Actions:
-
Customer Welcome Flow:
- Send welcome email/SMS
- Assign loyalty program ID
- Schedule first service reminder
- Add to newsletter
-
Sales Team Notification:
- Notify assigned sales rep
- Update sales dashboard
- Trigger commission calculation
- Update sales pipeline
-
Marketing Attribution:
- Track conversion by campaign
- Update campaign ROI
- Feed data to analytics
- Close lead in M09
5.4 Update Customer Information
Update Permissions:
| Permission Type | Description |
|---|---|
| Universal Access | Update rights across all user roles |
| Field-Level Control | Access control for sensitive data fields |
| Change Logging | Change history logging with user attribution |
| Compliance Audit | Comprehensive audit trail for compliance |
Change Management:
| Feature | Description |
|---|---|
| Value Tracking | Before/after value tracking for all changes |
| Timestamp | Timestamp of all modifications |
| User Attribution | User ID of modifier recorded |
| Reason Codes | Reason code required for significant changes |
| Approval Workflow | Approval workflow for critical fields |
Sensitive Field Changes:
- National ID changes require manager approval
- Tax ID changes require finance approval
- Customer type changes require manager approval
- All sensitive changes logged with reason
5.4 Customer Lookup & Search
Search Capabilities:
| Feature | Description |
|---|---|
| Full-Text Search | Search across all customer fields |
| Advanced Filters | Date ranges, status, type, and custom filters |
| Quick Search | Search by phone, email, or customer ID |
| Fuzzy Matching | Intelligent name matching for similar results |
| Search History | Save and reuse frequent queries |
Search Fields:
- Customer ID
- Full name (with fuzzy matching)
- Phone number (partial or full)
- Email address
- National ID
- Company name (for corporate)
- Tax ID (for corporate)
- Vehicle VIN (linked vehicles)
- License plate number
Access Control Matrix:
| Control Type | Description |
|---|---|
| Role-Based Visibility | Information visibility based on user role |
| Transaction Access | Transaction history access restrictions |
| Data Masking | Sensitive data masking for unauthorized users |
| Department Views | Department-specific information views |
| Service History | Service history visibility controls |
Data Masking Rules:
- Phone numbers: Show last 4 digits only for non-assigned customers
- Email: Show domain only for non-assigned customers
- National ID: Show last 4 digits only
- Financial data: Restricted to finance and management roles
5.5 Customer 360 View
Comprehensive Customer Profile:
| Component | Description |
|---|---|
| Transaction History | Complete transaction history (VOC - Voice of Customer) |
| Service Records | Service history and upcoming maintenance schedules |
| Sales Pipeline | Sales opportunities and quotations |
| Communications | Complete communication history across all channels |
| Loyalty Status | Loyalty program status and points balance |
| Financial | Outstanding payments and credit information |
| Preferences | Customer preferences, notes, and special requirements |
| Owned Vehicles | All vehicles owned (current and historical) |
Customer Timeline:
- Chronological view of all interactions
- Sales events, service visits, communications
- Payment history
- Loyalty rewards earned/redeemed
- Complaints and resolutions
Quick Actions:
- Create new quotation
- Schedule service appointment
- Send message (SMS/Email)
- Record interaction
- Add note
- Update contact information
5.6 Customer Segmentation
Segmentation Criteria:
| Criterion | Description |
|---|---|
| Purchase History | Number and value of purchases |
| Service Frequency | Service visit patterns |
| Vehicle Ownership | Number and type of vehicles owned |
| Lifetime Value | Total revenue generated |
| Location | Geographic location |
| Customer Type | Individual/Corporate/Fleet |
| Loyalty Tier | VIP, Gold, Silver, Regular |
Predefined Segments:
- VIP Customers (>$100K lifetime value)
- High-Value Customers (100K)
- Repeat Customers (3+ purchases)
- Service-Only Customers (no sales)
- At-Risk Customers (no activity in 12 months)
- New Customers (< 6 months)
Data Model
Customer Table:
| Field | Type | Description |
|---|---|---|
| customer_id | UUID | Primary key |
| customer_code | VARCHAR(20) | Unique customer number (auto) |
| customer_type | ENUM | Individual/Corporate/Fleet/Government |
| full_name | VARCHAR(200) | Full legal name |
| preferred_name | VARCHAR(100) | Preferred/nickname |
| national_id | VARCHAR(50) | National ID/Passport |
| date_of_birth | DATE | Birth date |
| gender | ENUM | Male/Female/Other |
| primary_phone | VARCHAR(20) | Primary contact phone |
| secondary_phone | VARCHAR(20) | Secondary phone |
| primary_email | VARCHAR(255) | Email address |
| address_line1 | VARCHAR(255) | Street address |
| address_line2 | VARCHAR(255) | Apt, suite, etc. |
| city | VARCHAR(100) | City |
| state | VARCHAR(100) | State/Province |
| postal_code | VARCHAR(20) | ZIP/Postal code |
| country | VARCHAR(100) | Country |
| customer_status | ENUM | Active/Inactive/Blacklisted |
| assigned_employee_id | UUID | Sales advisor assigned |
| primary_location_id | UUID | Primary dealership location |
| customer_source | VARCHAR(100) | How customer found us |
| customer_segment | VARCHAR(50) | Customer segment |
| lifetime_value | DECIMAL | Total revenue from customer |
| total_purchases | INT | Number of purchases |
| last_purchase_date | DATE | Most recent purchase |
| last_service_date | DATE | Most recent service |
| notes | TEXT | General notes |
| data_quality_score | INT | Data completeness score (0-100) |
| created_at | TIMESTAMP | Record creation |
| created_by | UUID | Creator employee ID |
| updated_at | TIMESTAMP | Last update |
| updated_by | UUID | Last modifier |
Corporate Customer Table:
| Field | Type | Description |
|---|---|---|
| corporate_id | UUID | Primary key |
| customer_id | UUID | Foreign key to customer |
| company_name | VARCHAR(255) | Legal company name |
| trade_name | VARCHAR(255) | DBA name |
| tax_id | VARCHAR(50) | Tax identification |
| business_license | VARCHAR(100) | Business license number |
| legal_representative | VARCHAR(200) | Authorized signatory |
| business_type | VARCHAR(100) | Corporation, LLC, etc. |
| industry | VARCHAR(100) | Industry classification |
| billing_address | TEXT | Billing address |
| payment_terms | ENUM | Net30/Net60/COD/etc. |
| credit_limit | DECIMAL | Credit limit |
| account_manager_id | UUID | Assigned account manager |
| number_of_employees | INT | Company size |
| annual_revenue | DECIMAL | Company revenue |
Customer Contact Table:
| Field | Type | Description |
|---|---|---|
| contact_id | UUID | Primary key |
| customer_id | UUID | Foreign key to customer |
| contact_type | ENUM | Primary/Billing/Emergency |
| contact_name | VARCHAR(200) | Contact person name |
| title | VARCHAR(100) | Job title |
| phone | VARCHAR(20) | Phone number |
| VARCHAR(255) | Email address | |
| is_primary | BOOLEAN | Primary contact flag |
| notes | TEXT | Contact notes |
Customer Change History Table:
| Field | Type | Description |
|---|---|---|
| history_id | UUID | Primary key |
| customer_id | UUID | Foreign key to customer |
| field_name | VARCHAR(100) | Field that changed |
| old_value | TEXT | Previous value |
| new_value | TEXT | New value |
| change_reason | TEXT | Reason for change |
| changed_by | UUID | Employee who made change |
| changed_at | TIMESTAMP | Change timestamp |
| approval_status | ENUM | Pending/Approved/Rejected |
| approved_by | UUID | Approver employee ID |
Customer Preference Table:
| Field | Type | Description |
|---|---|---|
| preference_id | UUID | Primary key |
| customer_id | UUID | Foreign key to customer |
| preference_type | VARCHAR(50) | Communication/Service/etc. |
| preference_key | VARCHAR(100) | Preference name |
| preference_value | TEXT | Preference value |
| created_at | TIMESTAMP | When set |
Business Rules
Mandatory Fields:
| Field | Requirement |
|---|---|
| Customer Name | Full name is required |
| Primary Contact | Phone or email is required |
| Customer Type | Customer type designation is required |
Data Validation:
| Validation Type | Rule |
|---|---|
| Phone Number | Format validation against regional standards |
| Syntax verification for valid email format | |
| National ID | Checksum validation for authenticity |
| Tax ID | Format check for corporate entities |
| Date of Birth | Age restrictions (18+ for contracts) |
Duplicate Prevention:
| Match Type | Criteria |
|---|---|
| Phone Number | Fuzzy match (>80% similarity) |
| Exact match required | |
| National ID | Exact match required |
| Name + Address | Combined name and address match |
Duplicate Resolution:
- System alerts user when duplicate detected
- User can view both records side-by-side
- User can merge duplicates (keeps primary, archives secondary)
- Merge action requires manager approval
- All data from secondary record preserved in history
Data Retention:
| Data Type | Retention Period |
|---|---|
| Active Customer Data | Indefinite |
| Inactive Customer Data | 7 years minimum |
| Deleted Customer Records | Soft delete with 30-day recovery window |
| Change History | Permanent retention |
Customer Status Rules:
- Active: Currently engaged customer
- Inactive: No activity for 24 months
- Blacklisted: Fraud/abuse, cannot transact (requires GM approval)
Integration Points
Outbound Integrations:
| Module | Integration Purpose |
|---|---|
| M09 Lead Management | Customer matching and qualification |
| M10 Sales Operations | Customer selection for sales orders |
| M11 Service Operations | Customer identification for service |
| M19 Customer Care | Communication preferences |
| M20 Messaging | Contact information retrieval |
| M22 Campaign Management | Segmentation data |
| M21 Loyalty Program | Member enrollment |
| M27 Business Intelligence | Customer analytics |
Inbound Integrations:
| Source | Integration Purpose |
|---|---|
| M13 Traffic Management | Automatic customer registration via QR |
| Virtual PBX (External) | Caller ID matching and screen pop |
| Social Media (External) | Lead import from Facebook/Instagram |
| Email System (External) | Inbound inquiry capture |
User Roles & Permissions
Access Control Matrix:
| Role | View | Create | Update | Delete | Export | Merge |
|---|---|---|---|---|---|---|
| System Admin | All | Yes | All | Yes | Yes | Yes |
| Sales Manager | All | Yes | All | No | Yes | Yes |
| Sales Advisor | All | Yes | Own + Assigned | No | Limited | No |
| Service Manager | All | Limited | All | No | Yes | No |
| Service Advisor | All | Limited | Own + Assigned | No | No | No |
| Customer Care | All | No | Contact info only | No | Limited | No |
| Accountant | Read only | No | No | No | Yes | No |
Data Access Scopes:
- All: Can see all customer records
- Own: Can only see customers they created
- Assigned: Can see customers assigned to them
- Department: Can see all customers in their department
- Location: Can see customers at their location
Key Performance Indicators
Data Quality Metrics:
| Metric | Target | Measurement |
|---|---|---|
| Data Completeness | > 95% | % required fields filled |
| Duplicate Rate | < 2% | % duplicate records |
| Data Accuracy | > 98% | % valid phone/email |
| Profile Completion | > 80% | Avg data quality score |
| Change Approval Time | < 24 hours | Avg approval time for changes |
Customer Metrics:
| Metric | Target | Measurement |
|---|---|---|
| Total Active Customers | Track monthly | Active customer count |
| New Customers | Track monthly | New customer additions |
| Customer Reactivation | > 10%/year | Inactive → Active |
| Customer Retention | > 70% | Customers with repeat business |
| VIP Customers | Track | Top tier customer count |
Last Updated: November 14, 2025 Version: 6.0 Migrated From: Dealership_System_Documentation_v5_1.md (M01) Changes: Restructured as P1 Master Data module, updated dependencies to P0 baseline