Lead Status Lifecycle
The Lead Status system defines the complete lifecycle of a contact from initial outreach through final resolution. Each status represents a distinct state in the sales funnel and carries specific rules, effects, and transition constraints.
Status Definitions & Codes
Complete Status Reference Table
| Code | Display Name | Category | Active | Next Follow-up | Auto-Close | Notes |
|---|---|---|---|---|---|---|
| SV | Site Visit Fixed | Conversion | Yes | Upon visit | No | Creates site visit entry |
| CP | Client Pending | Active | Yes | 2-3 days | No | Auto-reminder enabled |
| TR | Trashed | Closed | No | None | Yes (30 days) | Eligible for purge |
| NR | No Response | Pending | No | Auto-retry or close | Yes (after N attempts) | Counter tracked |
| WBD | Waiting for Booking Detail | Active | Yes | 1-2 days | No | Awaits customer input |
| CB | Call Back | Scheduled | Yes | Scheduled date | No | Manager notified if overdue |
| NI | Not Interested | Closed | No | None | Yes (7 days) | No further contact |
| WN | Wrong Number | Invalid | No | None | Yes (immediate) | Marked for cleanup |
| DND | Do Not Disturb | Blocked | No | None | Yes (as per regulation) | Legal block, no calls |
Status Transition State Machine
Status-Specific Effects
SV Fixed (Site Visit)
When a lead transitions to SV Fixed:
EFFECTS:
├─ Create SiteVisit record with:
│ ├─ Lead ID
│ ├─ Scheduled date (from call notes)
│ ├─ Assigned field officer (if available)
│ └─ Status = Pending
├─ Send notification to Manager:
│ └─ "New SV Fixed: [Customer Name] on [Date]"
├─ Update Lead.IsActive = true
└─ Create follow-up reminder for field officerCP (Client Pending)
When a lead transitions to CP:
EFFECTS:
├─ Set Lead.IsActive = true
├─ Create auto-reminder:
│ ├─ Scheduled: NOW + 2-3 days
│ ├─ Type: Customer Follow-up
│ └─ Assignee: Original TC
├─ Increment CP_Counter
├─ Update Last_Activity_Date
└─ Alert UI: Show "Follow-up due on [Date]"Trashed (TR)
When a lead transitions to Trashed:
EFFECTS:
├─ Set Lead.IsActive = false
├─ Clear all active reminders
├─ Remove from active dashboard
├─ Mark eligible for auto-close:
│ └─ After 30 days: Automatically archive
├─ Log closure reason (if provided)
└─ Remove from reassignment poolNo Response (NR)
When a lead transitions to NR:
EFFECTS:
├─ Increment NR_Attempt_Counter
├─ Schedule auto-retry:
│ ├─ Time: NOW + 24-48 hours
│ ├─ Max retries: 3
│ └─ If max reached → Auto-transition to TR
├─ Update Last_Contact_Attempt
├─ Alert TC: "[X] more attempts before auto-close"
└─ If Counter >= N: Auto-transition NR → TRCall Back (CB)
When a lead transitions to CB:
EFFECTS:
├─ Set Callback_Date from call notes
├─ Create reminder:
│ ├─ Scheduled: Callback_Date - 1 hour
│ ├─ Alert: "Callback due in 1 hour"
│ └─ Assignee: Original TC
├─ Flag as overdue-eligible:
│ └─ If NOW > Callback_Date: Mark overdue
├─ Manager notification if overdue > 24 hours
└─ Lead remains active until callbackNot Interested (NI)
When a lead transitions to NI:
EFFECTS:
├─ Set Lead.IsActive = false
├─ Log decline reason
├─ Remove from active follow-up queue
├─ Mark for auto-close: 7 days
├─ Alert: "Lead marked not interested"
└─ Prevent further outreachTransition Rules & Restrictions
Invalid Transitions (Require Manager Override)
Natural/Allowed Transitions
- Active States (CP, WBD, CB): Free transitions between each other
- To SV: From CP, WBD, CB, or Fresh
- To NR/NI/WN/DND: From any active state (one-way to closed)
- To TR: From any state (final closure)
Manager Override Requirements
A TeleLeader can manually override invalid transitions for:
- Reopening Trashed leads (e.g., customer called back)
- Reviving Not Interested leads (e.g., customer reconsidered)
- Clearing DND status (e.g., customer removed from registry)
- Reassigning from Wrong Number (e.g., corrected number obtained)
Audit Trail: All manager overrides are logged with:
- Original state
- New state
- Manager ID
- Override reason
- Timestamp
Auto-Closure Rules
No Response Attempt Counter
The NR status uses an attempt counter to prevent infinite retry loops:
NR Status Rules:
├─ Counter starts at 0 when status = NR
├─ Each retry increments counter by 1
├─ System auto-schedules retry every 24-48 hours
├─ Max retries = 3 attempts
├─ On Counter >= 3:
│ ├─ Lead auto-transitions to TR (Trashed)
│ ├─ Notification sent: "Max attempts reached"
│ └─ Marked for auto-close
└─ TC can manually reset counter (requires notes)Performance & Monitoring
- All transitions are tracked and timestamped
- Status change queries are optimized with indexes on (LeadId, Status, ChangedDate)
- Auto-closure runs nightly via scheduled job
- Manager alerts for overdue CB status are sent daily