Sales CRM Module
A full-featured Sales CRM module for dForge, providing lead management, opportunity tracking, quoting, and customer relationship management.
Entities
| Entity | Description | Key Fields |
|---|---|---|
| account | Companies and organizations | name, type, industry, revenue |
| contact | People at accounts | name, email, phone, job title |
| lead | Prospective customers | name, company, source, status, rating |
| opportunity | Sales deals in pipeline | name, account, stage, amount, close date |
| opportunity_line | Products on opportunities | product, quantity, price, discount |
| quote | Price proposals | number, opportunity, status, total |
| quote_line | Line items on quotes | product, quantity, price, discount |
| activity | Calls, emails, meetings, tasks | type, subject, status, priority, due date |
Data Model
Lead ──(converts to)──> Account + Contact + Opportunity
Account ──< Contact (1:N)
Account ──< Opportunity (1:N)
Account ──< Activity (1:N)
Contact ──< Activity (1:N)
Opportunity ──< Opportunity Line (1:N)
Opportunity ──< Quote (1:N)
Opportunity ──< Activity (1:N)
Quote ──< Quote Line (1:N)
products.product ──< Opportunity Line (1:N)
products.product ──< Quote Line (1:N)
Views
- Grids: Accounts, Contacts, Leads, Opportunities, Activities, Quotes
- Kanban: Lead Pipeline (by status), Sales Pipeline (by stage)
- Calendar: Activity Calendar (by due date)
- Master-Detail: Opportunities with Products, Quotes with Line Items
Roles
| Role | Description |
|---|---|
crm.admin |
Full access to all CRM entities |
crm.sales-manager |
Full sales access; may edit shared products, not delete them |
crm.sales-rep |
Standard CRUD, no delete on accounts/opportunities |
crm.viewer |
Read-only access to all CRM data |
Products
The product catalogue is not owned by CRM. products.product belongs to the shared
products module, and Opportunity/Quote Lines reference it. Manage the catalogue under
Products, not inside CRM.
Line items show only products flagged for_sale = true.
Price is not read from the product — products.product holds no price. unit_price on an
Opportunity Line or Quote Line is the price agreed for that specific deal: enter it manually,
or refresh it from a price list with Refresh Prices where the crm-pricing integration is
installed.
Seed Data
Demo leads, opportunities, quotes, contacts and activities. Opportunity and Quote Lines
reference the demo products seeded by the products module (IDs 1001–1010); CRM no longer
ships a product seed of its own.
Dependencies
admin>= 0.0.1 (for user references)parties>= 0.1.0 (shared customer/vendor directory)products>= 0.1.0 (shared product catalogue referenced by line items)