# Integrasi Keluar

**Integrasi Keluar** adalah tempat Anda mendaftarkan layanan milik Anda (misalnya CRM, sistem stok, atau API internal) agar AI Agent di [Alur Kerja](/ai-automation/alur-kerja) bisa memanggilnya saat membalas pelanggan. Anda menentukan alamat, kredensial, dan aksi apa saja yang boleh dipanggil. AI tidak bisa menambah alamat atau kredensial sendiri.

Menu ini ada di **AI Automation** lalu **Integrasi Keluar**. Hanya Pemilik bisnis dan Admin yang bisa membukanya.

## Integrasi Keluar bukan MCP masuk

Dua hal ini sering tertukar:

| | Arah | Untuk apa |
|---|---|---|
| **Integrasi Keluar** (halaman ini) | tumbuh.ai memanggil layanan Anda | AI tumbuh.ai memakai data atau aksi dari sistem Anda |
| **MCP masuk** ([Integrasi MCP](/integrasi/mcp)) | Klien AI memanggil tumbuh.ai | Asisten AI Anda (misalnya di editor) membaca atau mengelola data tumbuh.ai |

Bila tujuan Anda adalah membuat AI tumbuh.ai mengambil data dari sistem Anda, Anda berada di halaman yang benar.

## Dua jenis koneksi

Halaman ini punya dua tab:

- **Custom API**: Anda mendefinisikan sendiri aksi berbasis HTTP (metode, path, input, dan field hasil).
- **Remote MCP**: Anda menghubungkan server MCP milik Anda, lalu tumbuh.ai menemukan daftar tool-nya dan Anda memilih mana yang boleh dipakai.

Keduanya memakai alur yang sama: buat koneksi, simpan Authorization, lalu siapkan kemampuan (aksi atau tool).

## Sebelum mulai

- Layanan Anda bisa diakses lewat **HTTPS**. Alamat HTTP biasa dan alamat berupa IP ditolak.
- Anda punya kredensial untuk layanan itu (token, API key, atau akun), kecuali layanannya memang terbuka.
- Untuk Custom API, Anda tahu metode, path, dan input yang diterima endpoint-nya.
- Untuk Remote MCP, server Anda memakai MCP Streamable HTTP lewat HTTPS.

## Menambah koneksi

1. Buka tab **Custom API** atau **Remote MCP**.
2. Di kartu **Tambah koneksi**, isi:
   - **Nama koneksi**, misalnya "CRM Penjualan". Nama inilah yang Anda lihat saat memilih koneksi di node alur kerja.
   - **Alamat layanan HTTPS**, misalnya `https://api.contoh.com`. Tidak boleh memuat username, password, atau fragmen (`#...`).
   - **Host redirect yang diizinkan (opsional)**: daftar nama host yang boleh menjadi tujuan redirect dari layanan Anda, dipisah koma, misalnya `api.contoh.com, files.contoh.com`. Isi hanya nama host (bukan alamat IP, tanpa `https://`). Maksimum 20 host. Bila layanan Anda tidak melakukan redirect, kosongkan.
3. Klik **Simpan koneksi**.

Koneksi baru muncul di daftar **Pilih koneksi**. Pilih untuk mengelolanya.

## Mengubah koneksi

1. Pilih koneksi di daftar.
2. Klik **Edit koneksi**. Formulir terisi nilai saat ini.
3. Ubah nama, alamat, atau host redirect, lalu klik **Simpan perubahan koneksi**.

## Menyimpan Authorization

Setelah koneksi dipilih, bagian **Authorization** menampilkan jenis kredensial yang tersimpan dan beberapa karakter terakhirnya. Bila belum ada, tertulis "Authorization belum disimpan."

1. Pilih **Jenis**:

   | Jenis | Yang Anda isi |
   |---|---|
   | **Bearer token** | **Nilai Authorization** |
   | **API key header** | **Nama header** dan **Nilai Authorization** |
   | **Basic** | **Username** dan **Password** |
   | **Header kustom** | **Nama header** dan **Nilai Authorization** |
   | **Tanpa autentikasi** | Tidak ada. Pilih bila layanan Anda memang terbuka |

