HTTP Request di n8n: Menghubungkan API Apa Saja

Node HTTP Request di n8n adalah cara memanggil API aplikasi apa pun, termasuk aplikasi yang tidak punya node bawaan di n8n. Selama aplikasinya menyediakan API dan dokumentasinya, Anda bisa mengambil data, mengirim data, atau memperbarui data dari workflow n8n dengan node ini.

Banyak aplikasi yang dipakai bisnis di Indonesia, terutama software lokal, tidak punya node khusus di n8n. Artikel ini membahas kapan Anda perlu HTTP Request, cara mengatur autentikasi, cara menangani data yang terbagi per halaman, cara menghindari batas permintaan, dan contoh menarik data dari aplikasi akuntansi.

Kapan perlu HTTP Request node

n8n punya ratusan node bawaan untuk aplikasi populer seperti Google Sheets, Gmail, dan Slack. Node bawaan lebih mudah dipakai karena pilihan operasinya sudah tersedia. Jadi aturan sederhananya: pakai node bawaan kalau ada, pakai HTTP Request kalau tidak ada.

Beberapa situasi yang membutuhkan HTTP Request:

  • Aplikasinya tidak punya node di n8n, misalnya software akuntansi, POS, atau sistem internal buatan vendor lokal.
  • Node bawaan ada, tapi operasi yang Anda butuhkan tidak tersedia. Misalnya node hanya bisa membuat data, padahal Anda perlu endpoint laporan.
  • Anda memanggil API internal perusahaan sendiri.
  • Anda memanggil layanan AI atau layanan lain yang baru muncul dan belum dibuatkan node.

Kalau istilah API masih asing, baca dulu API adalah. Singkatnya, API adalah jalur resmi supaya aplikasi bisa saling bertukar data. HTTP Request adalah node yang “mengetuk pintu” jalur itu.

Bagian-bagian HTTP Request node

Saat membuka node ini, Anda akan mengisi beberapa bagian utama:

  • Method: jenis permintaan. GET untuk mengambil data, POST untuk membuat data baru, PUT atau PATCH untuk memperbarui, DELETE untuk menghapus.
  • URL: alamat endpoint, misalnya https://api.contohaplikasi.com/v1/invoices.
  • Authentication: cara membuktikan bahwa Anda berhak mengakses API.
  • Query Parameters: filter di URL, misalnya ?status=unpaid&page=1.
  • Headers: informasi tambahan, misalnya format data.
  • Body: data yang dikirim, biasanya dalam format JSON, untuk POST atau PUT.

Semua informasi ini ada di dokumentasi API aplikasi yang ingin Anda hubungkan. Tugas Anda adalah menerjemahkannya ke kolom-kolom di node.

Mengimpor cURL dari dokumentasi API

Cara tercepat mengisi node adalah memakai fitur Import cURL. cURL adalah format perintah untuk memanggil API yang sering dipakai sebagai contoh di dokumentasi. Bentuknya kira-kira seperti ini:

curl -X GET "https://api.contohaplikasi.com/v1/invoices?status=unpaid" \
  -H "Authorization: Bearer TOKEN_ANDA" \
  -H "Accept: application/json"

Salin contoh cURL dari dokumentasi, klik Import cURL di node HTTP Request, lalu tempel. n8n akan mengisi method, URL, header, dan body secara otomatis. Setelah itu, pindahkan token atau password ke kredensial (dibahas di bawah), jangan dibiarkan tertulis di header.

Autentikasi: API key, Bearer, OAuth2

Hampir semua API meminta bukti akses. n8n menyediakan dua pendekatan: kredensial bawaan untuk aplikasi yang sudah didukung, dan kredensial generik untuk aplikasi lain. Kredensial generik yang tersedia antara lain Basic auth, Header auth, Bearer auth, Query auth, OAuth1, OAuth2, Digest auth, dan Custom auth.

Tiga yang paling sering dipakai:

Jenis Cara kerja Pilihan di n8n
API key Kunci rahasia dikirim di header atau URL Header auth atau Query auth
Bearer token Header Authorization: Bearer <token> Bearer auth (atau Header auth)
OAuth2 Login ke aplikasi, lalu token diperbarui otomatis OAuth2 API

Beberapa tips:

  • Selalu simpan rahasia di kredensial. Jangan diketik langsung di kolom header atau URL. Kredensial disimpan terenkripsi dan tidak ikut terlihat saat workflow dibagikan.
  • Pakai akun atau token khusus untuk integrasi, jangan akun pribadi karyawan. Kalau karyawan itu keluar, workflow tidak ikut rusak.
  • Beri hak akses seminimal mungkin. Kalau workflow hanya membaca invoice, jangan pakai token yang bisa menghapus data.

Beberapa aplikasi memakai cara yang lebih khusus. Contohnya Mekari Jurnal, yang menurut dokumentasi developer Mekari memakai autentikasi HMAC: setiap permintaan harus diberi tanda tangan yang dihitung dari waktu, method, dan path. Untuk kasus seperti ini, tanda tangan bisa dihitung dulu dengan node Crypto atau Code, lalu dimasukkan ke header.

Pagination dan rate limit

Pagination

