n8n iş akışınıza üç HTTP İsteği düğümü ve bir sorgulama döngüsü ekleyerek CAPTCHA çözümünü kodsuz hale getirebilirsiniz: görevi CaptchaAI'ye gönderin, sonucu periyodik sorgulayın, dönen token'ı hedef forma iletin. Zapier'in aksine n8n yerel döngü desteği sunar, bu yüzden "sonuç hazır mı?" kontrolünü tek bir IF düğümüyle otomatik tekrarlayabilirsiniz.
Bionluk veya Upwork'te client işi yürüten otomasyon geliştiricileri için önemli bir fark: ayrı bir CAPTCHA aracı eklemeden, mevcut n8n akışına dört düğüm eklersiniz. Adımlar reCAPTCHA v2 ve resim/OCR için geçerlidir; Turnstile'da yalnızca method ve sitekey değişir.
Neden n8n, Zapier değil?
İki aracı yan yana koyalım:
| Özellik | n8n | Zapier |
|---|---|---|
| Döngü/yeniden deneme desteği | Yerleşik (IF döngüleri, Döngü düğümü) | Sınırlı (yalnızca Path'ler) |
| Kendi sunucunuzda barındırma | Var (ücretsiz) | Yok (yalnızca bulut) |
| Kod düğümleri | Tam JavaScript | Sınırlı |
| Maliyet | Kendi barındırmanızda ücretsiz, bulutta ücretli | Ücretli (görev başına) |
| Kurulum zorluğu | Orta | Kolay |
Sorgulama döngüsünü kendiniz kurmak istiyorsanız n8n daha az sürtünmeyle çalışır.
n8n'de CAPTCHA çözme akışının mimarisi
Uçtan uca akış dört düğümden oluşur:
- Görevi CaptchaAI'ye gönderin
- Çözücünün başlaması için bekleyin
- Sonucu döngüyle sorgulayın
- Dönen token'ı hedef forma gönderin
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
Düğüm 1: CAPTCHA görevini gönderin
n8n tuvaline bir HTTP İsteği düğümü ekleyin:
- Yöntem:
POST - URL:
https://ocr.captchaai.com/in.php - Gövde İçerik Türü:
Form URL Encoded
Gövde parametreleri:
| İsim | Değer |
|---|---|
key |
{{ $credentials.captchaaiApiKey }} veya API anahtarınızı doğrudan yazın |
method |
userrecaptcha |
googlekey |
6Le-SITEKEY |
pageurl |
https://example.com |
json |
1 |
CaptchaAI şu yanıtı döner:
{
"status": 1,
"request": "71823456"
}
request değeri görev kimliğinizdir — sonucu sorgularken bunu kullanırsınız.
Düğüm 2: İlk bekleme süresini ayarlayın
Bir Bekle düğümü ekleyin:
- Bekleme Süresi:
10 - Birim:
Seconds
Çözücüye işlemeye başlaması için zaman tanır — erken sorgulamak gereksiz CAPCHA_NOT_READY yanıtları üretir.
Düğüm 3: Sonucu döngüyle sorgulayın
n8n döngüleri iki şekilde destekler: Döngü Öğeleri düğümüyle veya bir IF düğümünün yanlış çıktısını önceki düğüme geri bağlayarak.
Seçenek A: IF düğümüyle basit döngü
Bir HTTP İsteği düğümü ekleyin (sorgulama için):
- Yöntem:
GET - URL:
https://ocr.captchaai.com/res.php - Sorgu Parametreleri:
key,action=get,id={{ $json.request }},json=1
Bunu bir IF düğümüne bağlayın: değer 1 {{ $json.status }}, işlem Equal, değer 2 1.
- Doğru çıktı → sonraki adıma geçin (token'ı kullanın)
- Yanlış çıktı → Bekle (5 saniye) → sorgulama düğümüne geri dönün
Seçenek B: Kod düğümü
Daha ince kontrol için bir Kod düğümü kullanın:
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`);
Zaman aşımını kod içinde sınırlandırdığından IF döngüsünden daha öngörülebilirdir.
İpucu: 24 deneme × 5 saniye ≈ 2 dakikalık bir üst sınır verir; kendi hacminize göre yineleme sayısını artırıp azaltabilirsiniz.
Düğüm 4: Çözülen token'ı kullanın
Formu çözülen token ile göndermek için başka bir HTTP İsteği düğümü ekleyin:
- Yöntem:
POST - URL:
https://staging.example.com/submit - Gövde İçerik Türü:
Form URL Encoded
Gövde parametreleri, form verilerinize ek olarak g-recaptcha-response alanını içerir: değeri {{ $json.token }}.
Not: kişisel veri içeren formlarda akışın KVKK kapsamında yetkilendirilmiş bir test/QA sürecine ait olduğundan emin olun.
API anahtarını güvenli saklayın
n8n'in Kimlik Bilgileri sistemini kullanın:
- Kimlik Bilgileri → Kimlik Bilgisi Ekle → Başlık Kimlik Doğrulaması yolunu izleyin
- İsim alanına
CaptchaAI API Keyyazın - Anahtarı burada güvenli şekilde saklayın
Kendi sunucunuzda barındırıyorsanız ortam değişkenleri de bir seçenektir:
# In your n8n environment
export CAPTCHAAI_API_KEY="your_key_here"
Düğümlerde şu ifadeyle referans verin: {{ $env.CAPTCHAAI_API_KEY }}.
Resim CAPTCHA çözme için iş akışını uyarlayın
Resim tabanlı CAPTCHA'larda Gönder düğümünü şöyle ayarlayın:
| İsim | Değer |
|---|---|
method |
base64 |
body |
Base64 kodlu görüntü (önceki bir düğümden veya URL'den) |
Görüntü URL'sini base64'e çevirmek için gönderim öncesine bir Kod düğümü ekleyin:
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 } }];
Bakiye kontrolü için ayrı bir iş akışı kurun
Belirli bir zamanlamada çalışan ayrı bir iş akışı oluşturun:
Cron (daily at 9 AM)
↓
HTTP Request: GET res.php?action=getbalance
↓
IF: balance < 5
↓
Slack / Email: "CaptchaAI balance low: $X.XX"
Eşiği kendi hacminize göre ayarlayın.
Sorun giderme
| Sorun | Neden | Çözüm |
|---|---|---|
| Sorgulama döngüsü sonsuza kadar sürüyor | Maksimum yineleme sınırı yok | Bir sayaç değişkeni ekleyin, 24 yinelemeden sonra döngüyü kırın |
CAPCHA_NOT_READY durmadan geliyor |
İlk sorgulamadan önceki bekleme süresi çok kısa | İlk bekleme süresini 15-20 saniyeye çıkarın |
| Token bir sonraki düğümde görünmüyor | İfade (expression) yolu yanlış | {{ $json.token }} değerinin çıktıyla eşleştiğini kontrol edin |
| Kimlik bilgisi bulunamadı hatası | Ortam değişkeni tanımlanmamış | Env değişkenlerini ayarladıktan sonra n8n'i yeniden başlatın |
SSS
Aynı iş akışında birden fazla CAPTCHA'yı işleyebilir miyim?
Evet. Gruplara Böl düğümüyle, her biri kendi gönder → sorgula → token akışına sahip öğeleri sırayla işleyebilirsiniz.
n8n Cloudflare Turnstile'ı destekliyor mu?
Evet. method parametresini turnstile olarak değiştirin ve googlekey yerine sitekey parametresini kullanın; akışın geri kalanı aynı kalır.
n8n + CaptchaAI kurulumu için hangi plan yeterli?
Test ve düşük hacimli işler için BASIC ($15/ay, 5 thread) genellikle yeterlidir; thread başına sınırsız çözüm içerdiğinden maliyetiniz sabit kalır.
Sorgulama döngüsü hiç bitmezse ne olur?
Kod düğümündeki sabit yineleme sınırı (örnekte 24) ve zaman aşımı hatası sayesinde görev çözülmezse iş akışı sonsuza kadar beklemez, hata fırlatır.
CAPTCHA çözümünü n8n iş akışınıza ekleyin
API anahtarınızı captchaai.com adresinden alın ve dört düğümü workflow'unuza ekleyin.