2. Klik **Simpan Authorization**.

Nilai rahasia hanya dikirim untuk disimpan dan **tidak ditampilkan kembali**. Untuk menggantinya, simpan nilai baru. **Hapus credential** menghapus yang tersimpan.

## Mengaktifkan atau menonaktifkan koneksi

Setiap koneksi berstatus **Aktif** atau **Dinonaktifkan**. Gunakan **Nonaktifkan koneksi** untuk menghentikan pemakaian sementara tanpa menghapus apa pun, dan **Aktifkan koneksi** untuk menyalakannya lagi. Koneksi yang dinonaktifkan tidak bisa dipakai alur kerja maupun diuji.

## Menyiapkan kemampuan: Custom API

Di tab **Custom API**, setiap koneksi berisi satu atau lebih aksi. Bagian **Tambah Aksi API** membuat aksi dari formulir, tanpa menulis JSON.

1. Isi **Nama aksi**, misalnya "Cari pelanggan CRM".
2. **Key aksi** terisi otomatis dari nama (huruf kecil, angka, underscore, diawali huruf). Key tidak bisa diubah setelah aksi disimpan.
3. Isi **Deskripsi**: jelaskan kapan AI harus memanggil aksi ini. AI memakai deskripsi ini untuk memutuskan.
4. Pilih **Metode**: GET, POST, PUT, PATCH, atau DELETE.
5. Isi **Path relatif**, misalnya `/customers/{id}`. Path selalu relatif terhadap alamat layanan koneksi.
6. Isi **Timeout (ms)**: antara 1000 dan 20000 (1 sampai 20 detik).
7. Di **Input**, klik **Tambah input** untuk tiap data yang AI boleh kirim. Untuk tiap input tentukan nama, tipe (`string`, `number`, `integer`, `boolean`), lokasi (`path`, `query`, atau `body`), tanda **wajib**, dan deskripsi (opsional).
   - Setiap `{nama}` di path harus punya input berlokasi `path` dengan nama yang sama, dan sebaliknya. Bila tidak cocok, formulir menolak menyimpan.
8. Di **Field response**, tulis nama field hasil yang boleh dilihat AI, dipisah koma, misalnya `customerId, name, status`.
9. Pilih **Tipe aksi**:
   - **Baca data**: hanya membaca.
   - **Tulis data aman diulang**: menulis, tetapi aman bila terkirim dua kali.
   - **Tulis data (tidak diulang)**: menulis dan tidak boleh diulang otomatis.
10. Klik **Simpan aksi**.

Aksi yang sudah ada tampil di daftar dengan status **Aktif** atau **Nonaktif**, ringkasan "Input tersedia: ...", serta tombol **Test**, **Edit**, dan **Hapus**. Kolom **Aktif** di formulir aksi mematikan aksi tanpa menghapusnya.

Bila belum ada aksi, tertulis "Belum ada aksi API. Tambahkan aksi dari konfigurasi koneksi sebelum digunakan di workflow."

## Menyiapkan kemampuan: Remote MCP

Di tab **Remote MCP**, Anda tidak menulis aksi sendiri.

1. Pilih koneksi, pastikan statusnya **Aktif** dan Authorization sudah tersimpan.
2. Klik **Temukan tool MCP**. tumbuh.ai membaca daftar tool dari server Anda.
3. Tool yang tidak memenuhi syarat dilewati dan tercantum di **Tool yang dilewati saat penemuan**.
4. Pada tiap tool, atur tipe aksinya (**Baca data** atau salah satu tipe tulis), lalu klik **Pilih**. Hanya tool yang Anda pilih yang bisa dipanggil AI. Tool baru yang muncul di server Anda tidak otomatis ikut aktif.
5. **Batalkan pilihan** mencabut tool dari daftar yang boleh dipakai.

Bila nama atau skema sebuah tool berubah di server, tool itu ditandai **Perlu ditemukan ulang**. Klik **Temukan tool MCP** lagi, lalu pilih ulang.

## Menguji aksi

