---
title: "Alat bawaan"
description: "Berikan Prompt kepada agen ThunderPhone untuk mengakhiri panggilan, mengalihkan penelepon, menavigasi keypad, menunggu dalam antrean, mencari pengetahuan, memutar suara, mengirim email, dan menghitung total."
---

Alat bawaan memungkinkan agen melakukan tindakan panggilan umum tanpa menghubungkan API Anda sendiri. Sebagian besar tersedia secara otomatis; email, suara, kalkulator, dan pencarian pengetahuan hanya muncul setelah Anda mengonfigurasi pengaturan atau sumber terkait. Beri tahu agen kapan harus menggunakan setiap tindakan dalam Prompt-nya.

| Alat | Gunakan untuk | Cara mengaktifkannya | Panggilan yang didukung |
| --- | --- | --- | --- |
| `end_call` | Mengakhiri percakapan yang telah selesai | Selalu tersedia | Telepon, Talk browser, widget, simulasi, dan Realtime |
| `transfer_call` | Merutekan penelepon telepon | Konfigurasikan perutean dalam Prompt | Panggilan telepon biasa; Realtime inline dengan `call_events` dapat menggunakan transfer dingin. Realtime agen tersimpan tidak menyertakannya. |
| `send_keypad_input` | Menekan tombol dalam menu telepon | Selalu tersedia pada panggilan telepon biasa | Panggilan telepon; Realtime keluar inline dengan `call_events`. Realtime agen tersimpan tidak menyertakannya. |
| `no_response` | Tetap mendengarkan saat menu otomatis berbicara atau penelepon berpikir keras; penelepon yang meminta agen menunggu hanya mendapat "Tentu." | Selalu tersedia | Semua jenis panggilan |
| `wait_on_hold` | Menunggu dalam diam hingga seseorang kembali | Disertakan pada panggilan keluar | Sesi telepon keluar dan Realtime inline keluar |
| `search_knowledge_base` | Menjawab dari sumber yang dilampirkan | Lampirkan pengetahuan ke agen | Panggilan agen tersimpan dengan pengetahuan yang dilampirkan |
| `play_sound` | Memutar suara notifikasi yang dikonfigurasi | **Lanjutan → Suara alat** | Panggilan agen tersimpan |
| `send_email` | Mengirim email ke satu penerima tetap | **Lanjutan → Kirim email** | Panggilan agen tersimpan |
| `calculate` | Menjumlahkan total, biaya, dan kembalian secara tepat | **Lanjutan → Kalkulator** | Panggilan agen tersimpan |

## `end_call`

Mengakhiri panggilan saat ini ketika Prompt mengarahkan model untuk melakukannya. Alat ini tersedia secara default dan tidak memiliki pengaturan agen.

Tulis kondisi dan salam perpisahan yang diperlukan dalam Prompt:

```text
When the caller confirms they need nothing else, say goodbye and end the call.
```

Panggilan yang diakhiri model memiliki `end_reason: "ai_hangup"`, termasuk panggilan yang berakhir setelah peringatan batas waktu panggilan. Panggilan berakhir dengan `max_duration` hanya jika batas waktu tercapai lebih dahulu, dan dengan `balance_exhausted` saat saldo prabayar habis.

## `transfer_call`

Mentransfer penelepon telepon ke nomor tetap yang diberikan oleh model. Transfer dingin berlangsung langsung. Transfer hangat dengan penyaringan secara pribadi menelepon tujuan sebelum menghubungkan kedua pihak. Transfer hangat memerlukan nomor VoIP impor terverifikasi yang dapat melakukan panggilan keluar.

Cantumkan nomor tujuan dan kondisi perutean yang tepat dalam Prompt:

```text
If the caller asks for billing, transfer them to +15551234567.
```

Transfer dingin yang berhasil memiliki `end_reason: "ai_transfer"`; handoff hangat yang selesai memiliki `end_reason: "ai_warm_transfer"`. Upaya transfer hangat yang gagal mengembalikan kendali kepada agen, sehingga akhir panggilan berikutnya menentukan alasan akhirnya. Pada sesi non-telepon, permintaan transfer akan mengakhiri sesi.

Lihat [Mentransfer panggilan](/id/guides/call-transfers) untuk penyiapan dashboard dan API, perutean, penyaringan, penanganan kegagalan, batas, dan pengujian.

## `send_keypad_input`

Mengirim digit DTMF (keypad telepon) `0`–`9`, `*`, dan `#` ke saluran telepon. Model menggunakannya untuk menavigasi IVR, menu otomatis yang meminta penelepon menekan tombol. Alat ini tersedia secara default dan tidak memiliki pengaturan agen.

