Outbound Campaigns
Create campaign
Create a draft call, WhatsApp, or SMS campaign
On this page
Create a new campaign. Campaigns start in draft — add leads, then start with Update campaign status.
Supported channels:
call(default) — outbound voice with an OUTBOUND assistantwhatsapp— approved WhatsApp template via one of your senderssms— SMS body from an SMS-capable number (may be temporarily unavailable on the platform)
Request body
Shared
namestringrequired
Campaign name. Maximum 255 characters.
channelstring
call, whatsapp, or sms.
timezonestring
IANA timezone for the send/call window (e.g. America/New_York). Defaults to the assistant timezone for call campaigns, otherwise your account timezone.
schedule_windowsarray
Preferred schedule: one or more daily windows as objects with start and end in HH:MM. Overnight windows are supported when end is earlier than start (e.g. 16:00 → 02:00).
allowed_hours_start_timestring
Legacy single-window start (HH:MM). Used if schedule_windows is omitted.
allowed_hours_end_timestring
Legacy single-window end (HH:MM). Overnight when end < start.
scheduled_start_atstring
Optional ISO datetime. When set, the campaign can be scheduled to auto-start at that time.
allowed_daysarray
Weekdays: monday … sunday.
max_retriesinteger
Max retry attempts per lead. Range: 1–5.
retry_intervalinteger
Minutes between retries. Range: 10–4320.
mark_complete_when_no_leadsboolean
Automatically mark the campaign complete when no remaining work is left.
Call campaigns
assistant_idinteger
Required for channel=call. Must be an OUTBOUND assistant you own.
max_calls_in_parallelinteger
Concurrent calls (plan-bounded, max 10).
phone_number_idsarray
Outbound from-number IDs available to your account.
retry_on_voicemailboolean
Retry when a call hits voicemail.
retry_on_goal_incompleteboolean
Keep retrying until a boolean post-call goal variable is true.
goal_completion_variablestring
Boolean post-call schema variable name used with retry_on_goal_incomplete.
fallback_channelstring
Optional call→text follow-up after max call retries: whatsapp or sms.
fallback_whatsapp_sender_idinteger
Required when fallback_channel=whatsapp.
fallback_whatsapp_template_idinteger
Required when fallback_channel=whatsapp. Must be an approved template on that sender.
fallback_sms_from_phone_number_idinteger
Required when fallback_channel=sms.
fallback_sms_bodystring
Required when fallback_channel=sms. Supports {{variable}} placeholders.
fallback_variable_mappingobject
Maps WhatsApp template placeholders (e.g. "1") to lead variable keys for the fallback send.
WhatsApp campaigns
whatsapp_sender_idinteger
Required for channel=whatsapp. Sender you own.
whatsapp_template_idinteger
Required for channel=whatsapp. Approved template on that sender.
text_variable_mappingobject
Maps template placeholders (e.g. "1") to lead variable keys.
messages_per_minuteinteger
Per-campaign send rate (1–10). WhatsApp campaigns also share a user-wide pool of 10 in-flight sends across all your active WhatsApp campaigns.
SMS campaigns
sms_from_phone_number_idinteger
Required for channel=sms. Must be SMS-capable and available to you.
sms_bodystring
Required for channel=sms. Max 1600 characters. Supports {{variable}} placeholders.
Response
messagestring
Success message
dataobject
Created campaign (same shape as Get campaign), including channel, schedule, text config, and fallback fields.
Error responses
422 Unprocessable Entity
Plan limit, invalid assistant/sender/template, disabled channel, or validation errors.
{
"message": "Campaign created successfully",
"data": {
"id": 1,
"name": "Product Demo Campaign",
"channel": "call",
"status": "draft",
"assistant_id": 42,
"timezone": "Europe/Bucharest",
"max_calls_in_parallel": 3,
"messages_per_minute": null,
"schedule_windows": [{ "start": "09:00", "end": "18:00" }],
"scheduled_start_at": null,
"allowed_hours_start_time": "09:00",
"allowed_hours_end_time": "18:00",
"allowed_days": ["monday", "tuesday", "wednesday", "thursday", "friday"],
"max_retries": 3,
"retry_interval": 60,
"retry_on_voicemail": false,
"retry_on_goal_incomplete": false,
"goal_completion_variable": null,
"mark_complete_when_no_leads": true,
"phone_number_ids": [11, 12],
"whatsapp_sender_id": null,
"whatsapp_template_id": null,
"sms_from_phone_number_id": null,
"sms_body": null,
"text_variable_mapping": null,
"fallback_channel": "whatsapp",
"fallback_whatsapp_sender_id": 7,
"fallback_whatsapp_template_id": 15,
"fallback_sms_from_phone_number_id": null,
"fallback_sms_body": null,
"fallback_variable_mapping": { "1": "customer_name" },
"created_at": "2026-07-24 18:00:00",
"updated_at": "2026-07-24 18:00:00"
}
}
{
"message": "Campaign created successfully",
"data": {
"id": 2,
"name": "WhatsApp Follow-up",
"channel": "whatsapp",
"status": "draft",
"assistant_id": null,
"messages_per_minute": 10,
"schedule_windows": [{ "start": "09:00", "end": "20:00" }],
"whatsapp_sender_id": 7,
"whatsapp_template_id": 15,
"text_variable_mapping": { "1": "customer_name" },
"fallback_channel": null
}
}
Related guides
Outbound Campaigns
Campaigns Overview
Create and manage call, WhatsApp, and SMS campaigns to reach leads at scale
Read guide →Outbound Campaigns
Creating a Campaign
Step-by-step guide to setting up call, WhatsApp, or SMS campaigns
Read guide →Outbound Campaigns
List campaigns
List all campaigns (call, WhatsApp, SMS)
Read guide →Outbound Campaigns
Get campaign
Get a single campaign by ID
Read guide →