Skip to main content
User can deploy AI agent to handle inbound phone calls. Inbound campaigns route incoming calls to AI agents.
User must create AI agent before setting up inbound campaign. See Create Your AI Agent.

What is Inbound Campaign?

Inbound campaign connects phone number to AI agent:
  • Receives incoming calls
  • Routes calls to assigned agent
  • Handles customer inquiries
  • Provides 24/7 availability
  • Supports multiple languages
Use Cases:
  • Customer support lines
  • Sales inquiries
  • Appointment scheduling
  • Information hotlines
  • Order status checks
  • Technical support

Create Inbound Campaign

Campaigns > create Campaign button User can create inbound campaign:
  1. Navigate to Campaigns section
  2. Click “Create Campaign” button
  3. Select campaign type

Step 1: Select Campaign Type

Campaigns > new campaign > campaign types User must select campaign type: Inbound Campaign:
  • For receiving incoming calls
  • Caller dials your phone number
  • AI agent answers automatically
  • Handles customer requests
Outbound Campaign: Select “Inbound” to continue.

Step 2: Campaign Configuration

Campaigns > new inbound campaign > step 1 User must configure campaign settings: Campaign Name:
  • Enter descriptive name
  • Example: “Customer Support Line”
  • Example: “Sales Inquiries”
  • Example: “Appointment Booking”
  • Helps identify campaign in dashboard
Select AI Agent:
  • Choose from created agents
  • Agent handles all incoming calls
  • Can change agent later
  • Each campaign uses one agent
Select Phone Number:
  • Choose from available phone numbers
  • Can be Callab managed number
  • Can be SIP trunk number
  • Can be BYOT (Bring Your Own Twilio)
  • See Phone Numbers
Phone Number Assignment:Each phone number can only be assigned to ONE inbound campaign at a time. If number is already in use, it will not appear in dropdown.
Configuration Example:
Campaign Name: Customer Support EN
AI Agent: Support Agent (English)
Phone Number: +14155552671
Click “Next” to continue.

Step 3: Webhook Configuration (Optional)

Campaigns > new inbound campaign > step 2 webhook unselected User can optionally configure webhook to receive call data: Without Webhook:
  • Campaign works without webhook
  • Call data visible in dashboard
  • No external notifications
  • Suitable for simple use cases
With Webhook: Campaigns > new inbound campaign > webhook selected and fields are selected User can enable webhook to send call data to external system: Enable Webhook Checkbox:
  • Toggle to enable webhook
  • Shows webhook configuration fields
Webhook URL:
  • Enter your webhook endpoint
  • Format: https://your-domain.com/webhook
  • Must be HTTPS (secure)
  • Receives POST requests
  • Callab sends call data here
Webhook Events: User can select which events trigger webhook: Call Started:
  • Fires when call begins
  • Includes caller information
  • Timestamp of call start
Call Ended:
  • Fires when call completes
  • Includes call duration
  • Final call status
Call Outcome:
  • Fires with extracted data
  • Includes post-call outcomes
  • Based on agent configuration
Select Fields to Send: User can choose which data fields to include in webhook: Caller Information:
  • Caller phone number
  • Caller name (if available)
  • Caller location
Call Details:
  • Call duration
  • Call timestamp
  • Call recording URL
  • Transcript text
Extracted Data:
  • Post-call outcomes
  • Custom extracted fields
  • Dynamic variable values
Webhook Payload Example:
{
  "event": "call_ended",
  "campaign_id": "camp_abc123",
  "campaign_name": "Customer Support EN",
  "call_id": "call_xyz789",
  "phone_number": "+14155552671",
  "caller_number": "+14085551234",
  "duration": 180,
  "timestamp": "2025-11-17T10:30:00Z",
  "recording_url": "https://...",
  "transcript": "...",
  "outcomes": {
    "issue_resolved": true,
    "customer_satisfaction": "high"
  }
}
Webhook Testing:User can test webhook in Callab dashboard. Test button sends sample payload to verify endpoint is working.
Webhook Best Practices:
  • Use HTTPS endpoints only
  • Respond with 200 status quickly
  • Process data asynchronously
  • Log all webhook requests
  • Handle retries gracefully
  • Verify webhook signatures
Click “Create” to launch campaign.

Campaign Created

Your inbound campaign is now live! AI agent will answer all incoming calls to the assigned phone number.
User can:
  • Test by calling phone number
  • View call logs in dashboard
  • Monitor call analytics
  • Update campaign settings
  • Change assigned agent
  • Modify webhook configuration

Managing Inbound Campaigns

View Campaigns:
  • Navigate to Campaigns section
  • See all active campaigns
  • Filter by type (inbound/outbound)
  • Search by name
Edit Campaign:
  • Click campaign name
  • Update any settings
  • Change AI agent
  • Modify webhook
  • Save changes
Pause Campaign:
  • Temporarily disable
  • Stops accepting calls
  • Can resume anytime
  • Useful for maintenance
