Kalau alur scraping atau pengisian form Anda sering terhenti di CAPTCHA dan tagihan Zapier membengkak tiap task bertambah, n8n jalan keluarnya: open-source, self-hosted gratis, dan — beda dari Zapier — mendukung loop native. Anda bisa menyusun alur kirim → polling → pakai token yang mencoba ulang otomatis sampai CAPTCHA benar-benar selesai, tanpa satu baris kode.
Gambaran alur kerja n8n untuk solve CAPTCHA tanpa kode
Empat blok ini yang akan Anda rangkai di canvas n8n:
Manual Trigger / Cron
↓
HTTP Request: Submit CAPTCHA
↓
Wait: 10 seconds
↓
Loop: Poll until solved
├── HTTP Request: Get result
├── IF: status == 1? → Exit loop
└── Wait: 5 seconds → Loop again
↓
HTTP Request: Use token
n8n vs Zapier: mana yang cocok untuk automasi CAPTCHA?
Untuk agency freelance dan tim automasi dengan banyak alur kerja sekaligus — model kerja umum di kalangan freelancer scraping Indonesia — biaya per-task Zapier cepat membengkak seiring volume naik. n8n self-hosted dipadukan plan thread-based CaptchaAI, misalnya BASIC ($15/bulan, 5 thread), membuat biaya tetap walau volume naik turun.
| Fitur | n8n | Zapier |
|---|---|---|
| Dukungan loop/retry | Native (loop IF, node Loop Over Items) | Terbatas (hanya Paths) |
| Opsi self-hosted | Ya (gratis) | Tidak (cloud only) |
| Node Code | JavaScript penuh | Terbatas |
| Biaya | Gratis (self-hosted) atau cloud berbayar | Berbayar (per task) |
| Kemudahan setup | Sedang | Mudah |
Untuk retry berkali-kali, native loop dan node Code n8n jauh lebih fleksibel — apalagi di VPS murah region Singapura (AWS ap-southeast-1) yang umum dipakai tim automasi Indonesia agar latensi ke API CaptchaAI tetap rendah.
Mulai dari plan BASIC ($15/bulan, 5 thread) untuk trial, baru naik ke thread lebih besar begitu volume automasi Anda bertambah.
Node 1: kirim CAPTCHA ke CaptchaAI
Tambahkan node HTTP Request pertama, isi pengaturannya:
- Metode:
POST - URL:
https://ocr.captchaai.com/in.php - Tipe Konten Body:
Form URL Encoded
Lalu parameter body-nya:
key:{{ $credentials.captchaaiApiKey }}atau hardcode key Andamethod:userrecaptchagooglekey:6Le-SITEKEYpageurl:https://example.comjson:1
Respons berisi task ID untuk polling di node berikutnya:
{
"status": 1,
"request": "71823456"
}
Node 2: beri jeda sebelum polling pertama
Tambahkan node Wait:
- Waktu Tunggu:
10 - Satuan:
Seconds
Jeda ini memberi waktu solver mulai memproses CAPTCHA — polling terlalu cepat hanya menghasilkan status CAPCHA_NOT_READY berulang-ulang.
Node 3: polling hasil dengan loop
n8n mendukung loop lewat node Loop Over Items, atau dengan menyambungkan output false dari node IF kembali ke node sebelumnya.
Opsi A: loop IF sederhana
Tambahkan node HTTP Request lagi (untuk polling):
- Metode:
GET - URL:
https://ocr.captchaai.com/res.php - Parameter Kueri:
key,action=get,id={{ $json.request }},json=1
Sambungkan ke node IF dengan kondisi:
- Nilai 1:
{{ $json.status }} - Operasi:
Equal - Nilai 2:
1
Lalu: Output true → lanjut ke node berikutnya (pakai token). Output false → node Wait (5 detik) → kembali ke node polling.
Opsi B: node Code
Untuk kontrol yang lebih detail, gunakan node Code:
const apiKey = 'YOUR_API_KEY';
const taskId = $input.first().json.request;
for (let i = 0; i < 24; i++) {
await new Promise(r => setTimeout(r, 5000));
const resp = await fetch(
`https://ocr.captchaai.com/res.php?key=${apiKey}&action=get&id=${taskId}&json=1`
);
const data = await resp.json();
if (data.status === 1) {
return [{ json: { token: data.request, taskId } }];
}
if (data.request !== 'CAPCHA_NOT_READY') {
throw new Error(`CaptchaAI error: ${data.request}`);
}
}
throw new Error(`Task ${taskId} timed out`);
Node 4: pakai token hasil solve
Tambahkan node HTTP Request lagi untuk mengirim form berisi data Anda plus token yang sudah selesai:
- Metode:
POST - URL:
https://staging.example.com/submit - Tipe Konten Body:
Form URL Encoded
Parameter body mencakup data form Anda ditambah satu field: g-recaptcha-response diisi {{ $json.token }}.
Menyimpan API key dengan aman
Gunakan sistem Credentials bawaan n8n, bukan hardcode langsung di node:
- Buka Credentials → Add Credential → Header Auth
- Beri nama:
CaptchaAI API Key - Simpan API key Anda di sana
Atau pakai environment variable:
# In your n8n environment
export CAPTCHAAI_API_KEY="your_key_here"
Panggil di dalam node dengan: {{ $env.CAPTCHAAI_API_KEY }}
Alur kerja untuk CAPTCHA gambar
Untuk CAPTCHA gambar/OCR, sesuaikan node pengiriman di Node 1: ubah method menjadi base64, dan isi body dengan gambar berformat base64 (dari node sebelumnya atau URL).
Untuk konversi URL gambar ke base64, tambahkan node Code sebelum node pengiriman:
const imageUrl = $input.first().json.imageUrl;
const resp = await fetch(imageUrl);
const buffer = Buffer.from(await resp.arrayBuffer());
const base64 = buffer.toString('base64');
return [{ json: { imageBase64: base64 } }];
Alur kerja pemeriksaan saldo
Buat alur kerja terpisah yang berjalan sesuai jadwal, supaya Anda tidak kehabisan saldo di tengah automasi:
Cron (daily at 9 AM)
↓
HTTP Request: GET res.php?action=getbalance
↓
IF: balance < 5
↓
Slack / Email: "CaptchaAI balance low: $X.XX"
Pemecahan masalah
- Loop polling jalan tanpa henti — penyebab: tidak ada batas iterasi. Perbaikan: tambahkan counter, hentikan setelah 24 iterasi.
CAPCHA_NOT_READYterus-menerus — penyebab: Wait time terlalu singkat sebelum polling pertama. Perbaikan: naikkan jadi 15–20 detik.- Token tidak muncul di node berikutnya — penyebab: path expression salah. Perbaikan: cek
{{ $json.token }}cocok struktur output. - Credentials tidak ditemukan — penyebab: environment variable belum diset. Perbaikan: restart n8n setelah mengatur env var.
Pertanyaan seputar CaptchaAI di n8n
Bisakah satu alur kerja n8n memproses beberapa CAPTCHA sekaligus?
Bisa. Gunakan node Split In Batches untuk memproses banyak item, masing-masing menjalankan alur kirim → polling → pakai token miliknya sendiri.
Berapa biaya menjalankan integrasi CaptchaAI di n8n dibanding Zapier?
CaptchaAI dihitung per thread, bukan per solve — plan BASIC ($15/bulan, 5 thread) sudah mencakup solve tanpa batas. n8n self-hosted juga tidak menagih per task seperti Zapier, jadi kombinasinya lebih hemat untuk volume CAPTCHA yang tinggi atau naik-turun.
Amankah menyimpan API key CaptchaAI di n8n self-hosted?
Aman selama Anda memakai sistem Credentials n8n atau environment variable, bukan hardcode di body node. Tambahkan juga proteksi akses di level server tempat n8n berjalan.
Bangun automasi CAPTCHA di alur kerja n8n Anda
Ambil API key Anda di captchaai.com dan sambungkan langsung ke node HTTP Request pertama Anda.