Skip to Content
DocumentationVoice AgentBatch Campaign Calling

Batch Campaign Calling

Upload a CSV file with customer contact information and let your AI agent call hundreds or thousands of leads automatically—perfect for reactivating old customers, seasonal campaigns, or bulk outreach.

What Is Batch Calling?

Batch calling lets you:

  • Upload a CSV with names, phone numbers, and service details
  • AI calls everyone automatically (pacing calls appropriately)
  • Each call is personalized based on CSV data
  • Track campaign performance in real-time
  • Review all call logs and book appointments at scale

Use cases:

  • 🔄 Reactivation campaigns - Call customers from last year to book maintenance
  • 📅 Seasonal outreach - Pre-winter furnace checks, spring AC tune-ups
  • 📞 Follow-up on quotes - Call everyone who requested a quote but didn’t book
  • 🎯 Targeted promotions - Offer discounts to specific customer segments

Performance:

  • Calls per hour: 20-60 (depending on configuration)
  • Connection rate: 50-70%
  • Booking rate: 15-30% (varies by campaign quality)

How It Works

Upload CSV File

Prepare a CSV file with customer data:

Required columns:

  • name - Customer’s full name
  • phone - Phone number (any format: 909-555-1234, +19095551234, etc.)

Optional columns:

  • service_title - Service to mention (e.g., “AC Maintenance”)
  • service_description - Context about the service
  • address - Customer’s address (useful for context)
  • last_service_date - When they last used your service
  • custom_field_1, custom_field_2, etc. - Any additional context

Example CSV:

name,phone,service_title,service_description,last_service_date John Smith,909-555-1234,AC Maintenance,Annual tune-up reminder,2023-05-15 Sarah Johnson,818-555-5678,Garage Door Repair,Spring replacement last year,2023-03-22 Mike Davis,310-555-9012,Plumbing,Water heater installation,2022-11-10

Configure Campaign

Set up your batch call campaign:

Campaign Name
e.g., “Spring 2024 AC Tune-Up Campaign”

Agent Selection
Choose which calling agent to use (or create a new one)

Main Goal
What should the AI accomplish on each call?

Example:

You're calling to offer our annual AC maintenance special. The customer had service with us last year. Offer to schedule their tune-up before summer and mention the $20 discount.

Calling Schedule

  • Start immediately - Begin calling as soon as you upload
  • Schedule for later - Start at a specific date/time
  • Business hours only - Only call during configured hours

Call Pacing

  • Slow: 10-15 calls/hour (gives you time to handle bookings)
  • Medium: 30-40 calls/hour (recommended)
  • Fast: 50-60 calls/hour (for large campaigns)

Important: Faster pacing means more simultaneous calls. Make sure your calendar can handle multiple bookings in a short time window.

Launch Campaign

  1. Review campaign settings
  2. Upload CSV file
  3. Click “Start Campaign”
  4. AI begins calling immediately (or at scheduled time)

Monitor Progress

Track campaign in real-time:

  • Calls made - Total calls attempted
  • Calls connected - Number of people who answered
  • Voicemails left - Calls that went to voicemail
  • Appointments booked - Successful conversions
  • Callbacks requested - Leads who want you to call back
  • Not interested - Leads who declined

Review Results

After campaign completes:

  • Download full call logs (CSV export)
  • Listen to call recordings
  • Review transcripts
  • Export booked appointments
  • Follow up on callback requests

CSV Format & Best Practices

Required Columns

name

  • Full name works best: “John Smith”
  • First name only is acceptable: “John”
  • Avoid: “Mr. Smith” or initials “J.S.”

phone

  • Any format accepted: 909-555-1234, +19095551234, (909) 555-1234
  • US numbers only (for now)
  • Mobile numbers have higher connection rates than landlines

service_title
Helps the AI personalize the opening:

  • “AC Maintenance”
  • “Garage Door Repair”
  • “Water Heater Replacement”

service_description
Add context for better conversations:

  • “Customer had spring replacement last March”
  • “Annual tune-up - customer is on our maintenance plan”
  • “Emergency service in 2023 - water heater failure”

last_service_date
When they last used your service:

  • Format: YYYY-MM-DD (e.g., 2023-05-15)
  • AI can reference: “It’s been about a year since we serviced your AC…”

Custom Variables

You can add any custom columns and reference them in your campaign goal:

Example CSV:

name,phone,service_title,discount_code,preferred_day John Smith,909-555-1234,AC Tune-Up,SPRING20,Saturday Sarah Johnson,818-555-5678,AC Tune-Up,SPRING20,Any weekday

