Expression'ları anlamak: $json, $node ve items'ı kod olmadan eşleştirmek
n8n'deki en büyük öğrenme engeli açıklanıyor: Items, $json ve $node ne anlama gelir ve değerleri Drag-and-Drop ile kod olmadan nasıl eşleştirirsiniz.
n8n'in items'ları otomatik olarak nasıl döngüye aldığı, Loop Over Items node'unun nasıl çalıştığı ve performans ile rate limit için hangi batch boyutunun uygun olduğu.
n8n genellikle birden fazla kaydı tamamen kendi başına işler: bir node bir items listesi alır, mantığını her tek item için çalıştırır ve sonuçları tekrar bir liste olarak döndürür. Çoğu workflow için bu nedenle açık bir döngüye hiç ihtiyacın yoktur. Ancak harici bir servis saniyede yalnızca birkaç isteğe izin verdiğinde, bir node yalnızca ilk item'ı işlediğinde veya sayfa sayısı bilinmeyen sayfalanmış bir API sorgulanması gerektiğinde, otomatik işleme artık yeterli olmaz. Tam olarak bunun için n8n'de, eskiden Split in Batches olarak bilinen Loop Over Items node'u bulunur.
Bu yazıda sana n8n'de otomatik döngünün nasıl çalıştığını, Loop Over Items node'unun ayrıntılı olarak nasıl çalıştığını ve batch boyutu ile performans konusunda nelere dikkat etmen gerektiğini gösteriyoruz, böylece workflow'ların kararlı ve rate limit hatası olmadan çalışır.
Resmi n8n döngü dokümantasyonuna göre, n8n node'ları temel olarak herhangi bir sayıda item'ı kabul eder, işler ve sonuçları tekrar döndürür. Örneğin beş müşteri kaydı olan bir veri deposu node'unu bir Slack node'una bağlarsan, n8n otomatik olarak beş ayrı mesaj gönderir, kayıt başına bir mesaj. Bunun için kendi döngünü oluşturman gerekmez, bunu arka planda motor üstlenir.
Bunun yerine gelen bir kaydın yalnızca ilk item'ını işlemek istiyorsan, node ayarlarında Settings sekmesi altındaki Execute Once seçeneğini etkinleştirirsin. Böylece node diğer tüm item'ları göz ardı eder ve yalnızca ilk kaydı işler, bu da örneğin tek seferlik bildirimler için uygundur.
Otomatik işlemenin yeterli olmadığı tüm durumlar için n8n, Loop Over Items node'unu sunar. Node, orijinal giriş verilerini saklar ve her çalıştırmada belirlenen sayıda item'ı loop çıkışı üzerinden döndürür. Tüm batch'ler işlendiğinde, işlenen verileri birleştirir ve bunları done çıkışı üzerinden döndürür.
Burada iki ayar merkezi önem taşır:
Pratikte bunun için, hâlâ item kalıp kalmadığını kontrol etmek üzere `{{$("Loop Over Items").context["noItemsLeft"]}}` gibi ifadeler veya mevcut çalıştırma indeksini okuyup bir IF node'unda durdurma koşulu olarak kullanmak üzere `{{$("Loop Over Items").context["currentRunIndex"]}}` kullanırsın.
Dokümantasyona göre bazı node'lar temel olarak yalnızca ilk item'ı veya tüm item'ları bir kerede işler, düzgün bir şekilde yinelemek yerine. Bunlar arasında ekleme ve güncelleme işlemlerinde CrateDB, Microsoft SQL, MongoDB ve TimescaleDB, Code node'u ve "Run Once for All Items" modundaki Execute Workflow node'u, manuel sayfalama durumunda HTTP Request node'u, Redis Info işlemi ve RSS Read node'u bulunur. Bu istisnalar için döngüyü manuel olarak kurarsın: bir node'un çıkışını tekrar önceki bir node'a bağlarsın ve net bir durdurma koşulunu kontrol eden bir IF node'u eklersin.
Batch boyutu bir workflow'un ne kadar kararlı ve ne kadar hızlı çalıştığını doğrudan belirler. Çalıştırma başına örneğin 1 ila 5 item gibi küçük bir batch boyutu, sıkı rate limit'leri olan harici API'leri korur, ancak n8n'in daha fazla ayrı çalıştırma işlemesi gerektiğinden toplam çalışma süresini uzatır. Büyük bir batch boyutu workflow'u hızlandırır, ancak bir servisin 429 hatasıyla yanıt verme riskini veya büyük bir batch'in ortasında bir hata oluştuğunda workflow'un izlenmesinin daha zor olması riskini artırır. Pratikte, değeri daha fazla artırmadan önce orta düzeyde bir batch boyutuyla test etmen ve çalıştırma sürelerini ve hedef servisin olası hata yanıtlarını gözlemlemen en iyisidir.
Özellikle çok sayıda harici çağrı içeren üretim workflow'ları için, API'lerin aşırı yüklenmemesi ve çalıştırma üzerinde kontrolü elinde tutman için Loop Over Items'ı batch'ler arasındaki bekleme süreleriyle hedefli bir şekilde birleştirmek değerlidir. n8n workflow'larını yalnızca oluşturmakla kalmayıp aynı zamanda uzun vadede kararlı bir şekilde işletmek istiyorsan, NordFlux'ta n8n otomasyonu kapsamında tam olarak bu performans ve rate limit sorularında seni destekliyoruz, böylece dijital çalışanların güvenilir bir şekilde çalışır.
Otomatik döngü, hemen hemen her n8n node'unda kendiliğinden gerçekleşir: node, gelen her item'ı tek tek işler ve sonuç listesini iletir, bunun için herhangi bir şey yapılandırman gerekmez. Loop Over Items node'u ancak işlemeyi açıkça kontrollü parçalara bölmek istediğinde devreye girer, örneğin rate limit'lere uymak veya yalnızca bir seferde bir item işleyebilen node'lara hizmet vermek için.
Sonsuz döngü genellikle Reset seçeneği etkinken ama hiçbir durdurma koşulu kontrol edilmediğinde ortaya çıkar. Bu durumda, örneğin `{{$("Loop Over Items").context["noItemsLeft"]}}` ifadesini değerlendiren bir IF node'u ekle ve sona ulaşıldığında workflow'u tekrar döngüye göndermek yerine done dalına yönlendir.
Genel geçer bir sayı yoktur, çünkü her servisin kendi rate limit'leri vardır. Başlangıç noktası olarak batch başına 1 ile 10 item arasındaki küçük değerler uygundur, bunları daha sonra hedef servisin gerçek yanıt sürelerine ve olası hata mesajlarına göre kademeli olarak ayarlarsın.
Hayır, çoğu n8n node'u birden fazla item'ı ek bir yapılandırma olmadan otomatik olarak işler. Yalnızca sınırlı sayıda istisna node için, örneğin belirli veritabanı node'ları veya manuel sayfalama durumundaki HTTP Request node'u için, döngüyü Loop Over Items node'u veya geriye bağlı bir IF node'u ile kendin kurman gerekir.
Evet, Loop Over Items node'unun currentRunIndex gibi context özellikleri üzerinden mevcut çalıştırmayı belirleyebilirsin ve workflow'daki daha önceki node'lara referanslar üzerinden önceki adımlardan gelen veriler de dahil edilebilir. Birden fazla çalıştırma boyunca daha karmaşık ara depolama için ek olarak ara sonuçları toplayan bir Set veya Code node'u önerilir.
NordFlux, kuruluşlar için dijital çalışanlar kurar: tekrar eden işleri üstlenen otomasyonlar ve KI ajanları. Kontrol sizde kalır.
n8n'deki en büyük öğrenme engeli açıklanıyor: Items, $json ve $node ne anlama gelir ve değerleri Drag-and-Drop ile kod olmadan nasıl eşleştirirsiniz.
n8n'deki onay adımları, yapay zeka ajanlarının insan onayı olmadan e-posta göndermesini veya sipariş vermesini nasıl engeller.
n8n workflow'larını Wait düğümü, Batching, Retry on Fail ve pagination ile 429 hatalarına karşı nasıl dayanıklı hale getirirsin.
Toplu iş boyutu ve sıfırlama seçeneği önemsiz görünür, ama workflow'unuzun kararlı çalışıp çalışmayacağını ya da API sınırlarına takılıp takılmayacağını belirleyen tam olarak bunlardır. NordFlux, n8n workflow'larınızın yönetilen işletimini üstlenir ve batching, performans ile hata yönetimini en baştan doğru kurar. İlk görüşmede kritik workflow'larınızı tam bu tuzaklara karşı kontrol ederiz.