# Creating a Campaign

> Set up an outbound calling campaign with AI voice agents

Source: https://edesy.in/docs/voice-agent/campaigns

Campaigns let you make automated outbound calls to a list of phone numbers using your AI voice agents. Run targeted outreach at scale with real-time monitoring, intelligent retry logic, and detailed analytics.

> **Start a campaign:** [Open the Campaigns page](https://voice-agent.edesy.in/campaigns) to create and manage your voice call campaigns.

## Key Features

- **Automated Outbound Calls**: Call thousands of contacts with your AI agent
- **Contact List Integration**: Select existing contacts or upload new ones
- **Multi-Phone Distribution**: Use multiple phone numbers with load balancing
- **Real-time Monitoring**: Live SSE streaming of campaign progress
- **Intelligent Retries**: Automatic retry on no-answer, busy, or voicemail
- **Auto-Pause on Low Credits**: Campaigns pause automatically when credits run low
- **Scheduling**: Start campaigns immediately or schedule for later

## How It Works

```
┌──────────────────────────────────────────────────────────────┐
│                    Campaign Execution Flow                    │
├──────────────────────────────────────────────────────────────┤
│                                                               │
│   Create Campaign ──► Select Agent ──► Add Contacts           │
│                                              │                │
│                                              ▼                │
│   Configure Settings (concurrency, retries, schedule)         │
│                                              │                │
│                                              ▼                │
│   ┌─────────┐     ┌─────────────┐     ┌─────────────┐        │
│   │  DRAFT  │────►│  SCHEDULED  │────►│   RUNNING   │        │
│   └─────────┘     └─────────────┘     └─────────────┘        │
│        │                                     │                │
│        │              ┌──────────┐           │                │
│        └─────────────►│  PAUSED  │◄──────────┤                │
│                       └──────────┘           │                │
│                            │                 │                │
│                            ▼                 ▼                │
│                    ┌────────────┐     ┌───────────┐          │
│                    │ CANCELLED  │     │ COMPLETED │          │
│                    └────────────┘     └───────────┘          │
│                                                               │
│   Each Contact: Dial ──► STT/LLM/TTS ──► Log Result          │
│                           │                                   │
│                           ▼                                   │
│                    Failed? ──► Retry Queue                    │
│                                                               │
└──────────────────────────────────────────────────────────────┘
```

## Campaign Setup

### Step 1: Create Campaign

1. Go to **Campaigns** in the sidebar
2. Click **New Campaign**
3. Enter campaign details:
   - **Name**: Descriptive name (e.g., "January Order Follow-ups")
   - **Description**: Purpose of the campaign (optional)

### Step 2: Select Agent

Choose the AI agent that will handle calls:

- Agent must be **active** (not draft or paused)
- Agent should have an appropriate system prompt for outbound calls
- Variables in the agent prompt will be populated from contact data

### Step 3: Add Contacts

You have two options:

| Option | Description |
|--------|-------------|
| **Select Existing List** | Choose a previously uploaded contact list |
| **Upload New Contacts** | Upload a CSV file and create a new contact list |

See [CSV Upload & Variables](https://edesy.in/docs/voice-agent/campaigns/csv-upload) for file format details.

### Step 4: Select Phone Numbers

Choose one or more phone numbers (credentials) for making calls:

| Setting | Description |
|---------|-------------|
| **Single Number** | All calls made from one number |
| **Multiple Numbers** | Calls distributed across numbers |
| **Distribution Strategy** | Round-robin or least-used |

Using multiple numbers increases throughput and reduces per-number rate limiting.

### Step 5: Configure Settings

| Setting | Description | Default |
|---------|-------------|---------|
| **Max Parallel Calls** | Maximum simultaneous calls | 5 |
| **Retry Attempts** | Times to retry failed calls | 2 |
| **Retry Delay** | Minutes between retries | 30 |
| **Rate Limit** | Calls per minute per credential | 10 |

See [Scheduling & Retry Logic](https://edesy.in/docs/voice-agent/campaigns/scheduling) for advanced configuration.

### Step 6: Review and Launch

1. Review campaign settings
2. Check sample contacts and variables
3. Choose: **Start Now** or **Schedule for Later**

## Campaign Statuses

| Status | Description | Available Actions |
|--------|-------------|-------------------|
| **DRAFT** | Campaign created, not started | Start, Schedule, Edit, Delete |
| **SCHEDULED** | Waiting for scheduled start time | Unschedule (back to DRAFT), Delete |
| **RUNNING** | Actively making calls | Pause |
| **PAUSED** | Temporarily stopped mid-execution | Resume, Cancel |
| **COMPLETED** | All contacts processed | View Analytics, Duplicate |
| **CANCELLED** | Manually stopped before completion | View Analytics, Duplicate |

## Campaign Actions

| Action | From Status | Description |
|--------|-------------|-------------|
| **Start** | DRAFT | Begin calling immediately |
| **Schedule** | DRAFT | Set future start time |
| **Unschedule** | SCHEDULED | Revert to DRAFT |
| **Pause** | RUNNING | Stop calls, can resume |
| **Resume** | PAUSED | Continue calling |
| **Cancel** | PAUSED | Stop permanently |
| **Duplicate** | Any (except RUNNING) | Create copy of campaign |
| **Delete** | DRAFT, SCHEDULED | Permanently remove |

## Auto-Pause on Low Credits

Campaigns automatically pause when your workspace credits fall below a threshold:

- Campaigns pause with status preserved
- Email notification sent to workspace owner
- Resume after adding credits
- No calls are lost; pending contacts remain in queue

## Using Variables

Variables from contact data appear in your agent's prompt:

**Contact CSV:**
```csv
phone_number,customer_name,order_id,product_name
+919876543210,Rahul Kumar,ORD-001,Premium Widget
```

**Agent Greeting:**
```
Hello {{customer_name}}, I'm calling about your order {{order_id}} for {{product_name}}.
```

**Rendered for Rahul:**
```
Hello Rahul Kumar, I'm calling about your order ORD-001 for Premium Widget.
```

## Best Practices

1. **Test first**: Run with 10-20 contacts before full launch
2. **Respect timing**: Call during business hours (9 AM - 6 PM local time)
3. **Use multiple numbers**: Distribute load across credentials
4. **Monitor actively**: Watch the first few calls for issues
5. **Personalize**: Use variables for names, order IDs, etc.
6. **Set appropriate retries**: 2-3 attempts is usually sufficient
7. **Review analytics**: Check connection rates and optimize

## Next Steps

- [CSV Upload & Variables](https://edesy.in/docs/voice-agent/campaigns/csv-upload) - Format files and use personalization
- [Scheduling & Retry Logic](https://edesy.in/docs/voice-agent/campaigns/scheduling) - Configure timing and retry behavior
- [Campaign Analytics](https://edesy.in/docs/voice-agent/campaigns/analytics) - Monitor performance and export data
- [Contact Management](https://edesy.in/docs/voice-agent/contacts) - Manage contact lists
- [Phone Numbers Setup](https://edesy.in/docs/voice-agent/phone-numbers) - Configure calling credentials

---

**Ready to launch your first campaign?** [Open the Campaigns page](https://voice-agent.edesy.in/campaigns) to get started.
