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

# Kampanya oluştur

> Yeni bir giden arama kampanyası oluşturun

Bu endpoint, belirtilen yapılandırmayla yeni bir giden arama kampanyası oluşturmanızı sağlar.

### İstek gövdesi

<ParamField body="name" type="string" required>
  Kampanyanın adı. Maksimum 255 karakter.
</ParamField>

<ParamField body="assistant_id" type="integer" required>
  Kampanya için kullanılacak asistanın kimliği. Giden arama yapabilir bir asistan olmalıdır.
</ParamField>

<ParamField body="timezone" type="string">
  Kampanya için saat dilimi tanımlayıcısı (ör. `America/New_York`, `Europe/London`). Varsayılan olarak hesap saat diliminiz kullanılır.
</ParamField>

<ParamField body="max_calls_in_parallel" type="integer" default="3">
  Maksimum eşzamanlı arama sayısı. Minimum: 1. Maksimum planınızın paralel arama limitine bağlıdır (10'a kadar).
</ParamField>

<ParamField body="allowed_hours_start_time" type="string" default="00:00">
  İzin verilen arama penceresinin başlangıcı, `H:i` formatında (ör. `09:00`).
</ParamField>

<ParamField body="allowed_hours_end_time" type="string" default="23:59">
  İzin verilen arama penceresinin sonu, `H:i` formatında (ör. `17:00`).
</ParamField>

<ParamField body="allowed_days" type="array" default="all 7 days">
  Aramalara izin verilen hafta içi gün adlarının dizisi. Geçerli değerler: `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`, `sunday`.
</ParamField>

<ParamField body="max_retries" type="integer" default="3">
  Başarısız aramalar için maksimum yeniden deneme sayısı. Aralık: 1-5.
</ParamField>

<ParamField body="retry_interval" type="integer" default="60">
  Yeniden denemeler arasındaki dakika cinsinden süre. Aralık: 10-4320 (3 güne kadar).
</ParamField>

<ParamField body="retry_on_voicemail" type="boolean">
  Sesli mesaja ulaşan aramaları yeniden deneyip denemeyeceği.
</ParamField>

<ParamField body="retry_on_goal_incomplete" type="boolean">
  Hedefin tamamlanmadığı aramaları yeniden deneyip denemeyeceği.
</ParamField>

<ParamField body="goal_completion_variable" type="string">
  Hedef tamamlanmasını izlemek için asistanınızın arama sonrası şemasındaki bir boolean değişkenin adı. Maksimum 255 karakter.
</ParamField>

<ParamField body="mark_complete_when_no_leads" type="boolean" default="true">
  Aranacak müşteri kalmadığında kampanyayı otomatik olarak tamamlandı işaretleyip işaretlemeyeceği.
</ParamField>

<ParamField body="phone_number_ids" type="array">
  Kampanya için kullanılacak telefon numarası kimliklerinin dizisi. Her kimlik benzersiz bir tam sayı olmalıdır.
</ParamField>

### Yanıt

<ResponseField name="message" type="string">
  Kampanyanın oluşturulduğunu onaylayan başarı mesajı
</ResponseField>

<ResponseField name="data" type="object">
  Oluşturulan kampanya verileri

  <Expandable title="veri özellikleri">
    <ResponseField name="id" type="integer">
      Oluşturulan kampanyanın kimliği
    </ResponseField>

    <ResponseField name="name" type="string">
      Kampanyanın adı
    </ResponseField>

    <ResponseField name="status" type="string">
      Kampanyanın durumu (`draft` olarak başlar)
    </ResponseField>

    <ResponseField name="max_calls_in_parallel" type="integer">
      Maksimum eşzamanlı arama sayısı
    </ResponseField>

    <ResponseField name="mark_complete_when_no_leads" type="boolean">
      Müşteri kalmadığında kampanyayı tamamlandı olarak işaretleyip işaretlemeyeceği
    </ResponseField>

    <ResponseField name="allowed_hours_start_time" type="string">
      İzin verilen arama penceresinin başlangıcı
    </ResponseField>

    <ResponseField name="allowed_hours_end_time" type="string">
      İzin verilen arama penceresinin sonu
    </ResponseField>

    <ResponseField name="allowed_days" type="array">
      Aramalara izin verilen haftanın günleri
    </ResponseField>

    <ResponseField name="max_retries" type="integer">
      Maksimum yeniden deneme sayısı
    </ResponseField>

    <ResponseField name="retry_interval" type="integer">
      Yeniden denemeler arasındaki dakika cinsinden süre
    </ResponseField>

    <ResponseField name="created_at" type="string">
      Kampanyanın oluşturulma zaman damgası
    </ResponseField>

    <ResponseField name="updated_at" type="string">
      Kampanyanın son güncellenme zaman damgası
    </ResponseField>
  </Expandable>
</ResponseField>

### Hata Yanıtları

<ResponseField name="403 Forbidden">
  <Expandable title="Hata Yanıtı">
    <ResponseField name="message" type="string">
      Kullanıcının planının kampanya limitine ulaştığında dönen hata mesajı
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="404 Not Found">
  <Expandable title="Hata Yanıtı">
    <ResponseField name="message" type="string">
      Belirtilen asistan bulunamadığında veya giden arama asistanı olmadığında dönen hata mesajı
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="422 Validation Error">
  <Expandable title="Hata Yanıtı">
    <ResponseField name="message" type="string">
      Doğrulama başarısızlığını belirten hata mesajı
    </ResponseField>

    <ResponseField name="errors" type="object">
      Her alan için ayrıntılı doğrulama hataları
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json 201 Created theme={null}
  {
    "message": "Campaign created successfully",
    "data": {
      "id": 1,
      "name": "Product Demo Campaign",
      "status": "draft",
      "max_calls_in_parallel": 3,
      "mark_complete_when_no_leads": true,
      "allowed_hours_start_time": "09:00:00",
      "allowed_hours_end_time": "17:00:00",
      "allowed_days": [
        "monday",
        "tuesday",
        "wednesday",
        "thursday",
        "friday"
      ],
      "max_retries": 3,
      "retry_interval": 60,
      "created_at": "2026-02-23T10:00:00.000000Z",
      "updated_at": "2026-02-23T10:00:00.000000Z"
    }
  }
  ```

  ```json 403 Forbidden theme={null}
  {
    "message": "You have reached the maximum number of campaigns allowed by your plan."
  }
  ```

  ```json 404 Not Found theme={null}
  {
    "message": "Assistant not found or not an outbound assistant."
  }
  ```

  ```json 422 Validation Error theme={null}
  {
    "message": "The given data was invalid.",
    "errors": {
      "name": [
        "The name field is required."
      ],
      "assistant_id": [
        "The assistant id field is required."
      ]
    }
  }
  ```
</ResponseExample>
