Skip to main content
POST

Create Campaign

Create a new campaign with scheduling, retry policy, cooldowns, and do-not-call rules. Campaigns are created in draft status — call Update Campaign Status with "status": "active" to start dispatching calls.

Endpoint

Request headers

string
required
Bearer token for authentication. Format: Bearer talq_your_environment_token_here
string
required
Must be set to application/json

Request body

Identification

string
required
Campaign name. Max 255 characters.
string
Free-form description of the campaign.
string
required
Campaign category. Options: sales, follow_up, reminder, custom.
string
required
UUID of the agent assigned to the campaign. The agent must exist in your environment.

Schedule

string
required
Date the campaign becomes eligible to dispatch calls. Format: YYYY-MM-DD.
string
Optional end date. Must be after start_date. Format: YYYY-MM-DD.
array
required
Array of weekday numbers when calls can be placed. 1 = Monday, 7 = Sunday. At least one value required.
array
required
Time windows (per day) during which calls can be dispatched. Array of objects with start and end in HH:MM format (24h). At least one window required. Each window’s end must be after its start.Example: [{"start": "09:00", "end": "12:00"}, {"start": "14:00", "end": "17:00"}]
string
required
IANA timezone for call_time_ranges (e.g., America/New_York, America/Sao_Paulo, Europe/London). Max 50 characters.

Retry & Cooldown

integer
Initial delay (in seconds) before the first call attempt. Default: 0.
integer
Maximum retry attempts per contact. Range: 010. Default: 3.
integer
Hours to wait between retry attempts. Range: 1168. Default: 24.
boolean
When true, the campaign automatically transitions to completed once all contacts have been processed.
boolean
When true, calls that completed but didn’t convert are retried after the cooldown.
boolean
When true, applies a cooldown to all contacts after the campaign completes (prevents immediate re-engagement by another campaign).
integer
Hours of cooldown applied to contacts after campaign completion. Range: 1168. Default: 168.

Per-status cooldowns

These optional fields override retry_cooldown_hours for specific call outcomes. All in range 1168 hours.
integer
Cooldown after a successful call.
integer
Cooldown after reaching voicemail.
integer
Cooldown after no-answer.
integer
Cooldown after busy signal.
integer
Cooldown after a failed call.

Do-Not-Call (DNC)

boolean
When true, contacts are checked against a DNC list before dispatching. Default: false.
string
Source of the DNC list. Options:
  • environment — DNC list shared across all campaigns in this environment
  • global — platform-wide DNC list
  • custom — campaign-specific list provided in do_not_call_custom_list
array
Array of phone numbers (E.164) blocked for this campaign. Used only when do_not_call_list_source is custom.
boolean
When true, contacts that match auto_dnc_trigger_statuses or auto_dnc_trigger_errors are automatically added to the DNC list.
array
Call statuses that trigger auto-add to DNC. Example: ["completed", "voicemail"].
array
Call errors that trigger auto-add to DNC. Example: ["invalid_number", "disconnected"].

Examples

Response

Success Response (201 Created)

Response fields

boolean
required
Indicates if the campaign was created successfully.
object
required
The created campaign object. New campaigns start in status: "draft". Use Update Campaign Status to activate.

Error responses

422 Validation Error

401 Unauthorized

403 Forbidden — Plan Limit Reached

Notes

  • The campaign agent must already exist. Create it via Create Agent.
  • call_time_ranges replaces the older earliest_call_time/latest_call_time fields. Multiple windows let you skip lunch hours or split between morning and afternoon.
  • All *_cooldown_hours fields default to 24 if not provided. Use them to fine-tune retry behavior per call outcome.
  • Time windows are evaluated in the campaign’s timezone, not the caller’s local time.