The Make Campaign Call endpoint allows you to initiate individual calls within an existing campaign. This endpoint leverages the campaign’s configuration and settings to ensure calls follow the established campaign rules and parameters.
Campaign calls are designed for systematic, large-scale customer engagement with advanced automation features:
Campaign-Specific Settings: Each call inherits the campaign’s configuration (agent, retry logic, cooldown periods, call hours)
Advanced Scheduling: Calls automatically respect business hours, timezone settings, and day-of-week restrictions
Retry Logic: Built-in retry mechanisms with configurable cooldown periods between attempts
Call Flow Management: Consistent call flows and messaging across all campaign calls
Performance Analytics: Comprehensive tracking and reporting at the campaign level
Compliance Features: Do-not-call list management and regulatory compliance tools
Batch Processing: Handle thousands of calls with intelligent queuing and rate limiting
Best for: Customer outreach campaigns, lead nurturing, appointment reminders, market research, and any scenario requiring consistent, automated calling with sophisticated rules.
Replacement variables for the campaign agent prompt. Use this to personalize the conversation with dynamic data. Keys should match placeholders in your agent’s prompt.
Custom data to be sent back to your client via webhooks. This data is not used in the conversation but will be included in all webhook events related to this call, allowing you to track and associate calls with your internal records.
Whether to allow placing this call even if the same to number already has an active or queued call within the campaign. When false (default), the request returns 409 Conflict with the existing call’s details so you can avoid duplicate outreach. Default: false.
Returned when a call to the same to number is already active or queued in this campaign and allow_duplicates is false.
{ "success": false, "message": "A call to this number already exists in this campaign", "existing_call": { "id": "call-uuid-existing", "campaign_id": "campaign-uuid-1", "to": "+1234567890", "status": "queued", "created_at": "2024-01-15T09:50:00Z" }}
To override this behavior intentionally (e.g., a follow-up call), pass "allow_duplicates": true in the request body.
{ "success": false, "message": "The given data was invalid.", "errors": { "to": [ "The to field is required." ], "to": [ "The to must be a valid phone number." ] }}