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

# Konsep inti

> Peta semua yang ada di Platform — fungsi setiap objek, lokasinya di dasbor, dan API yang menggunakannya.

ThunderPhone adalah Platform lengkap untuk membangun, menjalankan, dan meningkatkan
agen suara AI. Halaman ini adalah peta: setiap konsep yang akan Anda temui, satu
bagian singkat untuk masing-masing konsep, dengan tampilan dashboard dan API yang
mendukungnya. Baca sekilas sekali, lalu kembali kapan pun suatu istilah perlu dijelaskan.

Sidebar dashboard mencerminkan struktur ini:

<CardGroup cols={2}>
  <Card title="Inti" icon="cube">
    [Agen](#agents), [nomor telepon](#phone-numbers),
    [widget web](#web-widgets), [panggilan](#calls),
    [basis pengetahuan](#knowledge-bases).
  </Card>

  <Card title="Keterlibatan" icon="megaphone">
    [Pemantauan langsung](#live-monitoring) dan
    [kampanye](#campaigns) keluar.
  </Card>

  <Card title="Koneksi" icon="plug">
    [Aplikasi, API, server MCP, dan penyedia VoIP](#connections) yang dapat
    digunakan agen Anda.
  </Card>

  <Card title="Kualitas & Pengujian" icon="flask">
    [Simulasi](#simulations), [eksperimen](#experiments),
    [masalah](#issues), [laporan](#reports),
    [observabilitas](#observability).
  </Card>

  <Card title="Organisasi" icon="building">
    [Tim & peran](#team-and-roles), [kunci API](#organizations),
    [peringatan](#alerts), [penagihan](#billing).
  </Card>

  <Card title="Eventing" icon="bolt">
    [Webhook](#webhooks) dan [function tool](#function-tools) untuk
    kode Anda sendiri.
  </Card>
</CardGroup>

***

## Organisasi

Sebuah **organisasi** adalah unit tenancy. Setiap resource lain —
agen, nomor telepon, panggilan, kunci — dimiliki oleh tepat satu organisasi. Akun Anda
dapat menjadi bagian dari banyak organisasi; masing-masing memiliki saldo, kunci,
dan daftar anggotanya sendiri.

Kunci API `sk_live_` yang Anda buat di **Organisasi → Kunci** terikat
ke satu organisasi. Keterikatan ini yang membuat REST API sangat
datar: Anda tidak pernah memasukkan id organisasi ke dalam path URL, karena
kunci Anda sudah mengidentifikasinya.

**Di dashboard:** pemilih organisasi (footer sidebar) dan pengaturan
**Organisasi** — tab untuk Umum, Kunci, Peringatan, Pengaturan Penagihan,
dan Riwayat Penagihan.

**Di API:** [`/v1/orgs`](/api-reference/organizations),
[`/v1/developer/api-keys`](/api-reference/developer-api-keys).

***

## Agen

Sebuah **agen** adalah konfigurasi AI yang menjalankan panggilan. Konfigurasi ini mencakup:

* Sebuah **Prompt** yang mengatur apa yang dikatakan agen dan bagaimana perilakunya —
  termasuk tindakan panggilan seperti transfer, penekanan keypad, dan mengakhiri panggilan,
  yang merupakan baris Prompt biasa, bukan konfigurasi terpisah.
* Sebuah **tingkat engine** (`spark`, `bolt`, `storm-*`): Spark dioptimalkan
  untuk biaya, Bolt untuk kecepatan, Storm untuk kecerdasan pada Prompt yang kompleks.
* Sebuah **suara** beserta **bahasa utama** dan **bahasa tambahan**
  opsional — agen beralih secara otomatis ketika penelepon mengganti
  bahasa. Lihat [Bahasa yang didukung](/id/guides/supported-languages).
* Kemampuan terpasang: [aplikasi terhubung](#connections),
  [koneksi API](#connections), [basis pengetahuan](#knowledge-bases),
  [server MCP](#connections), dan
  [function tool](#function-tools) inline.
* Pengaturan perilaku: urutan berbicara, mode konfirmasi, trek latar belakang,
  batas waktu tunggu.

Edit di builder **disimpan otomatis sebagai draf**; tidak ada yang aktif sampai
Anda mengklik **Terapkan**. Setiap penerapan disimpan sebagai snapshot di tab
**Riwayat** builder, sehingga Anda dapat memeriksa dan memulihkan versi sebelumnya.

**Di dashboard:** **Agen Suara** → builder agen
(`/dashboard/agents`). Lihat
[Buat agen suara pertama Anda](/id/guides/build-an-agent).

**Di API:** [`/v1/agents`](/api-reference/agents) — CRUD,
duplikat, transfer, riwayat versi, dan bantuan Prompt.

***

## Nomor telepon

Sebuah **nomor telepon** dimiliki oleh organisasi dan merutekan panggilan masuk ke
agen (serta dapat digunakan untuk panggilan keluar). Dua sumber:

* **Nomor demo** — nomor AS nyata yang disediakan dari kumpulan nomor
  ThunderPhone, aktif dalam hitungan detik. Hanya untuk panggilan masuk, nomor ini menjawab dengan
  penafian lisan singkat, dan dashboard membatasi organisasi hingga 10 nomor. Cocok untuk
  pengujian pertama; bukan untuk produksi.
* **Nomor VoIP** — dibawa dari penyedia Anda sendiri melalui
  [koneksi VoIP](#connections). Twilio dan Telnyx terhubung secara langsung
  (Telnyx memiliki penyiapan terpandu); SignalWire dan Vonage akan segera tersedia —
  saat ini Anda dapat menjangkaunya melalui konfigurasi SIP manual, yang menerima trunk
  SIP apa pun. Setelah diimpor dan diverifikasi, nomor VoIP mendukung panggilan masuk
  dan keluar.

Setiap baris nomor memungkinkan Anda menetapkan mode perutean, memilih agen untuk panggilan masuk,
dan memberi label pada nomor.

**Di dashboard:** **Nomor Telepon** (`/dashboard/phone-numbers`).
Lihat [Dapatkan nomor telepon](/id/guides/get-a-phone-number).

**Di API:** [`/v1/phone-numbers`](/api-reference/phone-numbers),
[`/v1/voip-connections`](/api-reference/voip-connections),
[`/v1/phone-number-labels`](/api-reference/phone-number-labels).

***

## Panggilan

Setiap panggilan masuk, panggilan keluar, simulasi, dan sesi widget
menjadi **log panggilan**. Sebuah panggilan memuat transkrip lengkap dengan penanda peran,
riwayat giliran terstruktur (termasuk pemanggilan alat), rekaman, total
penagihan, serta penilaian AI dan laporan masalah opsional.

Saat panggilan **langsung**, Anda dapat membukanya dan **menyimak** — Anda bergabung
secara diam-diam, dan tidak ada pihak dalam panggilan yang mendengar Anda. Setelah menyimak,
Anda dapat **berbisik**: ketik instruksi yang langsung dikirim ke agen Anda
di tengah panggilan; penelepon tidak pernah mendengarnya, dan agen
mengikutinya secara langsung.

**Di dashboard:** **Riwayat Panggilan** (`/dashboard/call-history`) untuk
arsip dan detail tiap panggilan; **Langsung** untuk panggilan yang sedang berlangsung. Lihat
[Tinjau, dengarkan, dan bimbing panggilan Anda](/id/guides/review-calls).

**Di API:** [`/v1/calls`](/api-reference/calls) — daftar, transkrip,
riwayat, audio, penilaian, ekspor;
[`/v1/issue-reports`](/api-reference/issue-reports).

***

## Widget web

**Widget web** memberi pengunjung situs Anda percakapan berbasis mikrofon
dengan agen — tanpa memerlukan nomor telepon. Widget ini melakukan autentikasi dengan
**kunci yang dapat dipublikasikan** (`pk_live_...`) yang dikunci ke origin
untuk domain yang Anda izinkan, sehingga aman digunakan dalam kode sisi klien.

Kunci berjalan dalam salah satu dari dua mode: `agent` (terikat secara statis ke satu agen)
atau `webhook` (server Anda memilih konfigurasi untuk setiap pengunjung — lihat
[Konfigurasi dinamis per panggilan](/id/guides/dynamic-call-config)). Sesi widget
mengalir melalui infrastruktur panggilan yang sama dengan panggilan telepon.

**Di dashboard:** **Widget Web** (`/dashboard/web-widgets`) —
buat widget, tetapkan mode dan agen, kelola domain yang diizinkan, dan
salin cuplikan sematan. Lihat
[Buat widget web](/id/guides/embed-a-web-widget-dashboard).

**Di API:** [`/v1/publishable-key`](/api-reference/publishable-keys),
[`/v1/mic-session`](/api-reference/mic-sessions), dan
[dokumentasi SDK Widget](/id/widget/overview).

***

## Basis pengetahuan

Sebuah **basis pengetahuan** adalah kumpulan dokumen yang dapat dicari oleh agen Anda
di tengah panggilan untuk mendasari jawabannya — unggah file secara langsung atau impor dari
Google Drive, lalu lampirkan basis pengetahuan ke agen di
builder. Agen menggunakan alat pencarian bawaan untuk menanyakannya setiap kali
percakapan memerlukannya.

**Di dashboard:** **Pengetahuan** (`/dashboard/knowledge`) untuk
perpustakaan dokumen; bagian **Pengetahuan** di builder untuk melampirkannya ke
agen. Lihat
[Berikan agen Anda basis pengetahuan](/id/guides/knowledge-base).

***

## Koneksi

Koneksi adalah cara agen menjangkau dunia luar. Empat jenis, satu
grup sidebar:

* **Aplikasi** (`/dashboard/app-connections`) — koneksi OAuth ke
  Slack, HubSpot, Salesforce, Google Calendar, Google Sheets, dan
  Cal.com. Hubungkan sekali, lalu aktifkan alat per operasi (mengirim
  pesan Slack, memperbarui atau menyisipkan kontak HubSpot, memesan
  slot Cal.com…) untuk agen mana pun. Lihat [Hubungkan aplikasi](/id/guides/connect-apps).
* **API** (`/dashboard/api-connections`) — ubah API HTTP apa pun
  menjadi tindakan agen. Tempelkan perintah cURL dan wizard AI akan
  menyusun draf definisi alat, atau buat secara manual; tombol
  **Uji Permintaan** menjalankan panggilan sandbox sebelum Anda
  melakukan deployment. Lihat
  [Koneksi API](/id/guides/api-connections) — antarmuka dashboard untuk
  [`/v1/integrations`](/api-reference/integrations).
* **MCP** (`/dashboard/mcp-connections`) — tambahkan server Model Context
  Protocol melalui URL dan biarkan agen menggunakan alat yang
  disediakannya. Lihat [Tambahkan server MCP](/id/guides/mcp-servers).
* **VoIP** (`/dashboard/voip-connections`) — kredensial penyedia untuk
  [menggunakan nomor telepon Anda sendiri](#phone-numbers). Lihat
  [Hubungkan penyedia VoIP](/id/guides/voip-providers).

**Di API:** [`/v1/integrations`](/api-reference/integrations) dan
[`/v1/voip-connections`](/api-reference/voip-connections); lihat juga
[Buat integrasi alat](/id/guides/build-tool-integration).

***

## Kampanye

Sebuah **kampanye** melakukan panggilan keluar dalam skala besar:
unggah CSV kontak, pilih agen dan nomor asal, lalu tetapkan jendela
panggilan (hari dan jam, dengan mempertimbangkan zona waktu),
konkurensi, dan kebijakan percobaan ulang (jumlah percobaan maksimum
serta hasil mana — tidak dijawab, pesan suara, gagal — yang akan
dicoba ulang). Kampanye memproses daftar tersebut dan mencatat setiap
panggilan di Riwayat Panggilan.

**Di dashboard:** **Kampanye** (`/dashboard/campaigns`). Lihat
[Jalankan kampanye panggilan keluar](/id/guides/outbound-campaigns).

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

***

## Pemantauan langsung

**Langsung** menampilkan setiap panggilan yang sedang berlangsung di
seluruh organisasi, dan memungkinkan Anda membuka panggilan mana pun
untuk [menyimak dan berbisik](#calls) secara real time. Ini adalah
area supervisi: pantau Prompt baru menerima trafik nyata pertamanya,
atau awasi kampanye yang sedang berjalan.

**Di dashboard:** **Langsung** (`/dashboard/live`). Lihat
[Amati dan supervisi panggilan langsung](/id/guides/monitor-live-calls).

***

## Simulasi

Sebuah **simulasi** adalah penelepon AI yang melakukan percakapan nyata
dengan agen Anda — jalur telepon yang sama, transkrip nyata, penilaian
nyata — sehingga Anda dapat menguji sebelum (dan setelah) melakukan
deployment. Arahkan ke agen atau nomor telepon, tulis sendiri skenario
penelepon atau **buat skenario dengan AI** dari Prompt agen (termasuk
kasus tepi, jika Anda memintanya), lalu pantau panggilannya secara
langsung.

Skenario dikelompokkan ke dalam **suite** yang menetapkan tingkat
kelulusan minimum dan dapat menjadi gerbang rilis di CI; regresi
terhadap baseline yang diterima dilaporkan per skenario.

**Di dashboard:** **Simulasi** (`/dashboard/simulations`), serta
tombol **Simulasi** di dalam pembuat agen. Lihat
[Simulasikan panggilan](/id/guides/simulate-a-call).

**Di API:** [`/v1/test-calls`](/api-reference/test-calls) dan runner
suite — lihat [Uji agen secara menyeluruh](/id/guides/test-agents).

***

## Eksperimen

Sebuah **eksperimen** menguji A/B konfigurasi agen pada trafik langsung:
tentukan varian (Prompt, mesin, atau pengaturan yang berbeda), bagi
trafik di antara varian tersebut, dan bandingkan hasil per varian.
Gunakan ini alih-alih membuat logika bucket secara manual di webhook.

**Di dashboard:** **Eksperimen** (`/dashboard/experiments`) dan tab
**A/B** di pembuat agen. Lihat
[Eksperimen (pengujian A/B)](/id/guides/experiments-ab-testing).

***

## Masalah

Sebuah **masalah** adalah problem yang ditandai pada panggilan tertentu — dilaporkan oleh
peninjau manusia atau terdeteksi oleh penilaian AI. Masalah memiliki tingkat keparahan,
sumber, dan status, dan halaman Masalah adalah antrean triase: filter,
periksa panggilan yang bermasalah, dan lacak perbaikannya.

**Di dasbor:** **Masalah** (`/dashboard/issues`), serta penandaan per panggilan
di Riwayat Panggilan. Lihat [Triase masalah](/id/guides/issues).

**Di API:** [`/v1/issue-reports`](/api-reference/issue-reports).

***

## Laporan

Sebuah **laporan** menjawab pertanyaan bahasa alami tentang data panggilan Anda
("Apa tiga alasan utama penelepon meminta perwakilan manusia minggu
lalu?") dengan analisis yang ditulis AI, dibatasi pada agen dan rentang
tanggal yang Anda pilih.

**Di dasbor:** **Laporan** (`/dashboard/reports`). Lihat
[Laporan](/id/guides/reports).

***

## Observabilitas

**Observabilitas** adalah tampilan metrik: Volume panggilan, hasil, dan
kualitas dari waktu ke waktu, dapat difilter berdasarkan agen dan rentang waktu,
dengan ekspor untuk analisis lanjutan.

**Di dasbor:** **Observabilitas** (`/dashboard/observability`).
Lihat [Observabilitas](/id/guides/observability).

***

## Peringatan

Sebuah **aturan peringatan** memantau metrik (tingkat keberhasilan, tingkat kegagalan,
skor rata-rata, Volume panggilan, regresi suite) selama rentang waktu dan
memicu saat metrik tersebut melewati ambang batas Anda. Notifikasi dikirim ke email dan
Slack, serta memicu peristiwa `alert.triggered` ke
[endpoint webhook](/id/webhooks/endpoints) Anda.

**Di dasbor:** **Organisasi → Peringatan**. Lihat
[Peringatan](/id/guides/alerts).

***

## Webhook

ThunderPhone mengirim **webhook HTTP POST** ke server Anda saat berbagai hal
terjadi selama dan setelah panggilan. Dua model pengiriman:

* **Endpoint webhook** (direkomendasikan): kelola banyak URL di
  [`/v1/developer/webhook-endpoints`](/id/webhooks/endpoints) dengan
  secret per endpoint dan langganan peristiwa per endpoint.
* **Webhook URL tunggal lama**: satu URL per organisasi. Dikelola di
  [`/v1/webhook`](/api-reference/organizations#legacy-single-url-webhook)
  atau di bawah **Organisasi → Umum**. Dipertahankan untuk kompatibilitas mundur.

Peristiwa dibagi menjadi dua kelas:

* **Peristiwa pemblokiran** mengharapkan server Anda merespons dengan konfigurasi
  yang membentuk panggilan yang sedang berlangsung — yaitu
  [peristiwa panggilan masuk](/id/webhooks/call-incoming)
  (`telephony.incoming` / `web.incoming`). Anda memiliki waktu hingga 10 detik
  untuk merespons; saat waktu habis, agen yang ditetapkan secara statis menangani
  panggilan.
* **Peristiwa nonpemblokiran** adalah notifikasi fire-and-forget, dicoba ulang
  dengan backoff eksponensial — lihat
  [semantik pengiriman](/id/webhooks/overview).

Setiap permintaan membawa tanda tangan HMAC-SHA256 di
`X-ThunderPhone-Signature`. Lihat
[Verifikasi tanda tangan](/id/webhooks/overview).

***

## Alat fungsi

Sebuah **alat fungsi** adalah endpoint HTTP yang dapat dipanggil agen Anda
di tengah percakapan. Anda memberikan ThunderPhone skema fungsi bergaya OpenAI
beserta URL endpoint; agen memutuskan kapan harus memanggilnya, dan
ThunderPhone membuat permintaan HTTP bertanda tangan dari servernya serta meneruskan
hasilnya kembali ke agen.

Agen juga dilengkapi **kemampuan panggilan bawaan** — mentransfer panggilan,
mengirim input keypad (DTMF), mengakhiri panggilan, menunggu dalam antrean — yang
Anda aktifkan dengan baris Prompt biasa, bukan definisi alat.

**Di dasbor:** bagian **Koneksi API** pada builder (lihat
[Koneksi](#connections)).

**Di API:** [`/v1/integrations`](/api-reference/integrations) dan
[spesifikasi Alat Fungsi](/id/tools/overview).

***

## Tim dan peran

Setiap organisasi memiliki daftar anggota dengan dua peran: **Anggota** membangun
dan mengoperasikan agen; **Admin** juga mengelola tim dan penagihan.
Undang melalui email — undangan kedaluwarsa setelah 7 hari dan dapat dicabut;
menu ⋯ pada baris anggota mengubah peran atau menghapus seseorang. Masuk
tunggal dapat dikonfigurasi untuk seluruh organisasi — lihat [SSO](/id/guides/sso).

**Di dasbor:** **Organisasi → Umum**. Lihat
[Undang tim Anda](/id/guides/invite-your-team).

**Di API:** [`/v1/members`](/api-reference/members),
[`/v1/invites`](/api-reference/invites).

## Penagihan

ThunderPhone bersifat **prabayar**. Setiap organisasi memiliki saldo USD; panggilan
menguranginya berdasarkan tarif per menit agen (tingkat mesin ditambah biaya tambahan —
builder menampilkan tarif total secara langsung saat Anda mengubah pengaturan, dan
[bahasa premium](/id/guides/supported-languages) menambahkan 2¢/menit). Saat
saldo mencapai nol, panggilan masuk ditolak dan panggilan keluar mengembalikan
`402 Payment Required`.

Isi saldo secara manual, atau aktifkan **isi saldo otomatis** dengan ambang saldo, jumlah
pengisian, dan batas pengeluaran bulanan opsional — sehingga panggilan
tidak pernah terputus di tengah kalimat.

**Di dashboard:** **Organisasi → Pengaturan Penagihan** dan
**Riwayat Penagihan**. Lihat
[Tambah dana dan aktifkan isi saldo otomatis](/id/guides/billing-and-topups).

**Di API:** [`/v1/billing`](/api-reference/billing).

***

## Kopilot dalam aplikasi

Dashboard dilengkapi **kopilot** bawaan — tanyakan "bagaimana cara X"
dan kopilot akan menjawab berdasarkan dokumentasi ini, menawarkan panduan
langkah demi langkah yang menyoroti kontrol sebenarnya, serta dapat memutar ulang tur
terpandu apa pun. Ini adalah cara tercepat untuk menemukan kontrol yang disebutkan halaman ini.
Lihat [Tanyakan kepada kopilot dalam aplikasi](/id/guides/ask-the-copilot).

***

## Menggabungkan semuanya

<CardGroup cols={2}>
  <Card title="Mulai cepat dashboard" icon="wand-magic-sparkles" href="/id/quickstart-dashboard">
    Wizard lima langkah: agen → penagihan → nomor → simulasi → peninjauan.
  </Card>

  <Card title="Mulai cepat API" icon="terminal" href="/id/quickstart">
    Panggilan pertama yang sama dalam empat panggilan REST.
  </Card>

  <Card title="Menggunakan dashboard" icon="table-columns" href="/id/guides/build-an-agent">
    Buat agen, isi dananya, dapatkan nomor, lakukan simulasi, dan tinjau panggilan.
  </Card>

  <Card title="Hubungkan alat & data" icon="plug" href="/id/guides/connect-apps">
    Aplikasi OAuth, API kustom, server MCP, dan penyedia VoIP.
  </Card>

  <Card title="Analisis & tingkatkan" icon="chart-line" href="/id/guides/reports">
    Laporan, observabilitas, eksperimen, masalah, dan peringatan.
  </Card>

  <Card title="Tim & akun" icon="users" href="/id/guides/invite-your-team">
    Undangan dan peran, kunci API, keamanan, dan SSO.
  </Card>

  <Card title="Buku resep developer" icon="phone-arrow-down-left" href="/id/guides/handle-inbound-calls">
    Resep API: masuk, keluar, konfigurasi dinamis, alat, pengujian.
  </Card>

  <Card title="Verifikasi tanda tangan webhook" icon="shield-check" href="/id/guides/verify-webhook-signatures">
    Lakukan pemeriksaan HMAC dengan benar sekali, lalu gunakan kembali di mana saja.
  </Card>
</CardGroup>
