> ## 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.

# Menangani panggilan masuk (API)

> Dari awal hingga akhir: konfigurasi agen, tetapkan ke nomor telepon, terima panggilan, dan periksa transkrip.

<Note>
  Membuat agen pertama Anda secara manual? Dasbor memandu alur yang sama persis
  — buat agen, tambahkan nomor, simulasikan, tinjau — dengan
  wizard terpandu. Mulai dari
  [panduan cepat dasbor](/id/quickstart-dashboard).
</Note>

Alur kanonis "menjawab telepon dengan AI", dari terminal Anda.
Anda akan:

1. Membuat agen dengan Prompt dan suara.
2. Menyediakan (atau membawa) nomor telepon dan menetapkan agen sebagai
   penangan panggilan masuknya.
3. Menelepon nomor tersebut. Amati log panggilan, transkrip, dan rekaman.

Total panggilan API: empat. Total waktu: kurang dari lima menit.

## 1. Buat agen

Agen menggabungkan Prompt, suara, dan tingkat produk yang akan menangani
panggilan. Lihat [Agen](/api-reference/agents) untuk setiap kolom konfigurasi;
minimum yang diperlukan adalah:

```bash theme={null}
curl -X POST https://api.thunderphone.com/v1/agents \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name":    "Acme Support",
    "prompt":  "You are a friendly support agent for Acme. Help callers with orders and returns. Keep answers short.",
    "voice":   "john",
    "product": "spark"
  }'
```

Simpan `id` yang dikembalikan — Anda akan membutuhkannya pada langkah 2.

<Tip>
  Pilih `spark` untuk tanya jawab sederhana dengan biaya terendah, `bolt` saat kecepatan
  paling penting. Tingkatkan ke `storm-base-with-ack` saat Prompt Anda
  memerlukan penalaran yang lebih mendalam dan dapat menoleransi pengisi selama setengah detik ketika
  Model berpikir. Lihat
  [tingkat produk](/api-reference/agents#product-tiers-at-a-glance).
</Tip>

## 2. Dapatkan nomor telepon

Jika Anda hanya memerlukan nomor untuk dihubungi, sediakan nomor demo
dari kumpulan ThunderPhone:

```bash theme={null}
curl -X POST https://api.thunderphone.com/v1/phone-numbers \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"area_code": "415"}'
```

Respons menyertakan `id` dan `number` dalam format E.164. Nomor demo
dimulai dengan `status="provisioning"` dan menjadi `active` dalam beberapa
detik — lakukan polling pada
[`GET /v1/phone-numbers/{id}`](/api-reference/phone-numbers#retrieve-a-phone-number)
untuk memantau perubahan jika diperlukan.

<Note>
  Untuk produksi, lewati nomor demo dan
  [bawa nomor Anda sendiri melalui VoIP](/id/guides/bring-your-own-numbers).
  Nomor demo hanya untuk panggilan masuk dan dibatasi Volume-nya.
</Note>

## 3. Tetapkan agen

Kaitkan agen dari langkah 1 dengan arah panggilan masuk nomor tersebut:

```bash theme={null}
curl -X PATCH https://api.thunderphone.com/v1/phone-numbers/{phone_id} \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"inbound_agent_id": 12}'
```

Selesai — nomor tersebut aktif. Anda juga dapat menetapkan `outbound_agent_id`
dalam PATCH yang sama agar nomor tersebut juga siap melakukan panggilan keluar.

## 4. Terima panggilan

Hubungi nomor tersebut dari ponsel Anda. Agen akan menjawab, memperkenalkan diri
sesuai Prompt Anda, dan percakapan dimulai.

Saat panggilan berlangsung, panggilan akan muncul di
[`GET /v1/calls`](/api-reference/calls#list-calls) dengan
`status="in_progress"`. Ketika berakhir, catatan diperbarui dengan
`end_reason`, `duration_seconds`, `billable_minutes`, dan (pada akhirnya)
URL rekaman serta penilaian AI.

## 5. Periksa hasilnya

Ambil daftar panggilan terbaru:

```bash theme={null}
curl 'https://api.thunderphone.com/v1/calls?limit=5' \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"
```

Ambil transkrip:

```bash theme={null}
curl https://api.thunderphone.com/v1/calls/{call_id}/transcript \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"
```

Dan URL rekaman (berumur singkat, ditandatangani):

```bash theme={null}
curl https://api.thunderphone.com/v1/calls/{call_id}/audio \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"
```

Jika Anda berlangganan ke
[webhook `telephony.complete`](/id/webhooks/events)
Anda akan menerima data yang sama sebagai POST ke server Anda — lihat
[call.complete](/id/webhooks/call-complete).

***

## Langkah berikutnya

<CardGroup cols={2}>
  <Card title="Konfigurasi dinamis per panggilan" icon="bolt" href="/id/guides/dynamic-call-config">
    Pilih agen yang berbeda untuk setiap penelepon berdasarkan nomor telepon atau
    logika kustom dalam webhook.
  </Card>

  <Card title="Tambahkan integrasi tool" icon="screwdriver-wrench" href="/id/guides/build-tool-integration">
    Biarkan agen memanggil API Anda di tengah percakapan.
  </Card>

  <Card title="Terima webhook call.complete" icon="bolt" href="/id/webhooks/call-complete">
    Streaming setiap panggilan yang selesai ke pipeline CRM / analitik Anda.
  </Card>

  <Card title="Penilaian AI dan laporan masalah" icon="chart-line" href="/api-reference/calls#ai-call-grading">
    Nilai setiap panggilan secara otomatis dan arahkan panggilan yang ditandai untuk ditinjau.
  </Card>
</CardGroup>
