A lead can only move along an arrow drawn here. Each move demands a reason code, which is what makes “why do we lose leads” a question the reports can actually answer.

Allowed transitions

Drag to rearrange · click an arrow to set its reason codes
reopen — manager only New 213 Contacted 486 Qualified 302 Documents 171 Converted 312 Not interested 204 Lost 148 On hold 63 Junk Duplicate

Disposition reason codes

Every status change must carry one
CodeLabelApplies to30dReopen
QUA-01Meets vacancy criteriaQualified302
INT-02Interested, needs timeContacted188Yes
DOC-01Awaiting documentsDocuments171
NIN-01Not looking to travel nowNot interested121Yes
LST-03Salary mismatchLost74Yes
LST-05Joined a competitorLost41
JNK-01Wrong numberJunk96
JNK-03Test / spam submissionJunk38
DUP-01Merged into existing leadDuplicate62

Rules on the machine

Guard rails the transitions obey
Reason code is mandatory
No status moves without one, in app or on mobile
Junk needs a prior call attempt
Stops a lead being binned without ever being dialled — the cross-check on the leakage report leans on this
Converted is final for the executive
Only a manager can reopen a converted lead
Lost and Not interested can be reopened
Only via codes flagged reopen-able
Auto-junk after 6 failed attempts
Off — the desk prefers to decide by hand
Every change is written to the audit log
From, to, code, user, time, device