Lead Status Pipeline
Status Progression
new → contacted → qualified → converted → closed
↓ ↓
└──────→ no_response lost_deal
Status Definitions
| Status | Meaning |
|---|---|
| new | Freshly captured lead |
| contacted | Agent has reached out |
| qualified | Lead shows buying intent |
| converted | Lead scheduled viewing |
| closed | Deal completed |
| no_response | Lead unresponsive |
| lost_deal | Opportunity missed |
Answer Object Structure
Leads can answer custom form questions:
{
"registrant_id": "reg_123",
"answers": [
{
"question": "How soon are you looking to buy?",
"answer": "Within 3 months",
"answer_type": "single_select"
},
{
"question": "Interested in financing?",
"answer": "true",
"answer_type": "boolean"
},
{
"question": "Additional comments",
"answer": "Very interested in this property",
"answer_type": "text"
}
]
}
Answer Types
- text - Free-form text response
- single_select - One choice from options
- multi_select - Multiple choices
- boolean - Yes/No answer
- date - Date response
- phone - Phone number
- email - Email address
Lead Scoring
Score leads by conversion likelihood:
def score_lead(lead):
score = 0
if lead['status'] == 'qualified':
score += 50
if lead['status'] == 'contacted':
score += 25
if lead['registration_date'] < 7_days_ago:
score += 10
return score