Skip to main content

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 TypeDescription
Appointment RemindersConfirm upcoming appointments at scale
Payment CollectionsRemind customers about outstanding balances
Surveys & FeedbackGather responses from large groups
NotificationsDeliver important updates
Re-engagementReach out to dormant customers
Lead QualificationScreen and qualify sales leads

Creating a Campaign

Via Dashboard

1

Navigate to Campaigns

Go to your Crew and select OutboundCampaigns
2

Create New Campaign

Click New Campaign and name it
3

Upload Contact List

Upload a CSV with phone numbers and context data
4

Configure Settings

Set agent, schedule, retry logic, and limits
5

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"
    }
  }'

Contact List Format

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

FieldDescription
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
  }
}
PlanMax Calls/MinuteMax Concurrent
Starter105
Professional6025
EnterpriseCustomCustom

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

StateDescription
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:
PlanIncluded CallsAdditional Cost
Starter500/month$0.10/call
Professional5,000/month$0.08/call
EnterpriseCustomCustom

Next Steps