Create a new AI-powered outbound campaign
Changed onCreate a new campaign for automated outbound calling with AI agents. Campaigns allow you to:
- Automate outbound calls to a list of leads with AI agents
- Schedule campaigns to run at specific times and days
- Configure retry logic for failed or unanswered calls
- Manage concurrent calls to control call volume
- Track campaign performance with real-time statistics
Required Fields:
- name: Descriptive name for the campaign
Call source:
- sipTrunkIds: SIP trunks to dial out from (get from POST /phones/sip-trunks/query). Required to go live unless verifiedCallerId is set. Drafts may omit this and finish setup later.
- agentId: AI agent that handles the calls (company default if omitted)
Optional Configuration:
- schedule: Business hours, timezone, and how often to pick pending leads
- retries: Call-backs after the first call when nobody answers (busy, voicemail, no answer, or failed to connect) (0-10, default 3; a lead gets at most retries + 1 calls)
- retryDelayMinutes: Minutes between those calls (default 240 = 4 hours; the app offers 60 to 40320 = 1 hour to 4 weeks)
- maximumConcurrentCalls: Limit concurrent calls (max 100)
- defaultCallerIds: Pool of caller IDs presented to leads
- notificationSettings: Email notifications for campaign events
After creating a campaign, add leads with POST /agentic/campaign-leads, then set status to "active" (or use resume) to start calling.
Human seats (optional): set userSettings.userIds so users can dial the autogenerated extensionNumber and stay parked. dispatchStrategy (random | least_answered | round_robin) picks who gets the next lead. Outbound leads are dialed only while at least one assigned user is online (Windows app connected, or parked on the campaign extension). overflowToAi (default true) is only for a live lead that cannot attach to an online user — AI instead of hold music. Hangup after a lead does not leave the campaign — POST /:id/disconnect does.
Request
- Base URL: https://api.voicelogica.ai
- URL: https://api.voicelogica.ai/api/v1/agentic/campaigns
- Auth: API key in header x-api-key
Headers
Your API key for authentication. Required for all endpoints.
Optional company ID for resellers. When provided, the API request will operate on behalf of the specified subsidiary company. The API key must have access to the specified company.
Request body
Example request
{
"name": "Q4 Sales Campaign",
"description": "Outbound sales campaign for Q4 revenue generation",
"type": "phone",
"status": "draft",
"agentId": "507f1f77bcf86cd799439012",
"sipTrunkIds": [
"507f1f77bcf86cd799439011"
],
"retries": 3,
"retryDelayMinutes": 240,
"maximumConcurrentCalls": 5,
"schedule": {
"days": [
{
"day": "monday",
"runFromTime": {
"hours": 9,
"minutes": 0
},
"runToTime": {
"hours": 17,
"minutes": 0
}
},
{
"day": "tuesday",
"runFromTime": {
"hours": 9,
"minutes": 0
},
"runToTime": {
"hours": 17,
"minutes": 0
}
}
],
"timeZone": "Europe/Athens",
"runEverySeconds": 60
}
}Response
Campaign created successfully
Example response
{
"id": "123",
"companyId": "123",
"name": "Q4 Sales Campaign",
"description": "Outbound sales campaign for Q4 revenue generation",
"type": "phone",
"status": "active",
"retries": 3,
"retryDelayMinutes": 30,
"maximumConcurrentCalls": 10,
"notificationSettings": {
"enabled": true,
"emails": [
"test@example.com"
],
"sendAtHour": 10
}
}Changes
- breaking
the
request property type changed fromnumbertointeger - breaking
the
request property type changed fromnumbertointeger - warning
the
request property's max was set to40320.00 - warning
the
request property's min was set to60.00
- breaking