Delete Campaign:
  • Permanently removes campaign
  • Phone number becomes available
  • Call history preserved
  • Cannot be undone

Testing Inbound Campaign

User should test inbound campaign before going live: Test Call:
  1. Use phone to call number
  2. AI agent should answer
  3. Have conversation
  4. Verify agent responds correctly
  5. Check call appears in dashboard
Verify Webhook:
  1. Make test call
  2. Check webhook endpoint
  3. Verify data received
  4. Confirm all fields present
  5. Test payload format
Quality Check:
  • Audio quality clear?
  • Agent understands speech?
  • Responses make sense?
  • Tools work correctly?
  • Webhook data accurate?
See Testing Guide for detailed testing methods.

Inbound Campaign Analytics

User can monitor campaign performance: Call Metrics:
  • Total calls received
  • Average call duration
  • Call success rate
  • Peak call times
  • Caller demographics
Agent Performance:
  • Response accuracy
  • Issue resolution rate
  • Customer satisfaction
  • Average handling time
  • Tool usage statistics
Webhook Deliveries:
  • Successful deliveries
  • Failed deliveries
  • Retry attempts
  • Response times

Multiple Inbound Campaigns

User can create multiple inbound campaigns: Separate Lines:
  • Different departments
  • Different languages
  • Different agents
  • Different purposes
Example Setup:
Campaign 1: Sales (English)
  - Number: +14155552671
  - Agent: Sales Agent EN
  - Hours: 9am-5pm PST

Campaign 2: Support (Spanish)
  - Number: +14155552672
  - Agent: Support Agent ES
  - Hours: 24/7

Campaign 3: Appointments
  - Number: +14155552673
  - Agent: Booking Agent
  - Hours: 8am-6pm PST

Phone Number Requirements

User must have phone number to create inbound campaign: Available Options:
  • Callab managed numbers
  • SIP trunk numbers
  • BYOT (Twilio) numbers
Setup Phone Number:
Number Availability:If you don’t see your phone number in dropdown:
  • Number may be assigned to another campaign
  • Number may not be active
  • Check Phone Numbers section
  • Ensure number is configured correctly

Webhook Integration Examples

CRM Integration:
// Send call data to CRM
app.post('/webhook', async (req, res) => {
  const { caller_number, outcomes } = req.body;

  // Update CRM contact
  await crm.updateContact(caller_number, {
    last_call: new Date(),
    call_outcome: outcomes
  });

  res.status(200).send('OK');
});
Slack Notifications:
// Send notification to Slack
app.post('/webhook', async (req, res) => {
  const { campaign_name, duration, outcomes } = req.body;

  await slack.sendMessage({
    channel: '#support-calls',
    text: `New call to ${campaign_name}\nDuration: ${duration}s\nOutcome: ${JSON.stringify(outcomes)}`
  });

  res.status(200).send('OK');
});
Database Logging:
// Log call to database
app.post('/webhook', async (req, res) => {
  await db.calls.insert({
    campaign_id: req.body.campaign_id,
    caller_number: req.body.caller_number,
    duration: req.body.duration,
    transcript: req.body.transcript,
    outcomes: req.body.outcomes,
    created_at: new Date()
  });

  res.status(200).send('OK');
});

Troubleshooting

Campaign not receiving calls:
  • Is campaign active (not paused)?
  • Is phone number assigned correctly?
  • Is phone number active?
  • Is agent configured correctly?
  • Check phone number settings
Webhook not receiving data:
  • Is webhook URL correct (HTTPS)?
  • Is webhook endpoint responding?
  • Are correct events selected?
  • Check webhook logs in dashboard
  • Verify firewall allows Callab IPs
Poor call quality:
  • Check phone number type
  • Test with different number
  • Verify network connection
  • Check SIP trunk configuration (if using)
  • Contact support
Agent not responding:
  • Is agent saved and published?
  • Test agent with web call first
  • Check agent prompt configuration
  • Verify agent language setting
  • Review agent logs

Best Practices

Campaign Setup:
  • Use descriptive campaign names
  • Assign appropriate agent for use case
  • Test thoroughly before going live
  • Configure webhooks for tracking
  • Monitor initial calls closely
Agent Selection:
  • Match agent language to callers
  • Ensure agent is fully configured
  • Test agent before assignment
  • Keep agent prompt updated
  • Review agent performance regularly
Webhook Configuration:
  • Use secure HTTPS endpoints
  • Select only needed events/fields
  • Implement proper error handling
  • Log all webhook deliveries
  • Monitor webhook failures
Monitoring:
  • Check call analytics daily
  • Review call recordings
  • Monitor webhook deliveries
  • Track agent performance
  • Gather customer feedback

Next Steps

After setting up inbound campaign:
  1. Test your campaign - Verify everything works
  2. Monitor call logs - Track incoming calls
  3. Review call recordings - Ensure quality
  4. Analyze outcomes - Measure success
  5. Optimize agent - Improve performance
Start with one test inbound campaign to familiarize yourself with the flow before deploying production campaigns.