Beri tahu model menu mana yang dapat dinavigasi dan dari mana nilai yang diminta berasal. Jangan memintanya menebak opsi menu:

```text
Follow the phone menu for account status. Press a key only after the menu
states what that key does. Enter the account number supplied by the caller.
```

Platform menghapus karakter yang tidak didukung dan mengirim digit yang valid secara berurutan. Jika tidak ada digit valid yang tersisa atau panggilan tidak dapat mengirim input keypad, kegagalan dikembalikan kepada agen agar dapat memulihkannya.

## `no_response`

Menjaga agen tetap diam saat sistem otomatis masih berbicara atau memintanya
untuk terus mendengarkan, serta saat penelepon berpikir keras ("um, coba saya lihat") atau beralih
untuk berbicara dengan orang lain. Saat penelepon meminta agen menunggu sementara mereka melakukan sesuatu
("sebentar", "biar saya cek", "bisa tunggu sebentar?") dan tidak memberinya hal lain
untuk dijawab, agen hanya mengatakan "Tentu." (bukan "Silakan saja") dan
menunggu penelepon berbicara lagi. Pengecekan saat hening oleh agen tetap berjalan,
dan selalu diucapkan, jika sambungan tetap sunyi. Ini bukan untuk
salam dari orang sungguhan, pertanyaan, atau antrean tunggu yang sebenarnya. Fitur ini tersedia secara default
dan tidak memiliki pengaturan agen.

Jika Prompt Anda memberi tahu agen apa yang harus dikatakan saat penelepon meminta waktu sejenak,
Prompt tersebut diutamakan.

Biasanya, deskripsi bawaan sudah cukup. Untuk panggilan yang banyak menggunakan IVR, tegaskan batasannya dalam Prompt:

```text
Stay silent while a phone menu is still speaking. Answer a live person as soon
as they address you.
```

Tindakan ini tidak mengakhiri panggilan.

## `wait_on_hold`

Menempatkan agen panggilan keluar dalam status tunggu hening hingga orang sungguhan kembali.
Model menggunakannya hanya setelah pihak lain secara eksplisit menyatakan bahwa agen sedang
ditahan. Alat ini otomatis tersedia pada panggilan keluar dan tidak memiliki
pengaturan dasbor.

```text
If a person explicitly puts you on hold, wait silently. When they return,
continue from the question you were discussing.
```

Jangan mendorong agen untuk menggunakannya pada pesan IVR "mohon tunggu". Status tunggu berlangsung
hingga 15 menit secara default. Untuk panggilan keluar biasa, `POST /v1/call`
menerima `max_hold_seconds` berupa bilangan bulat positif; Realtime inline membatasi
`max_hold_seconds` hingga 10–900 detik. Jika orang tersebut
kembali, agen melanjutkan tanpa mengubah alasan akhir panggilan. Jika batas
berakhir, Platform mengakhiri panggilan dengan `end_reason: "ai_hangup"`.

## `search_knowledge_base`

Mencari dokumen yang dilampirkan ke agen dan mengembalikan bagian yang relevan. Lampirkan
basis pengetahuan atau dokumen pengetahuan individual untuk mengaktifkannya, lalu beri tahu
model jawaban mana yang harus berasal dari sumber tersebut:

```text
Search the knowledge base before answering policy questions. If the first
search is inconclusive, try once more with different key terms.
```

Jika pencarian gagal, hasilnya dikembalikan ke agen. Lihat [Basis
pengetahuan](/id/guides/knowledge-base) untuk penyiapan dasbor dan API.

## `play_sound`

Memutar suara notifikasi yang dikonfigurasi agen setelah ucapan apa pun pada giliran
yang sama. Di dasbor, atur **Lanjutan → Suara alat** ke **Chime**, **Ding**,
atau **Beep**, lalu terapkan agen. **Tidak ada** menghapus alat ini.

Dengan [API Agen](/api-reference/agents), tetapkan `play_sound_asset` sebagai
`"chime"`, `"ding"`, atau `"beep"`, lalu terapkan. Atur ke `""` untuk menonaktifkan
alat ini.

```text
After confirming that an appointment was saved, say "You're all set" and play
the notification sound.
```

Kegagalan pemutaran dikembalikan ke agen dan tidak mengakhiri panggilan.

## `send_email`

