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

# Mengatur Custom Action untuk Integrasi API Call

> Panduan dan contoh implementasi integrasi Custom Action untuk pemanggilan API eksternal secara dinamis saat chat berlangsung

**Custom Actions** adalah fitur tingkat lanjut khusus akun **Premium** yang memungkinkan Chat AI memanggil *tools* eksternal secara mandiri selama percakapan berlangsung, seperti memeriksa basis data internal, mengecek status pesanan ke sistem ERP/CRM, atau memicu webhook otomasi.

![Kartu Custom Actions Premium pada Tab Actions](https://mintcdn.com/dripsender/kIsn-jyNQ4PGY5vv/images/chat-ai/action-custom-action.png?fit=max\&auto=format\&n=kIsn-jyNQ4PGY5vv\&q=85\&s=906b3f459495af051b3a9e07d55ed634)

## Prasyarat

> [!TIP]
>
> Akun DripSender memiliki akses fitur **Premium Custom Actions** (hubungi admin untuk aktivasi).

> [!TIP]
>
> Anda memiliki endpoint REST API atau Webhook yang siap menerima request data.

***

## Langkah-Langkah Konfigurasi Custom Actions

**1. 1. Membuka Menu Custom Actions di Tab Actions**

Buka menu **WhatsApp** > **Chat AI** > tab **Automation** > **Actions**, lalu gulir ke kartu **Custom Actions**.

![Kartu Custom Actions Premium pada Tab Actions](https://mintcdn.com/dripsender/kIsn-jyNQ4PGY5vv/images/chat-ai/action-custom-action.png?fit=max\&auto=format\&n=kIsn-jyNQ4PGY5vv\&q=85\&s=906b3f459495af051b3a9e07d55ed634)

Klik tombol **Pelajari Lebih Lanjut** untuk mendaftarkan endpoint atau menghubungi admin aktivasi paket Premium.

**2. 2. Menentukan Skenario Kasus Nyata: Cek Status Pesanan**

**Masalah:** Pelanggan sering mengirim pesan *"Kak, mau cek pesanan saya dengan nomor invoice INV-98231 sudah sampai mana ya?"*.

**Solusi:** AI secara cerdas mendeteksi nomor invoice pelanggan, memanggil API internal toko secara otomatis di latar belakang, membaca status pengiriman dari database sistem, lalu menjawab pelanggan dengan data *real-time*.

```mermaid theme={null}
sequenceDiagram
    autonumber
    Pelanggan->>Chat AI: "Kak mau cek invoice INV-98231 dong"
    Chat AI->>Backend API: GET https://api.tokosaya.com/orders/INV-98231
    Backend API-->>Chat AI: 200 OK { status: "Dikirim", kurir: "JNE", resi: "JNE88219" }
    Chat AI->>Pelanggan: "Pesanan nomor INV-98231 berstatus *Dikirim* via JNE dengan no resi JNE88219 ya kak!"
```

**3. 3. Menyusun Definisi Skema Fungsi JSON Tool**

Saat mendaftarkan Custom Action ke Chat AI, sistem memerlukan definisi skema fungsi agar AI memahami kapan dan bagaimana tool dipanggil:

```json theme={null}
{
  "name": "cek_status_pesanan",
  "description": "Panggil tool ini ketika pelanggan menanyakan status pengiriman, proses order, atau melampirkan nomor invoice pesanan.",
  "parameters": {
    "type": "object",
    "properties": {
      "nomor_invoice": {
        "type": "string",
        "description": "Nomor invoice atau kode pesanan pelanggan, contoh: INV-12345"
      }
    },
    "required": ["nomor_invoice"]
  }
}
```

**4. 4. Mengonfigurasi Request HTTP API & Autentikasi**

Tentukan parameter koneksi ke server backend Anda:

| Parameter | Nilai / Contoh | Keterangan |
| - | - | - |
| **HTTP Method** | `GET` | Metode request HTTP (bisa `GET` atau `POST`). |
| **Endpoint URL** | `https://api.tokosaya.com/v1/orders/{{nomor_invoice}}` | URL API tujuan dengan variabel dinamis. |
| **Headers** | `Authorization: Bearer RAHASIA_API_KEY_ANDA` | Kredensial autentikasi API Anda. |
| **Timeout** | `5000` ms (5 detik) | Batas waktu tunggu respons server sebelum fallback. |

**5. 5. Menangani Response API dan Balasan AI**

**Contoh Response dari Backend API Anda:**

```json theme={null}
{
  "success": true,
  "data": {
    "invoice": "INV-98231",
    "nama_pembeli": "Budi Santoso",
    "status": "Dalam Pengiriman",
    "kurir": "JNE Reguler",
    "nomor_resi": "JNE0029182391",
    "estimasi_tiba": "Besok, 29 Oktober"
  }
}
```

**Balasan Alami yang Dihasilkan AI ke Pelanggan:**

> *"Halo Kak Budi! Pesanan dengan nomor invoice **INV-98231** saat ini berstatus **Dalam Pengiriman** menggunakan **JNE Reguler** dengan no resi **JNE0029182391**. Estimasi paket tiba besok ya kak. Ada hal lain yang bisa kami bantu? 😊"*

***

## Best Practices Integrasi Custom Actions

1. **Gunakan Validasi Parameter:** Pastikan nomor invoice atau input penting diberi validasi agar API Anda tidak dibanjiri request kosong.
2. **Atur Timeout Pendek (3–5 Detik):** Pelanggan WhatsApp mengharapkan balasan cepat. Jika API internal Anda sedang lambat, AI akan otomatis melakukan fallback handover ke admin manusia.
3. **Gunakan Read-Only API Key:** Untuk operasi pengecekan data (*lookup*), gunakan token API dengan hak akses membaca saja (*read-only*) demi keamanan sistem database Anda.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.