Skip to main content

Outbound Calls

Outbound calls are phone calls initiated by Crew to external phone numbers. Use them for appointment reminders, payment follow-ups, lead qualification, surveys, and more.

Use Cases

Use CaseDescription
Appointment RemindersConfirm upcoming appointments
Payment CollectionRemind about outstanding balances
Lead Follow-upQualify and nurture leads
Survey CollectionGather feedback post-service
Re-engagementReach out to inactive customers
NotificationsDeliver time-sensitive information

Making Outbound Calls

Single Call via API

curl -X POST https://api.usecrew.ai/v1/calls/outbound \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+14155551234",
    "agent_id": "agent_sarah",
    "context": {
      "customer_name": "John",
      "appointment_date": "2024-01-15",
      "appointment_time": "2:00 PM"
    },
    "pathway_id": "appointment_reminder"
  }'

Response

{
  "call_id": "call_abc123",
  "status": "initiated",
  "to": "+14155551234",
  "agent_id": "agent_sarah",
  "created_at": "2024-01-14T10:30:00Z"
}

Single Call via Dashboard

1

Navigate to Calls

Open your Crew and go to the Calls section
2

Click New Outbound Call

Select the outbound call option
3

Enter Details

Provide phone number, select agent, and add context
4

Review and Call

Confirm details and initiate the call

Call Configuration

Agent Selection

Choose which agent handles the outbound call:
{
  "agent_id": "agent_sarah",
  "fallback_agent_id": "agent_marcus"
}

Context Variables

Pass data to personalize the conversation:
{
  "context": {
    "customer_name": "John Smith",
    "appointment_date": "January 15, 2024",
    "appointment_time": "2:00 PM",
    "provider_name": "Dr. Johnson",
    "office_location": "Main Street Office"
  }
}
The agent uses these in conversation:
"Hi John, this is Sarah calling from Acme Medical to confirm 
your appointment with Dr. Johnson on January 15th at 2 PM."

Pathway Assignment

Specify which conversation flow to use:
{
  "pathway_id": "appointment_confirmation",
  "pathway_version": "v2"
}

Call Scheduling

Immediate Calls

Calls are placed immediately by default:
{
  "schedule": "immediate"
}

Scheduled Calls

Schedule calls for a specific time:
{
  "schedule": {
    "type": "scheduled",
    "datetime": "2024-01-15T14:00:00Z",
    "timezone": "America/New_York"
  }
}

Time Window Calls

Place calls within a preferred window:
{
  "schedule": {
    "type": "window",
    "start": "09:00",
    "end": "17:00",
    "timezone": "America/New_York",
    "preferred_days": ["monday", "tuesday", "wednesday", "thursday", "friday"]
  }
}

Retry Logic

Configure behavior when calls aren’t answered:
{
  "retry": {
    "enabled": true,
    "max_attempts": 3,
    "interval_minutes": 60,
    "retry_on": ["no_answer", "busy", "voicemail"]
  }
}

Retry Outcomes

OutcomeBehavior
answeredStop retrying, mark success
no_answerRetry per configuration
busyRetry per configuration
voicemailLeave message or retry
invalid_numberStop retrying, mark failed

Voicemail Handling

Configure voicemail behavior:
{
  "voicemail": {
    "detection": true,
    "action": "leave_message",
    "message": "Hi {{customer_name}}, this is Sarah from Acme Medical calling to confirm your appointment on {{appointment_date}}. Please call us back at 555-123-4567."
  }
}

Voicemail Options

ActionDescription
leave_messageLeave a pre-configured message
hang_upEnd call without message
retry_laterHang up and add to retry queue

Caller ID

Control what number displays to the recipient:
{
  "caller_id": {
    "number": "+14155551234",
    "name": "Acme Medical"
  }
}
Caller ID spoofing regulations vary by country. Only use numbers you own or have authorization to use.

Call Outcomes

Track what happens on each call:
OutcomeDescription
completedCall answered, conversation completed
confirmedAppointment/action confirmed by recipient
declinedRecipient declined or cancelled
voicemailMessage left on voicemail
no_answerCall not answered after all attempts
busyLine busy after all attempts
failedTechnical failure
invalidInvalid phone number

Events and Webhooks

Monitor outbound calls via webhooks:
{
  "webhooks": {
    "outbound_call.initiated": "https://yourapp.com/hooks/call-initiated",
    "outbound_call.answered": "https://yourapp.com/hooks/call-answered",
    "outbound_call.completed": "https://yourapp.com/hooks/call-completed",
    "outbound_call.failed": "https://yourapp.com/hooks/call-failed"
  }
}

Event Payload

{
  "event": "outbound_call.completed",
  "call_id": "call_abc123",
  "to": "+14155551234",
  "outcome": "confirmed",
  "duration": 127,
  "transcript": "...",
  "metadata": {
    "appointment_confirmed": true
  }
}

Rate Limits

PlanCalls per MinuteConcurrent Calls
Starter105
Professional6025
EnterpriseCustomCustom

Compliance

Outbound calling is subject to regulations including TCPA (US), GDPR (EU), and local laws. Ensure you have proper consent before placing automated calls.

Best Practices

  • Obtain consent — Only call numbers with explicit opt-in
  • Honor opt-outs — Immediately stop calling anyone who requests it
  • Respect time restrictions — Don’t call outside appropriate hours
  • Identify yourself — Always state who is calling and why
  • Maintain records — Keep documentation of consent

Analytics

Track outbound call performance:
MetricDescription
Attempt RateCalls attempted vs. scheduled
Connect RateCalls answered vs. attempted
Completion RateCalls completed vs. connected
Outcome DistributionBreakdown by outcome type
Average DurationMean call length

Next Steps

  • Bulk Calls — Scale to hundreds or thousands of calls
  • Call Routing — Handle transfers during outbound calls
  • Webhooks — Receive real-time call updates