> ## Documentation Index
> Fetch the complete documentation index at: https://docs.receptonic.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create campaign

> Create a draft call, WhatsApp, or SMS campaign

Create a new campaign. Campaigns start in `draft` — add leads, then start with [Update campaign status](https://docs.receptonic.com/api-reference/campaigns/update-status.md).

Supported channels:

* **`call`** (default) — outbound voice with an OUTBOUND assistant
* **`whatsapp`** — approved WhatsApp template via one of your senders
* **`sms`** — SMS body from an SMS-capable number (may be temporarily unavailable on the platform)

### Request body

#### Shared

**name** `string` *required*

Campaign name. Maximum 255 characters.

**channel** `string` (default: call)

`call`, `whatsapp`, or `sms`.

**timezone** `string`

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\_windows** `array`

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\_time** `string` (default: 00:00)

Legacy single-window start (`HH:MM`). Used if `schedule_windows` is omitted.

**allowed\_hours\_end\_time** `string` (default: 23:59)

Legacy single-window end (`HH:MM`). Overnight when end \< start.

**scheduled\_start\_at** `string`

Optional ISO datetime. When set, the campaign can be scheduled to auto-start at that time.

**allowed\_days** `array` (default: all 7 days)

Weekdays: `monday` … `sunday`.

**max\_retries** `integer` (default: 3)

Max retry attempts per lead. Range: 1–5.

**retry\_interval** `integer` (default: 60)

Minutes between retries. Range: 10–4320.

**mark\_complete\_when\_no\_leads** `boolean` (default: true)

Automatically mark the campaign complete when no remaining work is left.

#### Call campaigns

**assistant\_id** `integer`

Required for `channel=call`. Must be an OUTBOUND assistant you own.

**max\_calls\_in\_parallel** `integer` (default: 3)

Concurrent calls (plan-bounded, max 10).

**phone\_number\_ids** `array`

Outbound from-number IDs available to your account.

**retry\_on\_voicemail** `boolean`

Retry when a call hits voicemail.

**retry\_on\_goal\_incomplete** `boolean`

Keep retrying until a boolean post-call goal variable is true.

**goal\_completion\_variable** `string`

Boolean post-call schema variable name used with `retry_on_goal_incomplete`.

**fallback\_channel** `string`

Optional call→text follow-up after max call retries: `whatsapp` or `sms`.

**fallback\_whatsapp\_sender\_id** `integer`

Required when `fallback_channel=whatsapp`.

**fallback\_whatsapp\_template\_id** `integer`

Required when `fallback_channel=whatsapp`. Must be an approved template on that sender.

**fallback\_sms\_from\_phone\_number\_id** `integer`

Required when `fallback_channel=sms`.

**fallback\_sms\_body** `string`

Required when `fallback_channel=sms`. Supports `{{variable}}` placeholders.

**fallback\_variable\_mapping** `object`

Maps WhatsApp template placeholders (e.g. `"1"`) to lead variable keys for the fallback send.

#### WhatsApp campaigns

**whatsapp\_sender\_id** `integer`

Required for `channel=whatsapp`. Sender you own.

**whatsapp\_template\_id** `integer`

Required for `channel=whatsapp`. Approved template on that sender.

**text\_variable\_mapping** `object`

Maps template placeholders (e.g. `"1"`) to lead variable keys.

**messages\_per\_minute** `integer`

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\_id** `integer`

Required for `channel=sms`. Must be SMS-capable and available to you.

**sms\_body** `string`

Required for `channel=sms`. Max 1600 characters. Supports `{{variable}}` placeholders.

### Response

**message** `string`

Success message

**data** `object`

Created campaign (same shape as [Get campaign](https://docs.receptonic.com/api-reference/campaigns/get-campaign.md)), including `channel`, schedule, text config, and fallback fields.

### Error responses

**422 Unprocessable Entity**

Plan limit, invalid assistant/sender/template, disabled channel, or validation errors.

```json 201 Created (call) theme={null}
{
  "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"
  }
}
```

```json 201 Created (whatsapp) theme={null}
{
  "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
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.