Campaign goal using custom variables:

Call to offer AC tune-up with discount code {{discount_code}}. Customer prefers appointments on {{preferred_day}}.

Pro tip: Use custom variables for personalization - customers are more likely to book when the call feels tailored to them.


Call PersonalizationEach call is personalized based on CSV data.

Generic opening (no data):

“Hi, this is Sarah from ABC HVAC. How are you today?”

Personalized opening (with CSV data):

“Hi John, this is Sarah from ABC HVAC. I’m calling because it’s been about a year since we did your AC maintenance, and I wanted to see if you’d like to schedule your tune-up before summer.”

What makes personalized calls convert better:

  • ✅ Uses customer’s name
  • ✅ References past service
  • ✅ Provides context for why you’re calling
  • ✅ Feels like a thoughtful reminder, not a cold call

Campaign Types & Examples

1. Annual Maintenance Reminders

Goal: Reactivate customers who had service last year

CSV columns needed:

  • name, phone, service_title, last_service_date

Campaign goal:

You're calling customers who had AC maintenance last year. Remind them it's time for their annual tune-up and offer to schedule before the summer rush. Mention we have availability this week with a $20 discount for repeat customers.

Expected results:

  • Connection rate: 60-70%
  • Booking rate: 25-35%

2. Seasonal Promotions

Goal: Offer limited-time discount to past customers

CSV columns needed:

  • name, phone, service_title, discount_code

Campaign goal:

You're calling to offer our Spring Special: $50 off any garage door service. Customer's discount code is {{discount_code}}. If interested, schedule an appointment within the next 2 weeks.

Expected results:

  • Connection rate: 55-65%
  • Booking rate: 15-25%

3. Quote Follow-Up

Goal: Convert quotes into bookings

CSV columns needed:

  • name, phone, service_title, quote_amount, quote_date

Campaign goal:

You're following up on a quote for {{service_title}} provided on {{quote_date}} for ${{quote_amount}}. Ask if they have any questions and if they'd like to schedule the work.

Expected results:

  • Connection rate: 70-80% (they requested the quote)
  • Booking rate: 30-40%

4. Referral Outreach

Goal: Thank customers for referrals and offer discount

CSV columns needed:

  • name, phone, referred_by, discount_amount

Campaign goal:

You're calling to thank the customer for being referred by {{referred_by}}. Offer a ${{discount_amount}} new customer discount and ask if they'd like to schedule service.

Expected results:

  • Connection rate: 65-75%
  • Booking rate: 35-45% (warm leads from referrals)

Real-Time Campaign Monitoring

Dashboard Metrics

While your campaign is running, view:

Call Status Breakdown:

  • Connected - AI spoke with customer (60%)
  • 📞 Voicemail - Left message (25%)
  • No Answer - Rings but no pickup (10%)
  • 🚫 Invalid Number - Number disconnected or wrong (5%)

Outcome Tracking:

  • 📅 Appointments Booked - Successful bookings
  • 📝 Callback Requested - Customer wants callback
  • 🔔 Interested but No Commitment - Positive response, no booking yet
  • Not Interested - Customer declined
  • Wrong Number / Wrong Person - Bad data

Live Updates:

  • Calls are logged in real-time
  • See transcripts as calls complete
  • Appointments sync to calendar immediately

Handling Results

Appointments Booked

What happens:

  • AI books appointment during call
  • Syncs to your calendar (Cal.com, FieldPulse, GoHighLevel)
  • Customer receives confirmation text/email
  • You see booking in dashboard

Action needed: None! Show up to the appointment.


Callback Requested

What happens:

  • Customer says “call me back later” or “I have to check my schedule”
  • AI logs the request
  • Lead marked as “Callback Requested”

Action needed:

  1. Review callback list in dashboard
  2. Manually call customer back
  3. Or: Create a follow-up campaign 48 hours later

Voicemails Left

What happens:

  • AI detects voicemail
  • Leaves configured message
  • Marked as “Voicemail” in call log

Action needed:

  • Wait 24-48 hours for customer to call back
  • Or: Create follow-up campaign with 2nd attempt

Not Interested

What happens:

  • Customer declines or says “not interested”
  • AI politely ends call
  • Lead marked as “Not Interested”

Action needed:

  • Add to “Do Not Call” list
  • Remove from future campaigns

Campaign Analytics

After campaign completes, download detailed reports:

Call Summary Report (CSV)

