# CRM System Design Document
# Product or Project Overview
This CRM system aims to help businesses manage customer relationships, track sales opportunities, and improve customer satisfaction. The system will cover core functionalities including customer information management, sales opportunity tracking, interaction records, reporting and analysis, providing a simple, user-friendly, and secure interface.
# Requirements Overview
Before diving into the formal design, it's essential to provide a comprehensive overview of the project requirements. This includes understanding the project background, objectives, expected outcomes, and key stakeholder expectations. The requirements overview stage is the foundation for ensuring project success, helping the team focus on core goals and priorities.
- Background: Businesses need an efficient tool to manage customer relationships and sales processes.
- Objectives: Implement functionalities for customer information management, sales opportunity tracking, interaction records, reporting and analysis to improve customer satisfaction and sales performance.
- Expected Outcomes: Increase sales team efficiency, improve customer service quality, and increase sales opportunity conversion rates.
- Key Stakeholders: Sales team, customer service team, management.
# Business Model Design
Business model design is the foundation of information system design. It involves defining database tables, setting fields, and establishing relationships between tables. In essence, this step determines the data structure and storage method of the system.
# Database Table Design
Model Name | Description |
---|---|
Customers | Customer information, including name, contact details, company name, position, etc. |
SalesOpportunities | Sales opportunity information, including opportunity name, stage, expected amount, etc. |
InteractionRecords | Interaction record information, including interaction type, date, notes, etc. |
Tasks | Task information, including task description, due date, status, etc. |
# Customers Table
Field Name | Type | Nullable | Default | Options | Remarks |
---|---|---|---|---|---|
name | STRING | No | None | None | Customer business key |
contactInfo | STRING | No | None | None | Contact information |
companyName | STRING | Yes | None | None | Company name |
position | STRING | Yes | None | None | Position |
group | STRING | Yes | None | None | Customer group |
birthday | LOCAL_DATE | Yes | None | None | Customer birthday |
# InteractionRecord Table
Field Name | Type | Nullable | Default | Options | Remarks | Related Object Type |
---|---|---|---|---|---|---|
name | STRING | No | None | None | Interaction record business key | None |
interactionType | STRING | No | None | None | Interaction type | None |
interactionDate | LOCAL_DATE | No | None | None | Interaction date | None |
notes | STRING | Yes | None | None | Notes | None |
# Task Table
Field Name | Type | Nullable | Default | Options | Remarks | Related Object Type |
---|---|---|---|---|---|---|
name | STRING | No | None | None | Task business key | None |
description | STRING | No | None | None | Task description | None |
dueDate | LOCAL_DATE | No | None | None | Due date | None |
status | STRING | No | None | None | Task status | None |
# SalesOpportunities Table
Field Name | Type | Nullable | Default | Options | Remarks | Related Object Type |
---|---|---|---|---|---|---|
name | STRING | No | None | None | Sales opportunity business key | None |
customer | DOMAIN_OBJECT | No | None | None | Related customer | Customers |
stage | STRING | No | None | None | Opportunity stage | None |
expectedAmount | BIG_DECIMAL | No | None | None | Expected amount | None |
expectedCloseDate | LOCAL_DATE | No | None | None | Expected close date | None |
interactionRecords | DOMAIN_OBJECT_LIST | Yes | None | None | Customer interaction records | InteractionRecord |
tasks | DOMAIN_OBJECT_LIST | Yes | None | None | Customer interaction records | Task |
# Enumeration Fields and Their Values
Below are the enumeration fields and their optional values from the above model design
# Enumeration Fields, Options, and Explanations
Model Name | Enum Field | Option Value | Explanation |
---|---|---|---|
Customers | Group | VIP | Very important customers |
Regular Customer | General customers | ||
Potential Customer | Potential customers who may become actual customers | ||
Important Customer | Customers very important to the business | ||
Blacklist | Customers no longer cooperating | ||
SalesOpportunities | Stage | Initial Contact | First contact with customer, understanding basic needs |
Needs Analysis | Analyzing customer needs, determining solutions | ||
Proposal Design | Designing specific solutions for customers | ||
Bidding | Submitting bid documents, competing with customers | ||
Negotiation | Negotiating with customers, striving for agreement | ||
Closed Won | Sales opportunity successful, deal reached | ||
Closed Lost | Sales opportunity failed, deal not reached | ||
InteractionRecords | InteractionType | Phone Call | Interacting with customers via phone |
Meeting | Face-to-face meetings with customers | ||
Interacting with customers via email | |||
On-site Visit | Visiting customers in person | ||
Video Conference | Interacting with customers via video conference | ||
Other | Other types of interactions | ||
Tasks | Status | Pending | Task not yet started |
In Progress | Task in progress | ||
Completed | Task completed | ||
Cancelled | Task cancelled |
# Form Design
Form design includes list, create, and edit operations, considering CRUD operations, multi-step form design, field default values, special validations, linkages, dynamic display/hide, field grouping, and form user permission settings.
The form design overview for this system is as follows:
- Customers and SalesOpportunities have independent list, create, and edit forms.
- Tasks and InteractionRecords are managed in association with SalesOpportunities.
# Dashboard Design
No dashboard design in version 1.
# Dynamic Operation Design
Design corresponding business operations for different types of objects, including operation logic, targeted user groups, and enabling conditions.
# Customer Operations
- Merge Customers: Merge duplicate customer information
- Export Customer Data: Export customer information to CSV file
- Send Email: Batch send emails to selected customers
# Sales Opportunity Operations
- Change Stage: Update the stage of sales opportunities
- Generate Report: Generate detailed reports for sales opportunities
# Object Lifecycle Design
Detailed planning of the logic in the create, read, update, delete (CRUD) process for each object, including necessary validations, integrations, and additional business logic processing.
# Core Process Design
Design necessary approval processes and business processes in the object lifecycle to ensure smooth and rational processes.
# Sales Opportunity Approval Process
- Create Opportunity: Sales personnel enter new sales opportunity
- Manager Approval: Sales manager reviews and approves
- Task Assignment: Assign relevant tasks to sales personnel
- Follow-up: Sales personnel follow up on sales opportunities, update progress
- Close: Sales opportunity successfully closed or failed
# Inter-System Integration Design
No inter-system integration design at present.
# Scheduled Task Design
Design necessary scheduled tasks based on business requirements, including tasks executed at system startup, one-time tasks, or periodic tasks.
# Scheduled Tasks
- Customer Birthday Reminder: Daily check for customer birthdays and send reminders
# Report and Document Printing Design
No report and document printing design at present.