API jarang mengembalikan semua data sekaligus. Data dibagi per halaman, misalnya 100 invoice per permintaan. Ini disebut pagination. Kalau Anda punya 1.250 invoice, perlu 13 kali permintaan untuk mengambil semuanya.

Node HTTP Request punya opsi Pagination bawaan di bagian Options, dengan dua mode utama:

  1. Update a parameter in each request: n8n menaikkan nomor halaman atau offset di setiap permintaan, misalnya page=1, page=2, dan seterusnya.
  2. Response contains next URL: API memberi alamat halaman berikutnya di jawabannya, dan n8n mengikutinya.

Anda juga perlu menentukan kapan berhenti, misalnya saat jawaban kosong atau saat tidak ada lagi alamat halaman berikutnya. n8n menyediakan variabel seperti $response dan $pageCount untuk menyusun aturan ini.

Alur n8n HTTP Request: jadwal menjalankan node HTTP Request, node memanggil API aplikasi dengan token dan mengulang untuk setiap halaman, lalu hasilnya dirapikan dan disimpan ke Google Sheets

Hasil semua halaman keluar sebagai item-item di node berikutnya, jadi Anda bisa langsung merapikan dan menyimpannya.

Rate limit

Rate limit adalah batas jumlah permintaan per menit atau per detik yang diizinkan API. Kalau terlewati, API biasanya membalas dengan error 429 (too many requests).

Cara menghindarinya di n8n:

  • Batching: di Options, atur berapa item diproses per kelompok dan berapa milidetik jeda antar kelompok.
  • Retry On Fail: di Settings node, aktifkan supaya node mencoba ulang saat gagal. Isi jumlah percobaan dan jeda di antaranya.
  • Kurangi permintaan: pakai filter di query parameter, misalnya hanya invoice yang berubah sejak kemarin, daripada menarik semua data setiap kali.

Cek batas rate limit di dokumentasi API masing-masing. Angkanya berbeda di setiap aplikasi dan bisa berubah.

Contoh: menarik data dari aplikasi akuntansi lokal

Misalnya sebuah distributor memakai software akuntansi berbasis cloud yang menyediakan API, dan tim keuangan ingin daftar invoice belum lunas setiap pagi di Google Sheets untuk ditindaklanjuti.

Alurnya:

  1. Schedule Trigger menjalankan workflow setiap hari kerja jam 06.30 WIB. Cara mengatur jadwal dan zona waktunya ada di artikel Schedule Trigger n8n.
  2. HTTP Request memanggil endpoint daftar invoice dengan filter status belum lunas, memakai kredensial yang sesuai, dan pagination aktif.
  3. Edit Fields memilih kolom yang dibutuhkan saja: nomor invoice, pelanggan, tanggal jatuh tempo, sisa tagihan.
  4. Google Sheets menulis hasilnya ke sheet “Piutang Hari Ini”, menggantikan isi kemarin.
  5. Opsional: kirim ringkasan ke email tim keuangan, misalnya total piutang dan jumlah invoice yang lewat jatuh tempo.

Detail endpoint, nama field, dan cara autentikasinya berbeda di setiap aplikasi, baik Accurate, Jurnal, maupun yang lain. Selalu mulai dari dokumentasi API resmi aplikasi Anda, dan uji dulu dengan satu permintaan kecil sebelum menyalakan pagination.

Kalau yang Anda butuhkan adalah kebalikannya, yaitu aplikasi lain yang mengirim data ke n8n saat ada kejadian, pakai webhook. Penjelasannya ada di artikel webhook n8n.

Kesalahan yang sering terjadi

  • Token ditulis langsung di header. Rawan bocor saat workflow diekspor atau dibagikan.
  • Lupa pagination. Workflow terlihat berhasil, padahal hanya mengambil 100 data pertama.
  • Tidak menangani error. API bisa sedang gangguan. Tanpa notifikasi error, data di Sheets diam-diam tidak diperbarui.
  • Format tanggal tidak sesuai. Banyak API meminta format YYYY-MM-DD atau format waktu dengan zona waktu. Cek dokumentasinya.

Kalau aplikasi yang Anda pakai tidak punya node di n8n dan tim Anda tidak sempat membaca dokumentasi API-nya, Aqilatic bisa membantu membangun dan merawat integrasinya. Detail layanan ada di bagian layanan kami, dan Anda bisa mulai dari audit proses gratis.

Pertanyaan yang sering muncul

Apakah HTTP Request bisa dipakai untuk semua aplikasi?

Hanya untuk aplikasi yang menyediakan API dan memberi Anda akses ke sana. Kalau aplikasinya tidak punya API sama sekali, perlu pendekatan lain, misalnya ekspor file terjadwal atau otomatisasi antarmuka.

Apa bedanya HTTP Request dengan webhook?

HTTP Request dipakai n8n untuk menghubungi aplikasi lain. Webhook dipakai aplikasi lain untuk menghubungi n8n. Keduanya sering dipakai bersama dalam satu workflow.

Apakah perlu bisa coding untuk memakai HTTP Request?

Tidak harus. Dengan fitur Import cURL dan kredensial generik, sebagian besar API bisa dihubungkan tanpa kode. Pemahaman dasar tentang format JSON akan sangat membantu saat membaca hasilnya.