Columns include:

  • Name, Phone, Call Status, Call Duration
  • Outcome (booked, callback, not interested, etc.)
  • Appointment Date/Time (if booked)
  • Transcript Summary
  • Customer Sentiment

Performance Metrics

Connection Rate:

Connected Calls / Total Calls × 100 Example: 300 connected / 500 total = 60% connection rate

Booking Rate:

Appointments Booked / Connected Calls × 100 Example: 75 booked / 300 connected = 25% booking rate

ROI Calculation:

Revenue from Bookings / Campaign Cost Example: 75 bookings × $200 avg = $15,000 revenue Campaign cost: $200 (calling fees) = 75x ROI

Best Practices

✅ Do This

  • Clean your data - Remove duplicates, invalid numbers
  • Segment your list - Don’t call everyone the same way
  • Personalize with variables - Use custom CSV columns
  • Test with small batch first - 50-100 leads before scaling
  • Call during business hours - 10 AM - 6 PM, Mon-Fri
  • Review first 10-20 calls - Make sure AI is performing well
  • Follow up on callbacks - Don’t let warm leads go cold

❌ Avoid This

  • Don’t upload bad data - Verify phone numbers first
  • Don’t spam customers - Limit campaigns to 1-2 per year per customer
  • Don’t call outside business hours - Respect customers’ time
  • Don’t use generic goals - Personalize the campaign message
  • Don’t ignore voicemails - Consider 2nd attempt after 48 hours
  • Don’t skip testing - Always test with small batch first

Compliance & Ethics

Do Not Call (DNC) Registry

Your responsibility:

  • Only call customers you have an existing business relationship with
  • Honor DNC requests immediately
  • Maintain your own “Do Not Call” list

NZ Leads provides:

  • Ability to upload DNC list (customers are automatically skipped)
  • One-click “Add to DNC” from call logs

Call Recording Disclosure

All calls include automatic disclosure where required by law:

“This call may be recorded for quality assurance.”

Recording compliance:

  • Calls are recorded in states that allow one-party consent
  • Two-party consent states receive disclosure at start of call

TCPA Compliance

Best practices to stay compliant:

  • Only call customers with prior business relationship
  • Call during reasonable hours (8 AM - 9 PM local time)
  • Honor opt-out requests immediately
  • Maintain accurate DNC list

Disclaimer: You are responsible for ensuring your campaigns comply with federal and state regulations. Consult with legal counsel if you’re unsure.


Pricing

Batch calling costs:

  • Per-minute rate: $1/minute for all calls
  • Phone number: $10/month (if you need a dedicated outbound number)

Example campaign cost:

  • 500 leads
  • 60% connection rate = 300 calls connected
  • 40% voicemail rate = 200 voicemails (shorter calls)
  • Average 3 min per connected call, 30 sec per voicemail
  • Total minutes: (300 × 3) + (200 × 0.5) = 1,000 minutes
  • Cost: 1,000 min × $1/min = $1,000 for 500-lead campaign

ROI if you book 75 appointments at $200 avg value:

  • Revenue: $15,000
  • Cost: $1,000
  • ROI: 15x return

Troubleshooting

Low Connection Rate (Under 40%)

Common causes:

  • Calling outside business hours
  • Old/stale phone numbers
  • Landlines instead of mobile numbers

Solutions:

  • ✅ Call 10 AM - 6 PM, Tue-Thu (best days)
  • ✅ Clean your list (remove disconnected numbers)
  • ✅ Use mobile numbers when available

Low Booking Rate (Under 10%)

Common causes:

  • Generic/impersonal campaign goal
  • Calling wrong audience
  • Offer not compelling

Solutions:

  • ✅ Personalize with CSV variables
  • ✅ Segment list by service type
  • ✅ Add urgency or discount to offer
  • ✅ Review call transcripts to see objections

High “Not Interested” Rate

Common causes:

  • Too salesy approach
  • Calling too frequently
  • Wrong audience

Solutions:

  • ✅ Adjust campaign goal to be more helpful, less salesy
  • ✅ Only call customers with recent/relevant service
  • ✅ Add value (discount, seasonal tip, reminder)

Next Steps

  1. Prepare your CSV - Download template
  2. Create a calling agent - Getting Started →
  3. Launch test campaign - Start with 50-100 leads
  4. Review call logs - Call Logs & Analytics →
  5. Scale up - Run larger campaigns after testing

Questions? Contact support at support@nzleads.com or use the in-app chat for batch calling assistance.

Last updated on