Tombol **Test** tersedia bila koneksi **Aktif** dan Authorization sudah tersimpan (untuk MCP, tool harus sudah dipilih dan tidak kedaluwarsa).

1. Klik **Test** pada aksi atau tool.
2. Isi nilai untuk tiap input. Bila aksi tidak butuh input tertulis "Tidak membutuhkan input".
3. Untuk aksi tulis, centang "Saya paham aksi ini dapat mengubah data". Tanpa centang ini uji tidak dijalankan.
4. Klik **Jalankan uji**.

Hasil tampil sebagai **Berhasil** atau **Gagal**, lengkap dengan jumlah percobaan ulang dan pesan galat yang bisa ditindaklanjuti. Uji aksi tulis benar-benar memanggil layanan Anda, jadi gunakan data uji.

## Memakai koneksi di alur kerja

Di editor [Alur Kerja](/ai-automation/alur-kerja), tambahkan node kapabilitas **Custom API** atau **Remote MCP** dan sambungkan ke node **AI Agent**. Pada node itu:

1. Pilih **Koneksi** berdasarkan nama.
2. Pilih aksi atau tool yang boleh dipakai agent. Secara bawaan semua yang tersedia dari koneksi terpilih ikut, dan Anda bisa mempersempitnya.
3. Untuk aksi tulis, nyalakan "Izinkan operasi tulis yang disetujui". Selama toggle ini mati, aksi tulis ditolak saat terbit dan saat dijalankan.

Alur kerja hanya menyimpan referensi ke koneksi dan aksi, bukan alamat atau kredensial. Uji hasilnya di [Playground](/ai-automation/playground), lalu pantau pemanggilannya di [Eksekusi](/ai-automation/eksekusi).

## Menghapus koneksi atau aksi

- **Hapus aksi**: klik **Hapus** pada aksi lalu konfirmasi "Hapus permanen aksi ...?".
- **Hapus koneksi**: klik **Hapus permanen** lalu konfirmasi. Koneksi dihapus bersama seluruh aksinya.

Koneksi yang masih dipakai oleh sebuah alur kerja **tidak bisa dihapus**. Muncul pesan "Koneksi ini masih dipakai oleh sebuah workflow dan tidak bisa dihapus." Lepaskan koneksi dari node alur kerja (atau hapus alur kerjanya) dulu, atau cukup **Nonaktifkan koneksi** bila hanya ingin menghentikannya.

## Batasan yang perlu Anda ketahui

- Hanya alamat **HTTPS** yang diterima.
- Timeout aksi maksimum 20 detik. Ukuran respons juga dibatasi, dan AI hanya menerima field yang Anda daftarkan di **Field response**.
- Aksi tulis selalu butuh persetujuan eksplisit Anda di node alur kerja. Keluaran AI saja tidak cukup untuk mengubah data di sistem Anda.
- Server MCP harus berupa Remote MCP lewat HTTPS. Server lokal (perintah di komputer) tidak didukung.

## Hasil yang diharapkan

Koneksi berstatus **Aktif**, Authorization tersimpan, uji aksi menampilkan **Berhasil**, dan node di alur kerja menampilkan nama koneksi serta aksi yang bisa dipilih.

## Masalah umum

- **Uji gagal dengan galat autentikasi.** Simpan ulang Authorization dengan jenis dan nilai yang benar.
- **Tombol Test tidak aktif.** Pastikan koneksi **Aktif** dan Authorization sudah tersimpan.
- **Alamat ditolak saat disimpan.** Pakai alamat HTTPS dengan nama domain, tanpa IP, username, atau password.
- **Formulir aksi menolak path.** Cocokkan setiap `{nama}` di path dengan input berlokasi `path`.
- **Tool MCP bertanda "Perlu ditemukan ulang".** Jalankan **Temukan tool MCP** lagi dan pilih ulang tool-nya.
- **AI tidak memakai aksi Anda.** Periksa deskripsi aksi, pastikan aksi **Aktif** dan terpilih di node, lalu cek langkahnya di [Eksekusi](/ai-automation/eksekusi).