Mengirim email teks biasa ke satu penerima yang dikonfigurasi oleh pemilik agen.
Model menyediakan subjek dan isi email. Model tidak pernah melihat parameter penerima
dan tidak dapat memilih atau mengubah alamatnya.

Di dasbor, aktifkan **Lanjutan → Kirim email**, simpan alamat penerima,
lalu terapkan agen. Dengan [API Agen](/api-reference/agents), tetapkan
`send_email_enabled: true` dan `send_email_recipient` yang tidak kosong, lalu terapkan.
Tentukan pemicu dan konten yang diperlukan dalam Prompt:

```text
When the caller asks to leave a message, collect their name, callback number,
and message. Read the details back for confirmation, then email them.
```

Satu panggilan dapat mencoba mengirim paling banyak tiga email. Setiap subjek dibatasi hingga 300
karakter dan setiap isi hingga 20.000 karakter. Konfigurasi yang tidak ada, konten tidak valid,
batas per panggilan, dan kegagalan pengiriman dikembalikan ke agen.
Pengiriman yang gagal tetap menggunakan satu dari tiga percobaan.

Uji dengan penerima yang terkendali sebelum menerapkan secara luas. Talk browser dan
simulasi mengirim email nyata; tidak ada mode dry-run.

## `calculate`

Mengevaluasi ekspresi aritmetika secara tepat dan mengembalikan hasilnya, sehingga agen tidak menjumlahkan harga secara mental. Fitur ini nonaktif secara default. Di dasbor, aktifkan **Lanjutan → Kalkulator**, lalu deploy agen. Dengan [API Agen](/api-reference/agents), tahap `calculator_enabled: true`, lalu deploy.

Model menulis ekspresi, seperti `2*23.5 + 16.5 + 4`, dan membacakan hasilnya kepada penelepon. Ekspresi dapat menggunakan angka, `+`, `-`, `*`, `/`, dan tanda kurung. Satu panggilan dapat memuat hingga 10 ekspresi yang dipisahkan oleh `;`, seperti subtotal dan total dengan biaya pengiriman, hingga 500 karakter secara keseluruhan. Hasil dibulatkan hingga 10 tempat desimal. Perhitungannya menggunakan aritmetika desimal yang tepat, sehingga `0.1 + 0.2` menghasilkan `0.3`. Pembagian dengan nol dan kesalahan lain dalam ekspresi dikembalikan kepada agen sebagai error untuk diperbaiki. Fitur ini berjalan di ThunderPhone dan menjawab secara instan, tanpa kalimat pengisi atau suara mengetik.

Aktifkan untuk agen yang menyebutkan total pesanan, biaya, atau uang kembalian. Tidak diperlukan perubahan Prompt.

## Catatan kompatibilitas

Pengaturan **Lanjutan → Pengungkapan yang tidak dapat disela** dan kolom lama
`speak_uninterruptible_enabled` tetap tersedia untuk kompatibilitas, tetapi mengaktifkannya
tidak berdampak. Biarkan pengaturan nonaktif; tidak ada Prompt yang dapat mengaktifkan alat ini.

Untuk pengungkapan wajib saat membuka panggilan, gunakan **Pengumuman persetujuan**. Pengumuman ini diputar
secara persis sebelum percakapan biasa dan tidak dapat disela. Lihat [Undang-undang persetujuan
perekaman panggilan](/id/guides/recording-consent-laws).

## Uji dan pantau alat bawaan

Gunakan Talk browser atau simulasi untuk memeriksa Prompt, pencarian pengetahuan, suara,
dan email. Lingkungan tersebut tidak dapat mereproduksi perilaku jaringan telepon. Uji
navigasi keypad dan status tunggu pada panggilan telepon keluar, serta uji serah terima hangat lengkap
pada panggilan nyata menggunakan nomor VoIP impor yang memenuhi syarat. Dukungan Realtime
terbatas seperti yang ditampilkan dalam tabel di atas.

## Panggilan, harga, dan webhook

Tindakan bawaan tidak memiliki biaya alat per penggunaan. Biaya panggilan dan
provider normal tetap berlaku; lihat [Harga](/id/guides/pricing). Panggilan dan hasilnya dapat muncul
dalam transkrip yang selesai, tetapi tidak memancarkan `telephony.tool` atau `web.tool`.
Peristiwa tersebut untuk [fungsi yang ditentukan pengguna](/id/tools/overview). Hanya
penutupan panggilan atau transfer yang selesai mengubah `end_reason` panggilan; kegagalan lainnya dikembalikan
ke agen. Lihat [Webhook penyelesaian](/id/webhooks/call-complete) untuk catatan
panggilan.
