Guides

Outbound Calling

Initiate AI-powered outbound phone calls to reach customers proactively, one at a time or in batch campaigns.

| View as Markdown
Hunter Hodnett
Hunter Hodnett CPTO at Chipp
| 1 min read
# voice # phone # outbound # campaigns # telephony

Outbound calling lets your voice agent place calls to phone numbers instead of waiting for inbound calls. Your AI dials the number, the recipient picks up, and a natural voice conversation begins — powered by the same system prompt, knowledge base, and tools as your inbound voice agent.

⚠️

Outbound calling requires a Studio Pro plan or higher with voice agents enabled. You also need a phone number assigned to your app.

How It Works

Outbound calls use SIP (Session Initiation Protocol) through LiveKit to place real phone calls. When you trigger an outbound call:

  1. Chipp creates a voice room and dials the recipient via your SIP trunk
  2. The recipient’s phone rings with your configured caller ID
  3. When they answer, your voice agent joins the call and begins the conversation
  4. The agent uses the same voice, greeting, system prompt, and tools as inbound calls
  5. The call is recorded as a chat session you can review in your Chats page

Each call has a configurable maximum duration (default 10 minutes, up to 60 minutes).

Inbound vs. Outbound

InboundOutbound
Who initiatesThe user calls your numberYour AI calls the user
Use caseSupport, information, bookingFollow-ups, reminders, campaigns
Phone numberRequired (user dials it)Required (used as caller ID)
Voice configSameSame
Tools & knowledgeSameSame

Single Outbound Call

To place a single outbound call, use the API endpoint:

plaintext
POST /api/applications/:id/voice/outbound-call
json
{
  "phoneNumber": "+15551234567",
  "callerIdName": "Acme Support",
  "maxDurationSeconds": 300,
  "metadata": {
    "recipientName": "Jane Smith",
    "reason": "appointment-reminder"
  }
}
FieldRequiredDescription
phoneNumberYesE.164 format (+1...). US 10-digit numbers are auto-prefixed.
callerIdNameNoName displayed on caller ID. Defaults to “AI Assistant”.
maxDurationSecondsNoMax call length (60—3600). Defaults to 600 (10 min).
metadataNoCustom key-value data attached to the call record.

The response includes a callId, roomName, and sipCallId you can use for tracking.

Batch Calling

For calling multiple recipients, use the batch endpoint:

plaintext
POST /api/applications/:id/voice/outbound-batch
json
{
  "recipients": [
    { "phoneNumber": "+15551234567", "metadata": { "name": "Jane" } },
    { "phoneNumber": "+15559876543", "metadata": { "name": "Mike" } }
  ],
  "callerIdName": "Acme Reminders",
  "callsPerMinute": 5
}
FieldRequiredDescription
recipientsYesArray of phone numbers + optional metadata (max 1,000).
callsPerMinuteNoRate limit for placing calls (1—60). Defaults to 5.

Small batches (10 or fewer recipients) are placed immediately with a short delay between each call. Larger batches create a campaign that processes calls in a managed queue.

Campaigns (CSV Upload)

For large-scale outreach, upload a CSV file of recipients:

plaintext
POST /api/applications/:id/voice/outbound-campaign
json
{
  "csvContent": "phone,name,appointment_date\n+15551234567,Jane Smith,2026-04-01\n+15559876543,Mike Jones,2026-04-02",
  "callerIdName": "Acme Scheduling",
  "callsPerMinute": 10
}

CSV Format

Your CSV must include a header row with a phone number column. Accepted column names:

  • phone
  • phonenumber
  • phone_number
  • number

All other columns are attached as metadata to each call, so the AI has context about who it is calling.

Example CSV:

csv
phone,name,appointment_date,location
+15551234567,Jane Smith,2026-04-01,Downtown Office
+15559876543,Mike Jones,2026-04-02,Midtown Clinic

Campaign Status

Campaigns track progress through these statuses:

StatusMeaning
pendingCreated, not yet started
runningCalls are being placed
pausedTemporarily stopped
completedAll calls finished
cancelledManually stopped

Each recipient is independently tracked as pending, queued, calling, completed, failed, or no-answer.

List your campaigns:

plaintext
GET /api/applications/:id/voice/campaigns?limit=50&offset=0

Phone Number Format

Phone numbers are normalized to E.164 format before dialing:

  • (555) 123-4567 becomes +15551234567 (US assumed for 10-digit numbers)
  • 1-555-123-4567 becomes +15551234567
  • +44 20 7946 0958 stays as-is (international)

Numbers must be between 10 and 15 digits. Invalid numbers are rejected before the call is placed.

Use Cases

Use CaseHow It Works
Appointment remindersUpload a CSV of patients with dates. The AI calls each one to confirm or reschedule.
Follow-up callsAfter a support ticket, the AI calls to check if the issue was resolved.
Lead qualificationThe AI calls inbound leads to ask qualifying questions and schedule demos.
Payment remindersFriendly automated calls about upcoming or past-due invoices.
Survey collectionThe AI calls customers, asks survey questions, and records responses.

Best Practices

System Prompt for Outbound

Add outbound-specific instructions to your system prompt:

plaintext
When making an outbound call:
- Introduce yourself and state the reason for calling immediately
- If you reach voicemail, leave a brief message with a callback number
- Be respectful of the recipient's time -- keep calls concise
- If asked, explain that this is an AI-powered call from [Company Name]

Rate Limiting

Start with a low callsPerMinute (3—5) and increase gradually. High call volumes may be flagged by carriers.

Metadata for Context

Pass recipient-specific data in the metadata field. The AI can reference this context during the conversation — for example, the recipient’s name, appointment date, or account status.

💡

Outbound calling pairs well with Heartbeat for scheduled proactive outreach. Configure Heartbeat to trigger outbound calls on a schedule instead of sending chat messages.

Troubleshooting

Calls not connecting?

  • Verify voice mode is enabled and a phone number is assigned
  • Check that the recipient’s phone number is valid E.164 format
  • Ensure your SIP outbound trunk is configured (contact support if unsure)

Recipient hears nothing?

  • Check your voice agent’s greeting configuration
  • Verify the voice selection is set (stock or cloned voice)
  • Review call records in the Chats page for errors

Campaign stuck in “pending”?

  • Large campaigns are processed asynchronously — allow time for the queue to start
  • Check that your plan supports outbound calling
ℹ️

For inbound call setup, see the Phone Numbers guide. For voice agent configuration, see Voice Agents.