Bulk Calls
Bulk calls allow you to place hundreds or thousands of outbound calls efficiently. Use them for appointment reminders, payment follow-ups, surveys, and notification campaigns.
Use Cases
Campaign Type Description Appointment Reminders Confirm upcoming appointments at scale Payment Collections Remind customers about outstanding balances Surveys & Feedback Gather responses from large groups Notifications Deliver important updates Re-engagement Reach out to dormant customers Lead Qualification Screen and qualify sales leads
Creating a Campaign
Via Dashboard
Navigate to Campaigns
Go to your Crew and select Outbound → Campaigns
Create New Campaign
Click New Campaign and name it
Upload Contact List
Upload a CSV with phone numbers and context data
Configure Settings
Set agent, schedule, retry logic, and limits
Review and Launch
Preview the campaign and start it
Via API
curl -X POST https://api.usecrew.ai/v1/campaigns \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "January Appointment Reminders",
"agent_id": "agent_sarah",
"pathway_id": "appointment_reminder",
"contacts": [
{
"phone": "+14155551111",
"context": {
"name": "John Smith",
"appointment_date": "January 15, 2024",
"appointment_time": "2:00 PM"
}
},
{
"phone": "+14155552222",
"context": {
"name": "Jane Doe",
"appointment_date": "January 15, 2024",
"appointment_time": "3:00 PM"
}
}
],
"schedule": {
"start": "2024-01-14T09:00:00Z",
"end": "2024-01-14T17:00:00Z",
"timezone": "America/New_York"
}
}'
CSV Upload
phone, name, appointment_date, appointment_time, provider
+14155551111, John Smith, January 15 2024, 2:00 PM, Dr. Johnson
+14155552222, Jane Doe, January 15 2024, 3:00 PM, Dr. Williams
+14155553333, Bob Wilson, January 16 2024, 10:00 AM, Dr. Johnson
Required Fields
Field Description phonePhone number (E.164 format preferred)
Optional Context Fields
Any additional columns become context variables available in your pathway:
"Hi {{name}}, this is a reminder about your appointment
with {{provider}} on {{appointment_date}} at {{appointment_time}}."
Campaign Configuration
Scheduling
Control when calls are placed:
{
"schedule" : {
"start" : "2024-01-14T09:00:00Z" ,
"end" : "2024-01-14T17:00:00Z" ,
"timezone" : "America/New_York" ,
"days" : [ "monday" , "tuesday" , "wednesday" , "thursday" , "friday" ],
"excluded_dates" : [ "2024-01-15" ]
}
}
Pacing
Control call rate:
{
"pacing" : {
"calls_per_minute" : 30 ,
"max_concurrent" : 10
}
}
Plan Max Calls/Minute Max Concurrent Starter 10 5 Professional 60 25 Enterprise Custom Custom
Retry Logic
Configure retry behavior for unanswered calls:
{
"retry" : {
"enabled" : true ,
"max_attempts" : 3 ,
"interval_hours" : 4 ,
"retry_on" : [ "no_answer" , "busy" , "voicemail" ]
}
}
Caller ID
Set the outgoing caller ID:
{
"caller_id" : {
"number" : "+14155550000" ,
"name" : "Acme Medical"
}
}
Campaign States
State Description draftCampaign created but not started scheduledWaiting for start time runningActively placing calls pausedTemporarily stopped completedAll calls attempted cancelledStopped before completion
Managing Campaign State
# Pause a running campaign
curl -X POST https://api.usecrew.ai/v1/campaigns/{campaign_id}/pause \
-H "Authorization: Bearer YOUR_API_KEY"
# Resume a paused campaign
curl -X POST https://api.usecrew.ai/v1/campaigns/{campaign_id}/resume \
-H "Authorization: Bearer YOUR_API_KEY"
# Cancel a campaign
curl -X POST https://api.usecrew.ai/v1/campaigns/{campaign_id}/cancel \
-H "Authorization: Bearer YOUR_API_KEY"
Monitoring Campaigns
Real-Time Dashboard
The campaign dashboard shows:
Progress (calls attempted / total)
Current status
Outcome breakdown
Active calls
Errors and failures
API Status
curl https://api.usecrew.ai/v1/campaigns/{campaign_id}/status \
-H "Authorization: Bearer YOUR_API_KEY"
{
"campaign_id" : "campaign_abc123" ,
"status" : "running" ,
"progress" : {
"total" : 1000 ,
"attempted" : 456 ,
"remaining" : 544 ,
"in_progress" : 8
},
"outcomes" : {
"completed" : 312 ,
"confirmed" : 289 ,
"declined" : 23 ,
"voicemail" : 87 ,
"no_answer" : 45 ,
"failed" : 12
},
"timing" : {
"started_at" : "2024-01-14T09:00:00Z" ,
"estimated_completion" : "2024-01-14T14:30:00Z"
}
}
Webhooks
Receive real-time updates:
{
"webhooks" : {
"campaign.started" : "https://yourapp.com/hooks/campaign-started" ,
"campaign.progress" : "https://yourapp.com/hooks/campaign-progress" ,
"campaign.completed" : "https://yourapp.com/hooks/campaign-completed" ,
"campaign.call_completed" : "https://yourapp.com/hooks/call-completed"
}
}
Progress Webhook
Sent periodically during campaign execution:
{
"event" : "campaign.progress" ,
"campaign_id" : "campaign_abc123" ,
"progress_percent" : 45.6 ,
"outcomes" : {
"completed" : 312 ,
"voicemail" : 87 ,
"no_answer" : 45
}
}
Results Export
Download complete results:
curl https://api.usecrew.ai/v1/campaigns/{campaign_id}/results \
-H "Authorization: Bearer YOUR_API_KEY" \
-o results.csv
Results CSV
phone, name, outcome, duration, confirmed, notes, completed_at
+14155551111, John Smith, completed, 45, true, Confirmed appointment, 2024-01-14T09:15:00Z
+14155552222, Jane Doe, voicemail, 12, false, Left message, 2024-01-14T09:16:00Z
+14155553333, Bob Wilson, no_answer, 0, false, No answer after 3 attempts, 2024-01-14T13:20:00Z
Compliance
Bulk calling is subject to strict regulations. Ensure compliance with TCPA (US), GDPR (EU), and local telemarketing laws.
Requirements
Consent — Only call numbers with documented opt-in
Time restrictions — Respect calling hour regulations
Do Not Call — Scrub against DNC registries
Opt-out — Honor opt-out requests immediately
Identification — Clearly identify who is calling
Compliance Configuration
{
"compliance" : {
"dnc_scrub" : true ,
"dnc_list_id" : "dnc_abc123" ,
"calling_hours" : {
"start" : "09:00" ,
"end" : "20:00" ,
"timezone" : "local"
},
"opt_out_handling" : {
"keywords" : [ "stop" , "unsubscribe" , "remove" ],
"action" : "add_to_dnc"
}
}
}
Best Practices
Test with a small batch before launching a large campaign. Verify outcomes match expectations.
Analyze when your audience is most likely to answer. Adjust schedule accordingly.
Include relevant data (names, dates, details) for natural, personalized conversations.
Watch early results for unexpected issues. Pause if something is wrong.
Immediately stop calling anyone who requests it. Update your DNC list.
Pricing
Bulk calls are billed per call attempt:
Plan Included Calls Additional Cost Starter 500/month $0.10/call Professional 5,000/month $0.08/call Enterprise Custom Custom
Next Steps