4.1 KiB
Task J.0: KPI Definition Freeze
Goal
Freeze KPI Definitions และ Sales Pipeline Definitions ก่อนเริ่มสร้าง CRM Dashboard KPI
หลัง Task J.0 ผ่านแล้ว ห้ามเปลี่ยนนิยาม KPI โดยไม่มี ADR ใหม่
Sales Pipeline Definition
Lead
Definition:
ยังไม่ได้ Assign Sales
Rules:
assignedToUserId = null
pipelineStage = lead
KPI Impact:
Lead Count
Lead Aging
Lead Source
New Leads
Opportunity
Definition:
Assign Sales แล้ว
Rules:
assignedToUserId != null
pipelineStage = opportunity
Auto Transition:
Lead
↓ Assign Sales
Opportunity
KPI Impact:
Opportunity Count
Opportunity Value
Hot Opportunities
Opportunity Aging
Closed Won
Definition:
ลูกค้ายืนยันรับงาน
หรือโครงการได้รับ Award
Rules:
pipelineStage = closed_won
Recommendation:
Add future field:
closedWonAt
Closed Lost
Definition:
แพ้คู่แข่ง
งบประมาณไม่ผ่าน
ลูกค้ายกเลิก
โครงการไม่เดินต่อ
Rules:
pipelineStage = closed_lost
Recommendation:
Add future field:
closedLostAt
lostReason
Opportunity Lifecycle
Lead
↓ Assign Sales
Opportunity
↓ Create Quotation
Opportunity
↓ Approved Quotation
Opportunity
↓ Award
Closed Won
Customer Party Definition
Billing Customer
Definition:
บริษัทที่ใช้ในการออกใบเสนอราคา
หรือวางบิล
Examples:
ALLA
Italian Thai
SCG
End Customer
Definition:
เจ้าของโครงการตัวจริง
Examples:
PTT
CP
SCG Chemicals
Contractor
Definition:
ผู้รับเหมาก่อสร้าง
Consultant
Definition:
ที่ปรึกษาโครงการ
Customer
Definition:
คู่ค้าหรือผู้เกี่ยวข้องทั่วไป
KPI Definitions
Lead Metrics
Lead Count
New Leads
Unassigned Leads
Lead Aging
Lead Count:
pipelineStage = lead
Opportunity Metrics
Opportunity Count
Open Opportunities
Hot Opportunities
Opportunity Count:
pipelineStage = opportunity
Conversion Metrics
Lead → Opportunity
Formula:
Opportunity Created
/
Total Leads
Opportunity → Quotation
Formula:
Opportunity With Quotation
/
Total Opportunities
Quotation → Won
Formula:
Closed Won
/
Total Opportunities With Quotation
Revenue Metrics
Opportunity Value
Source:
crm_enquiries.estimatedValue
Condition:
pipelineStage = opportunity
Quotation Value
Source:
crm_quotations.totalAmount
Condition:
quotation status != cancelled
Won Value
Source:
crm_quotations.totalAmount
Condition:
pipelineStage = closed_won
Lost Value
Source:
crm_quotations.totalAmount
Condition:
pipelineStage = closed_lost
Sales Ownership
Dashboard must use:
assignedToUserId
for:
Lead
Opportunity
and
salesmanId
for:
Quotation
Future Fields (Not In Scope)
Do NOT implement now.
Track as technical debt:
convertedToOpportunityAt
closedWonAt
closedLostAt
lostReason
defaultPartyRole
Output
- KPI Definitions Frozen
- Sales Pipeline Frozen
- Customer Party Definitions Frozen
- Revenue Rules Frozen
- Dashboard Ready
Definition of Done
✔ Lead definition frozen
✔ Opportunity definition frozen
✔ Won/Lost definition frozen
✔ Billing Customer definition frozen
✔ Project Party role definition frozen
✔ KPI formulas frozen
✔ Revenue formulas frozen
✔ Ready for Task J