---
title: "Kampanye keluar"
description: "Unggah daftar kontak dan biarkan agen menanganinya — dengan jendela panggilan, percobaan ulang, dan progres langsung."
---

Kampanye menghubungi daftar kontak untuk Anda: pilih agen, unggah
CSV, atur kapan panggilan diizinkan, dan ThunderPhone memproses daftar
tersebut — mencoba ulang panggilan tak dijawab dan pesan suara sesuai jadwal yang Anda pilih. Temukan
di **Interaksi → Kampanye** (`/dashboard/campaigns`).

Untuk panggilan terprogram satu kali, gunakan
[API panggilan keluar](/id/guides/place-outbound-calls).

## Prasyarat

- Agen suara AI yang telah di-deploy.
- Nomor telepon yang diaktifkan untuk panggilan keluar. Nomor VoIP pelanggan tetap mendukung
  kampanye. Nomor ThunderPhone pada awalnya hanya untuk panggilan masuk; admin organisasi dapat
  meminta panggilan keluar dari halaman Nomor Telepon. ThunderPhone meninjau
  setiap permintaan secara manual, dan nomor yang disetujui dapat menjalankan kampanye. Lihat
  [Hubungkan penyedia VoIP](/id/guides/voip-providers).
- Kontak sebagai file CSV (atau JSON yang ditempel) dengan kolom `phone` atau
  `phone_number`. **Hingga 5.000 baris per unggahan**, dengan pengodean UTF-8.
  Unggahan JSON baru harus datar: nilai tambahan dapat berupa string, angka,
  boolean, atau `null`. Baris yang berisi array atau objek bertingkat ditolak
  satu per satu dengan pesan validasi; baris yang valid tetap diimpor. Sel CSV
  adalah string. Kolom tambahan yang diterima disimpan sebagai variabel per kontak dalam catatan
  kontak kampanye dan otomatis diberikan pada setiap panggilan. ThunderPhone juga
  mengklasifikasikan Prompt agen yang disimpan sebelum setiap panggilan keluar untuk menentukan apakah
  agen harus menavigasi menu telepon. Header seperti `name` dan `account_id`
  sesuai dengan `{{name}}` dan `{{account_id}}` dalam Prompt agen yang disimpan. Pemetaan nama juga dapat menggabungkan kolom menjadi `name`. Lihat
  [variabel per panggilan](/id/guides/call-variables) untuk nilai default, aturan penamaan,
  batas objek 32 KB, dan nilai yang dikembalikan dalam webhook penyelesaian.

Catatan kontak lama mungkin berisi metadata bersarang dari unggahan JSON sebelumnya.
Metadata tersebut tetap tersimpan pada kontak. Setiap panggilan mengabaikan nilai non-skalar dari
payload variabelnya dan mencatat nama kunci yang diabaikan untuk percobaan tersebut, tanpa
mencatat nilainya. Percobaan ulang menggunakan pemfilteran yang sama.

## Buat kampanye

