draft status and must be started separately.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Campaign name (1-200 characters) |
description | string | No | Campaign description |
campaign_type | string | Yes | Type: call, sms, or mixed |
assistant_id | integer | Yes | ID of the assistant to use |
welcome_message_template | string | No | Template for welcome message |
agenda_template | string | No | Template for call agenda |
end_call_message_template | string | No | Template for end call message |
sms_message_template | string | No | Template for SMS content |
fallback_values | object | No | Fallback values for missing variables |
max_attempts | integer | No | Max retry attempts (default: 3) |
retry_delay_minutes | integer | No | Delay between retries (default: 30) |
Template Variables
Templates support Jinja2-style variables:{{name}}- Contact’s name{{company}}- Contact’s company{{assistant_name}}- Your assistant’s name- Any custom field from imported contacts
Example Request
Request Body
Response
Response
Example Code
cURL
Python
JavaScript
Next Steps
After creating a campaign:- Import contacts using the import-data endpoint
- Configure scheduling using the schedule endpoint
- Start the campaign using the start endpoint