Campaigns
Understanding Campaigns
A Campaign is the foundation of all outreach in Popp AI. It defines how your AI agent communicates with candidates, what questions to ask, and what happens when a conversation completes.
How Campaigns and Conversations Relate
┌─────────────────────────────────────────────────────────┐
│ CAMPAIGN │
│ • Defines the outreach strategy │
│ • Contains AI agent configuration │
│ • Sets screening questions │
│ • Configures closing method (scheduling, call, etc.) │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │Conversation │ │Conversation │ │Conversation │ │
│ │ (John) │ │ (Sarah) │ │ (Mike) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────┘
- A Campaign is created once and can have many conversations
- Each Conversation belongs to exactly one campaign
- The campaign's settings (agent, questions, closing method) apply to all its conversations
Campaign Types
| Type | Use Case |
|---|---|
APPLICANT_OUTREACH | Reach out to candidates who have applied for a job |
NEW_CANDIDATE_OUTREACH | Proactively source and engage new candidates |
ENGAGEMENT_OUTREACH | Re-engage candidates for non-job related purposes (e.g., surveys, events) |
Communication Channels
Campaigns can communicate through different channels:
| Channel | Description |
|---|---|
SMS | Text messages to mobile phones |
WHATSAPP | WhatsApp messaging |
EMAIL | Email messaging |
Closing Methods
When a conversation completes successfully, the campaign determines what happens next:
| Method | Description |
|---|---|
MEETING_URL | Provide a scheduling link (e.g., Calendly) |
PHONE_NUMBER | Provide a phone number to call |
CUSTOM | Custom closing message |
CALENDAR_MEETING_INTEGRATION | Use Popp's built-in scheduling |
Campaign Statuses
| Status | Description |
|---|---|
DRAFT | Campaign is being configured |
LIVE | Campaign is active and accepting conversations |
ARCHIVED | Campaign is no longer active |
Creating a Campaign
Currently, campaigns are created through the Popp AI dashboard. Once created, you can:
- Get the Campaign ID from the URL:
https://ai.joinpopp.com/campaign/outbound/{CAMPAIGN_ID} - Use the API to create conversations within that campaign
- List and filter campaigns via the API
List Campaigns
curl -X GET "https://api.popp.ai/v1/campaigns" \
-H "x-api-key: YOUR_API_KEY" \
-H "x-organization-id: YOUR_ORGANIZATION_ID"Filter Campaigns
You can filter campaigns by various criteria:
# Filter by status
curl -X GET "https://api.popp.ai/v1/campaigns?campaignStatus=LIVE" \
-H "x-api-key: YOUR_API_KEY" \
-H "x-organization-id: YOUR_ORGANIZATION_ID"
# Filter by type
curl -X GET "https://api.popp.ai/v1/campaigns?campaignType=APPLICANT_OUTREACH" \
-H "x-api-key: YOUR_API_KEY" \
-H "x-organization-id: YOUR_ORGANIZATION_ID"
# Filter by channel
curl -X GET "https://api.popp.ai/v1/campaigns?channel=SMS" \
-H "x-api-key: YOUR_API_KEY" \
-H "x-organization-id: YOUR_ORGANIZATION_ID"Get a Specific Campaign
curl -X GET "https://api.popp.ai/v1/campaigns/{campaignId}" \
-H "x-api-key: YOUR_API_KEY" \
-H "x-organization-id: YOUR_ORGANIZATION_ID"Campaign Response
{
"id": "10fe477c-5a4a-451d-9f18-b8340e2154e8",
"organizationId": "org_123456",
"campaignTitle": "Software Engineer Outreach",
"campaignStatus": "LIVE",
"type": "APPLICANT_OUTREACH",
"channel": "SMS",
"closingMethod": "MEETING_URL",
"meetingUrl": "https://calendly.com/your-company/interview",
"needsReview": false,
"agent": {
"id": "agent_abc123",
"agentName": "Alex",
"agentTone": "PROFESSIONAL"
},
"questions": [
{
"questionType": "TEXT",
"content": "Do you have 5+ years of experience with React?",
"isMandatory": true
}
]
}API Reference
- List Campaigns - Query and filter campaigns
- Get Campaign - Get details for a specific campaign
Next Steps
- Understanding Conversations - Learn how to create and manage conversations within campaigns
- Webhooks - Get notified when campaign conversations complete
Updated about 14 hours ago