<Steps>
  <Step title="Klik Kampanye baru">
    Beri nama, pilih **agen suara**, dan pilih **nomor asal**
    (salah satu nomor Anda yang diaktifkan untuk panggilan keluar).
  </Step>
  <Step title="Unggah CSV kontak">
    Baris dengan nomor telepon atau variabel yang tidak valid ditolak secara terpisah dan
    dilaporkan kembali beserta nomor barisnya — sisanya berhasil diimpor.
  </Step>
  <Step title="Atur jendela panggilan">
    Pilih **zona waktu** dan jendela **mulai/selesai harian**; kampanye
    hanya melakukan panggilan di dalamnya. Zona waktu dimulai dari zona nomor asal Anda
    (kode areanya di AS dan Kanada, negaranya di tempat lain) atau, untuk
    nomor yang mencakup beberapa zona seperti nomor bebas pulsa, zona
    browser Anda. Petunjuk di bawah kolom menunjukkan zona yang digunakan. Jendela secara default
    adalah pukul 9 pagi–5 sore. Jendela yang dimulai sebelum pukul 8 pagi atau berakhir setelah pukul 9 malam menampilkan
    peringatan: panggilan di luar jam tersebut dapat melanggar aturan jam panggilan seperti
    TCPA. Waktu selesai yang lebih awal daripada waktu mulai melewati tengah malam: 22:00 →
    02:00 melakukan panggilan dari pukul 10 malam hingga pukul 2 pagi keesokan harinya, dengan peringatan. Jendela
    berjalan dalam zona waktu kampanye, bukan zona waktu setiap kontak, jadi pisahkan
    kontak berdasarkan zona waktu jika tersebar.
    Secara opsional, atur **mulai pada** untuk menjadwalkan peluncuran dan
    **selesai pada** setelah kampanye selesai secara otomatis.
  </Step>
  <Step title="Sesuaikan kecepatan dan percobaan ulang">
    - **Panggilan bersamaan** — jumlah panggilan yang dijalankan kampanye ini sekaligus
      (1–10, default 3). Kampanye tidak memulai panggilan baru selama
      organisasi Anda memiliki 10 panggilan keluar yang sedang berlangsung, sehingga kampanye
      paralel berbagi kapasitas tersebut. Setiap panggilan juga dihitung terhadap
      [batas panggilan bersamaan](/api-reference/introduction#call-limits) organisasi Anda
      (default 20, mencakup panggilan masuk, keluar, web, dan uji).
      Saat batas tersebut tercapai, atau nomor yang sama telah dihubungi dalam
      10 detik terakhir, kontak hanya menunggu putaran berikutnya; jumlah
      percobaannya tidak berkurang.
    - **Jumlah percobaan maksimum** — jumlah kali setiap kontak dapat dihubungi
      (1–10, default 2).
    - **Jeda percobaan ulang (menit)** — waktu tunggu sebelum percobaan ulang (minimal 30,
      default 60).
    - **Coba ulang pada** — hasil yang memicu percobaan ulang: **tidak ada jawaban**,
      **pesan suara**, **gagal** (semuanya aktif secara default).

    Perlu lebih banyak percobaan atau jeda yang lebih singkat? Hubungi dukungan: staf dapat
    menaikkan kedua batas untuk organisasi Anda.
  </Step>
  <Step title="Buat draf, lalu mulai">
    Kampanye dibuat sebagai draf — kontak hanya dapat ditambahkan saat
    kampanye masih berupa draf. Memulai kampanye memerlukan persetujuan eksplisit
    untuk biaya panggilan. Dengan **mulai pada** di masa depan, statusnya menjadi
    *terjadwal*; jika tidak, kampanye langsung *berjalan*.
  </Step>
</Steps>

<Note>
  Kampanye yang disimpan sebelum batas ini tetap berjalan persis sesuai konfigurasi.
  Jumlah percobaan dan jedanya tetap tersimpan meskipun ada pengeditan lain.
</Note>

## Cara hasil dan percobaan ulang bekerja

Setelah setiap panggilan, kontak mendapatkan hasil — panggilan yang berhasil
ditandai sebagai selesai; panggilan yang dinilai sebagai tidak dijawab, terdeteksi sebagai pesan suara, atau
gagal akan dicoba ulang jika hasil tersebut ada dalam daftar **coba ulang pada** Anda dan
kontak masih memiliki sisa percobaan. Kontak yang kehabisan percobaan ditandai
*habis*; kegagalan yang tidak dapat dicoba ulang ditandai sebagai *gagal*.

<Note>
  Panggilan dijeda secara otomatis saat saldo akun Anda tidak berstatus baik,
  dan dilanjutkan setelah statusnya kembali baik. Aktifkan
  [isi ulang otomatis](/id/guides/billing-and-topups) untuk kampanye jangka panjang.
</Note>

## Pantau dan kontrol

Setiap kartu kampanye menampilkan status dan progresnya (misalnya, "173 dari 248
selesai"). Buka kampanye untuk melihat perincian status, hasil per kontak,
dan panggilan terbaru — masing-masing tertaut ke transkrip dan
rekaman lengkap dalam riwayat panggilan.

- **Jeda / lanjutkan** — menjeda menghentikan panggilan baru; panggilan yang sudah
  berlangsung akan selesai secara alami. Kampanye yang dijeda dapat diedit dan dilanjutkan.
- **Batalkan** — menghentikan kampanye secara permanen.
- Kampanye selesai dengan sendirinya ketika setiap kontak mencapai status akhir
  atau waktu **berakhir pada** telah terlewati.

Status kampanye: `draft`, `scheduled`, `running`, `paused`,
`completed`, `cancelled`. Status kontak: `pending`, `scheduled`,
`calling`, `completed`, `failed`, `exhausted`.

## Langkah berikutnya

<CardGroup cols={2}>
  <Card title="Pantau panggilan secara langsung" icon="tower-broadcast" href="/id/guides/monitor-live-calls">
    Dengarkan panggilan kampanye saat berlangsung.
  </Card>
  <Card title="API panggilan keluar" icon="phone-arrow-up-right" href="/id/guides/place-outbound-calls">
    Lakukan panggilan individual secara terprogram.
  </Card>
</CardGroup>
