Lead Management User Guide
The Lead Management system allows you to upload, organize, and automatically call leads using AI-powered calling agents. This guide covers everything you need to know to effectively manage your leads, from adding them to tracking their status through the calling process.
Lead Management User Guide
The Lead Management system allows you to upload, organize, and automatically call leads using AI-powered calling agents. This guide covers everything you need to know to effectively manage your leads, from adding them to tracking their status through the calling process.
Key Features
- •Bulk Upload: Import leads via CSV files
- •Manual Entry: Add leads one at a time
- •Custom Fields: Add your own data fields to leads
- •Automatic Calling: System automatically calls leads based on your schedule
- •Smart Retry: Automatically retries failed calls after a delay
- •Real-time Updates: See call status in real-time as agents process leads
- •Comprehensive Reporting: Track metrics and outcomes for all leads
💡 Tip: Before you start, make sure you have set up at least one calling provider (Retell or Vapi) in your account settings. You'll need this to make calls.
Getting Started: Adding Leads
Method 1: Manual Entry
- Go to the Add Leads section
- Click "Add Lead" button
- Fill in the required information:
- Name: Contact's full name
- Phone: Phone number (must be in E.164 format, e.g., +1234567890)
- Email: Contact's email address
- Company: Company name (optional)
- Add any custom fields if needed
- Click "Save"
Method 2: CSV Import
- Go to the Add Leads section
- Click "Import CSV" button
- Download the template CSV file (optional, but recommended)
- Fill in your lead data:
- Required columns: Name, Phone, Email
- Optional columns: Company, Timezone
- Custom field columns: Add any additional columns
- Upload your CSV file
- Map your columns to the system fields
- Review and confirm the import
📱 Phone Number Format
Phone numbers must be in E.164 format:
- ✓Must start with
+followed by country code - ✓Example:
+12125551234(US) - ✓Example:
+447911123456(UK) - ✓Example:
+8801977317066(Bangladesh)
Invalid formats will cause the lead to be marked as "failed"
Understanding Lead Statuses
Your leads can be in one of five statuses. Understanding these statuses helps you track your calling progress:
Ready to Call
Meaning: Lead is ready to be called right now
When: Newly added leads start in this status, or leads that have waited for their retry delay period
Action: System will automatically call these leads when auto-calling is enabled
Call Active
Meaning: A call is currently happening for this lead
When: System has initiated a call and is waiting for it to complete
Action: Wait for the call to finish. Status will automatically update
Waiting for Retry Delay
Meaning: Call was unsuccessful, waiting for retry delay to pass before trying again
When: Call was not answered (no answer, busy, voicemail), failed temporarily, or lead hasn't reached max attempts yet
Action: System will automatically retry after the configured delay
Finished
Meaning: Lead has reached the end of the calling process
When: Call was successfully connected (person answered) or maximum call attempts reached
Action: No further calls will be made. Review call results in call history
Permanent Error
Meaning: Lead has a permanent issue that prevents calling
When: Invalid phone number format, phone number doesn't exist, or other permanent errors
Action: Fix the lead information (especially phone number) and manually change status back to "pending"
How Lead Statuses Change
Understanding the flow helps you know what to expect:
Status Flow Diagram
New Lead Added
↓
[Pending] ← Ready to call
↓
Call Initiated
↓
[In-Progress] ← Call happening now
↓
Call Ends
↓
├─→ Person Answered → [Completed] ✅
│
├─→ No Answer/Busy/Voicemail → [Retry] → Wait for delay → [Pending]
│ ↑
└─→ Max Attempts Reached → [Completed] ✅ │
│
└─→ Invalid Phone Number → [Failed] ❌ │
│
└─→ Permanent Error → [Failed] ❌ │
│
└─→ Temporary Error → [Pending] → Retry immediately ────────┘Detailed Status Transitions
Pending → In-Progress
When: System selects the lead for calling
- •Auto-calling is enabled
- •Lead is within calling hours (if schedule is set)
- •System has available call slots
- •Lead hasn't reached max attempts
What Happens: Status changes to "in-progress", call attempt counter increases, and call is initiated
In-Progress → Retry
When: Call ends but person didn't answer
- •Call went to voicemail
- •Person was busy
- •No answer
- •Call failed for temporary reason
What Happens: Status changes to "retry", and lead waits for the configured retry delay period
In-Progress → Completed
When: Call was successful or max attempts reached
What Happens: Status changes to "completed", no more calls will be made, and call transcript/summary becomes available
In-Progress → Failed
When: Permanent error occurs
- •Invalid phone number format
- •Phone number doesn't exist
- •Other permanent errors from provider
What Happens: Status changes to "failed", lead is moved to failed list, and you can fix and reactivate it
Retry → Pending
When: Retry delay period has passed
What Happens: System automatically checks every 2 minutes. If retry delay has passed and lead hasn't reached max attempts, status changes back to "pending" for next attempt
Provider-Specific Guides
Using Retell
Retell is designed to automatically make all your lead information available to the AI agent during calls.
How Lead Data Works with Retell
Automatic Data Transmission
- ✓All standard fields are automatically sent
- ✓All custom fields are automatically sent
- ✓No configuration needed
Standard Fields Sent to Retell
| Field Name | Description |
|---|---|
customer_name | Full name |
first_name | First name only |
last_name | Last name only |
email_address | |
phone_number | Phone number |
company_name | Company |
timezone | Timezone |
Best Practices for Retell
- Create descriptive custom field names (they'll be used as variable names)
- Ensure phone numbers are in correct E.164 format
- Fill in as much information as possible - the AI can use it all
- Custom fields are automatically available - no template configuration needed
⚙️ Retell Configuration Requirements
- •Phone Number: Must have a phone number configured in agent settings
- •Agent ID: Can use Retell's external agent ID or system's inline configuration
- •API Key: Must have Retell API credentials configured
Using Vapi
Vapi uses a template-based approach where you control exactly what information is included in your agent's messages.
How Lead Data Works with Vapi
Template-Based Data Usage
Lead data is only used if you reference it in your agent's message templates. Use placeholder syntax: {{field_name}} to include lead information.
If you don't reference a field, it won't be sent to Vapi
Available Placeholders
Standard Fields
{{name}} | Full name |
{{first_name}} | First name only |
{{last_name}} | Last name only |
{{email}} | Email address |
{{phone}} | Phone number |
{{company}} | Company name |
{{timezone}} | Timezone |
Custom Fields
Use {{your_custom_field_name}} for any custom field you created
- Example: If field is "address", use
{{address}} - Example: If field is "job_title", use
{{job_title}}
Where to Use Placeholders
First Message (Opening Line)
Hi {{name}}, I'm calling from {{company}} about your inquiry.System Prompt (Agent Instructions)
You are calling {{name}} at {{company}}. Their email is {{email}}. Their address is {{address}} if available.Voicemail Message
Hi {{name}}, this is a message for you regarding {{company}}.⚠️ Important Notes for Vapi
- •Custom fields are ONLY included if you use placeholders in your templates
- •If you don't reference a custom field, it won't be available during the call
- •Standard fields also need to be referenced if you want them in messages
- •Placeholders are case-sensitive - use exact field names
⚙️ Vapi Configuration Requirements
- •Assistant Configuration: Can use Vapi's external assistant ID or configure inline
- •First Message: Required if using inline configuration
- •System Prompt: Recommended for better call quality
- •API Key: Must have Vapi API credentials configured
Custom Fields Guide
Custom fields allow you to add your own data to leads beyond the standard fields (Name, Phone, Email, Company, Timezone).
Creating Custom Fields
- Go to Settings → Custom Fields
- Click "Add Custom Field"
- Enter:
- Field Name: The name of your field (e.g., "Address", "Job Title", "Product Interest")
- Field Type: Text, Number, Date, etc.
- Save the custom field
Using Custom Fields
For Retell Users
- ✓Custom fields are automatically sent to Retell
- ✓No configuration needed
- ✓AI agent can access them during calls
- ✓Use descriptive field names
For Vapi Users
- •Must reference custom fields in message templates
- •Use
{{your_field_name}}syntax - •Example: If field is "address", use
{{address}} - •If not referenced, the field won't be available
Custom Field Best Practices
- Use Clear Names: Field names should be descriptive and easy to understand
- Be Consistent: Use the same field names across all leads
- Fill Complete Data: More information helps the AI agent have better conversations
- For Vapi: Remember to add placeholders in your agent templates if you want to use custom fields
Retry System Explained
The retry system automatically attempts to call leads again if the first call doesn't connect, helping you reach more people while respecting their time.
How Retry Works
- First Call Attempt: Lead is called
- If Unsuccessful: Status changes to "retry" and system waits for retry delay
- After Delay: Status changes to "pending" for next attempt
- Repeat: Until successful OR max attempts reached
Retry Delay Configuration
Where to Set: Settings → Calling Configuration
Options:
- •Minimum: 1 hour
- •Maximum: 168 hours (7 days)
- •Default: Usually 1-2 hours
What It Means: Longer delays = fewer calls per day, but less intrusive
Maximum Call Attempts
Where to Set: Settings → Calling Configuration
What It Means: System will try calling this many times before giving up
Example: If set to 3, system tries 3 times total. After max attempts, lead status changes to "completed" (even if never answered)
When Leads Are Retried
Automatic Retries Happen For
- ✓No answer
- ✓Busy signal
- ✓Voicemail
- ✓Temporary network errors
- ✓Other temporary failures
Leads Are NOT Retried For
- ✗Invalid phone number (marked "failed")
- ✗Phone doesn't exist (marked "failed")
- ✗Other permanent errors
Retry Status Visibility
In the lead details panel, you can see:
Best Practices
Phone Number Management
- Always Use E.164 Format: Start with
+followed by country code - Verify Before Uploading: Check phone numbers are valid and include country codes
- Handle Invalid Numbers: Check "Failed" status leads regularly, fix phone numbers, and change status back
Lead Information
- Complete Data: Fill in as much information as possible - more data means better AI conversations
- Custom Fields: Use for important information (address, job title, product interest, etc.)
Calling Schedule
- Set Appropriate Hours: Respect leads' time zones, avoid too early or too late
- Retry Delay: Start with 1-2 hours for faster follow-up, increase to 24+ hours for less frequency
- Max Attempts: 2-3 attempts usually sufficient - balance persistence with respect
Provider Selection
Choose Retell If
- ✓You want all lead data automatically available
- ✓You don't want to manage message templates
- ✓You prefer simpler configuration
Choose Vapi If
- ✓You want full control over message content
- ✓You want to customize exactly what information is shared
- ✓You prefer template-based configuration
Troubleshooting
Lead Stuck in "Pending"
Possible Causes:
- • Auto-calling is disabled
- • Outside of calling hours (if schedule is set)
- • No agent selected
- • System has reached max concurrent calls
Solutions:
- Check Settings → Auto-calling is enabled
- Verify calling schedule allows calls now
- Ensure an agent is selected
- Wait for current calls to complete
Lead Stuck in "In-Progress"
Possible Causes:
- • Call is actually still happening
- • Call completed but webhook hasn't updated status
- • System error
Solutions:
- Wait 5-10 minutes (calls can take time)
- Check call history to see if call completed
- System automatically cleans up stale "in-progress" leads after 2 hours
Lead Marked as "Failed"
Possible Causes:
- • Invalid phone number format
- • Phone number doesn't exist
- • Permanent error from provider
Solutions:
- Check lead details for error message
- Fix phone number format (must be E.164:
+countrycode+number) - Verify phone number is correct
- Change status back to "pending" after fixing
Lead Not Retrying
Possible Causes:
- • Retry delay hasn't passed yet
- • Maximum attempts already reached
- • Lead is in "failed" status (won't retry)
Solutions:
- Check "Time Until Next Retry" in lead details
- Verify lead hasn't reached max attempts
- If in "failed" status, fix the issue and manually change to "pending"
Custom Fields Not Working (Vapi)
Possible Causes:
- • Custom field not referenced in templates
- • Wrong placeholder syntax
- • Field name doesn't match
Solutions:
- Add
{{your_field_name}}to first message or system prompt - Check field name matches exactly (case-sensitive)
- Verify custom field has data for the lead
Custom Fields Not Working (Retell)
Possible Causes:
- • Custom field name has special characters
- • Field value is empty
Solutions:
- Custom fields should work automatically - check field has data
- Use simple field names (letters, numbers, underscores)
- Verify custom field is saved for the lead
Understanding Error Messages
Common Error Types:
- • Invalid phone number format (E.164 required)
- • Phone number not registered in account
- • Agent configuration errors
- • API key invalid or missing
- • Rate limit exceeded
Solutions:
- Check the Error Classification Guide section for detailed explanations
- Verify phone numbers are in E.164 format:
+14155551234 - Check API keys in environment variables
- Verify agent configuration in provider dashboard
- For rate limits: wait for automatic retry or upgrade your plan
Provider-Specific Errors (Vapi/Retell)
Common Provider Errors:
- • "Invalid phone number format" - Check E.164 format
- • "Agent not found" - Verify agent ID
- • "Rate limit exceeded" - Too many calls
- • "Server error" - Provider issue (auto-retries)
Solutions:
- See the Error Classification Guide for provider-specific troubleshooting
- Check Vapi/Retell dashboard for configuration issues
- Verify phone numbers are registered in your account
- Review API key permissions and validity
Error Classification Guide
What is Error Classification?
When your system makes phone calls through Vapi or Retell, sometimes things go wrong. The Error Classifier automatically analyzes these errors and decides whether to mark the lead as failed (permanent problem) or retry the call later (temporary problem). This helps you avoid wasting time on phone numbers that will never work, while still retrying calls that failed due to temporary issues like network problems.
Understanding Error Types
Permanent Errors
❌ Stop TryingThese errors mean something is fundamentally wrong and won't fix itself. The system marks the lead as "failed" so you can focus on other leads.
What happens:
- • Lead status changes to "failed"
- • No more automatic retries
- • You'll see the specific reason in the error message
Common causes:
- • Invalid phone number format
- • Phone number doesn't exist
- • API key is invalid or missing
- • Agent/assistant not configured properly
- • Phone number not registered in your account
Temporary Errors
⏳ Will RetryThese errors are short-term problems that might resolve themselves. The system will automatically retry the call later.
What happens:
- • Lead stays in the queue
- • System retries automatically (with increasing delays)
- • No manual intervention needed
Common causes:
- • Rate limiting (too many calls too quickly)
- • Server errors on the provider's side
- • Network or connection issues
- • Unknown errors (defaults to temporary for safety)
Vapi Provider Errors
Phone Number Errors
"Invalid lead phone number format"
What it means: The phone number you're trying to call isn't formatted correctly.
Common causes:
- • Missing country code (e.g., using
5551234567instead of+15551234567) - • Using incorrect format (must be E.164 format:
+[country code][number]) - • Contains invalid characters (spaces, dashes, parentheses in wrong places)
How to fix:
- 1. Check the phone number format in your CSV or lead data
- 2. Ensure it starts with
+followed by country code and number - 3. Remove any spaces, dashes, or special characters
- 4. Example:
+14155551234(correct) vs415-555-1234(incorrect)
"Phone number not registered in account"
What it means: The phone number you're trying to use as the caller (your agent's number) isn't set up in your Vapi account.
How to fix:
- 1. Go to your Vapi dashboard
- 2. Buy or register a phone number
- 3. Update your agent configuration with the correct phone number ID
Agent Configuration Errors
"Agent phone number configuration error"
What it means: Your agent isn't properly configured with a phone number to call from.
How to fix:
- 1. Check your agent settings in Vapi dashboard
- 2. Ensure a phone number is assigned to the agent
- 3. Verify the phone number ID is correct in your configuration
"Agent or assistant configuration not found"
What it means: The agent or assistant ID you're using doesn't exist in your Vapi account.
How to fix:
- 1. Verify the agent ID in your system settings
- 2. Check that the agent exists in your Vapi dashboard
- 3. Update the configuration with the correct agent ID
API Key Errors
❌ Permanent"API key is invalid or missing"
What it means: Your Vapi API key isn't working or isn't configured.
How to fix:
- 1. Check your environment variables (
VAPI_API_KEY) - 2. Generate a new API key from Vapi dashboard if needed
- 3. Ensure the API key has proper permissions
- 4. Restart your application after updating the key
Network & Server Errors
"Rate limit exceeded"
What it means: You've made too many calls in a short time. Vapi has limits on how many calls you can initiate per minute/hour.
What happens:
Temporary error - system will retry automatically
How to handle:
- • Wait for the system to retry (it uses exponential backoff)
- • Consider upgrading your Vapi plan for higher limits
- • Spread out your call initiation times
"Server error" (5xx codes)
What it means: Vapi's servers are having issues.
What happens:
Temporary error - system will retry automatically
How to handle:
- • System will retry automatically
- • Check Vapi status page if issues persist
- • No action needed on your part
"Network or connection error"
What it means: Your server couldn't reach Vapi's servers.
What happens:
Temporary error - system will retry automatically
How to handle:
- • Check your internet connection
- • System will retry automatically
- • No action needed on your part
Retell Provider Errors
Phone Number Errors
"Invalid phone number format"
What it means: The phone number doesn't meet Retell's requirements.
Common causes:
- • Not in E.164 format
- • Missing country code
- • Invalid characters
How to fix:
- 1. Format:
+[country code][number](e.g.,+14155551234) - 2. No spaces, dashes, or parentheses
- 3. Must start with
+
"Phone number not found" or "not a valid number"
What it means: The phone number doesn't exist or isn't a real phone number.
How to fix:
- 1. Verify the phone number is correct
- 2. Check if the number has been disconnected
- 3. Contact the lead to get a different number
Agent Configuration Errors
"Agent phone number configuration error"
What it means: Your Retell agent doesn't have a phone number configured to call from.
How to fix:
- 1. Go to Retell dashboard
- 2. Configure your agent with a phone number
- 3. Save the agent settings
"Agent or assistant not found"
What it means: The agent ID in your configuration doesn't exist in Retell.
How to fix:
- 1. Verify the agent ID in your settings
- 2. Check Retell dashboard for the correct agent ID
- 3. Update your configuration
API Key Errors
❌ Permanent"API key is invalid or missing"
What it means: Your Retell API key isn't working.
How to fix:
- 1. Check
RETELL_API_KEYenvironment variable - 2. Get a new API key from Retell dashboard
- 3. Ensure the key has necessary permissions
- 4. Restart your application
Network & Server Errors
"Rate limit exceeded"
What it means: You've hit Retell's rate limits.
What happens:
Temporary error - automatic retry
How to handle:
- • System will retry with delays
- • Consider upgrading your plan for higher limits
- • Space out your call initiations
"Server error" (5xx codes)
What it means: Retell is having server issues.
What happens:
Temporary error - automatic retry
How to handle:
- • System will retry automatically
- • Check Retell status if issues continue
- • No action needed
"Network or connection error"
What it means: Can't reach Retell's servers.
What happens:
Temporary error - automatic retry
How to handle:
- • Check your internet connection
- • System will retry automatically
- • No action needed
General Troubleshooting Steps
Identify the Error Type
Check if it's permanent (take action) or temporary (auto-retry)
Read the Specific Reason
Each error includes a specific reason telling you exactly what's wrong
Follow the Fix
Use the sections above to find the specific fix for your error
Prevent Future Errors
Follow best practices to avoid similar issues
Best Practices to Prevent Errors
1. Phone Number Format
- • Always use E.164 format:
+14155551234 - • Validate numbers before importing
- • Clean data before CSV import
2. API Keys
- • Store in environment variables
- • Rotate keys periodically
- • Use separate keys for development/production
3. Agent Configuration
- • Test agent setup before bulk calling
- • Verify phone numbers are registered
- • Keep agent IDs updated
4. Rate Limiting
- • Check provider rate limits
- • Space out call initiations
- • Monitor your usage
Frequently Asked Questions
Getting Help
If you're still having trouble after following this guide:
- Check the logs for the original error details
- Verify your configuration in the provider dashboard
- Test with a single lead before bulk processing
- Contact support with the specific error message
The error classifier is designed to make troubleshooting easier, but sometimes provider-specific issues require looking at their documentation or contacting their support.
Summary
Permanent errors
Fix the issue, then you can retry manually
Temporary errors
System retries automatically
Phone numbers
Always use E.164 format (+14155551234)
API keys
Check environment variables if authentication fails
Agent setup
Verify configuration in provider dashboard
Rate limits
System handles automatically with retries
The error classifier helps you focus on leads that can actually work, saving you time and frustration!
Quick Reference
Voice Throughput Calculator
Estimate your calling capacity based on concurrency, call duration, and batch frequency. Plan your lead processing strategy and understand infrastructure limits before scaling your campaigns.
Status Meanings
| Status | Meaning | Action Needed |
|---|---|---|
| Pending | Ready to call | None - system will call automatically |
| In-Progress | Call happening | Wait for call to complete |
| Retry | Waiting for retry delay | None - system will retry automatically |
| Completed | Finished calling | Review call results |
| Failed | Permanent error | Fix issue, change status to pending |
Phone Number Format
✅ Correct
+12125551234+447911123456+8801977317066❌ Wrong
212-555-1234(212) 555-123401977317066Error Messages Quick Reference
| Permanent Errors (Action Required) | What It Means | What To Do |
|---|---|---|
| Invalid lead phone number format | Phone number format is wrong | Fix the format to E.164 (+14155551234) |
| Phone number not registered | Your caller ID isn't set up | Register phone number in provider dashboard |
| Agent or assistant not found | Agent doesn't exist | Check agent ID in settings |
| API key is invalid or missing | Authentication failed | Check/update API key |
| Phone number does not exist | Lead's number is invalid | Get correct number from lead |
| Temporary Errors (Auto-Retry) | What It Means | What Happens |
|---|---|---|
| Rate limit exceeded | Too many calls too fast | System waits and retries |
| Server error | Provider is having issues | System retries automatically |
| Network or connection error | Can't reach provider | System retries automatically |
| Unknown error | Unexpected issue | System retries for safety |
Provider Comparison
| Feature | Retell | Vapi |
|---|---|---|
| Custom Fields | Automatic | Template-based |
| Configuration | Simple | More control |
| Data Availability | All fields always available | Only referenced fields |
| Template Required | No | Yes (for custom fields) |