Sub-Workflow'lar: Monolit Yerine Modüller
Execute Sub-workflow Node ve Trigger'ın büyük n8n workflow'larını yeniden kullanılabilir, bakımı kolay modüllere nasıl ayırdığı.
Elli node, üç iç içe geçmiş IF dalı ve beş farklı veri kaynağı içeren bir workflow ilk bakışta etkileyici görünür, ama pratikte bir bakım kabusudur. Fatura kontrolündeki her küçük değişiklik tüm müşteri sipariş workflow'unu bozar, her yeni meslektaşın workflow'un ne yaptığını anlamak için bir saate ihtiyacı vardır. n8n, tam da bu sorun için Sub-Workflow'ları sunar: bir workflow diğerini çağırır, onun sonucunu geri alır ve devam eder, klasik koddaki bir fonksiyona oldukça benzer şekilde.
Bir monolit yerine, ayrı ayrı test edilebilen, ayrı ayrı değiştirilebilen ve birden fazla workflow'da yeniden kullanılabilen küçük, kendi içinde tamamlanmış yapı taşları ortaya çıkar. Bu makale, Sub-Workflow'ların n8n'de teknik olarak nasıl çalıştığını, mevcut bir otomasyonu nasıl modüllere ayırabileceğini ve veri akışı ile hata yönetimi konusunda nelere dikkat etmen gerektiğini gösteriyor. Güncelleme: Temmuz 2026.
Bir Sub-Workflow Aslında Nedir
n8n'in şu dokümantasyonuna göre: workflow'ları küçük parçalara ayırma, bir workflow'u başka bir workflow içinden çağırabilirsin. Bu sayede her şeyi tek ve devasa bir süreçte toplamak yerine modüler, mikroservis benzeri workflow'lar oluşturabilirsin. Bir Sub-Workflow, aslında başka bir workflow tarafından tetiklenmek ve bir sonuç döndürmek için özel olarak tasarlanmış, tamamen sıradan bir n8n workflow'undan ibarettir.
Bu ilişkinin temelini iki node oluşturur: Çağıran, üst workflow'da Execute Sub-workflow Node bulunur, çağrılan workflow'un en başında ise Execute Sub-workflow Trigger Node yer alır, bu node "When Executed by Another Workflow" olarak da bilinir. Trigger zorunludur: o olmadan bir Sub-Workflow dışarıdan başlatılamaz.
Bölmenin Neden Değdiği
Avantajlar sadece teorik değil, pratikte de hissedilir:
- Yeniden kullanılabilirlik: "Müşteri verilerini doğrula" veya "PDF fatura oluştur" gibi bir mantığı bir kez Sub-Workflow olarak yazarsın ve istediğin kadar üst workflow'dan çağırırsın, birden fazla kez kopyalamak yerine.
- Bakım kolaylığı: Bir iş kuralı değiştiğinde, onu tam olarak tek bir yerde, Sub-Workflow'da düzenlersin, beş farklı kopyada her örneği aramak yerine.
- Sadelik: Yedi net adlandırılmış Sub-Workflow çağrısı olan bir ana workflow, bir tuvaldeki elli node'dan tek bakışta daha anlaşılırdır.
- Büyük workflow'larda kaynak tasarrufu: Dokümantasyona göre, Sub-Workflow çalıştırmaları planının aylık çalıştırma veya aktif workflow limitine sayılmaz, bu da çok büyük workflow'larda bellek sorunlarında ek olarak yardımcı olur.
- Ayrılmış sorumluluklar: Bir ekip sipariş mantığı üzerinde çalışırken, başka bir ekip e-posta gönderimi üzerinde çalışabilir, aynı workflow içinde birbirinin ayağına dolaşmadan.
Şirkette teklif veya fatura süreçleri gibi tekrarlayan birçok süreci otomatikleştiren herkes, bu modülerleşmeden özellikle fayda görür. Bu tür otomasyonlar hakkında daha fazla bilgiyi NordFlux'ta dijital çalışanlar bölümünde bulabilirsin.
Sub-Workflow Oluşturma: Trigger Node
Bir workflow'u Sub-Workflow olarak kullanılabilir hale getirmek için, en başına Execute Sub-workflow Trigger Node'unu eklersin. Dokümantasyona göre, bu node workflow'daki ilk node olmalıdır. Beklenen giriş verileri için üç mod seçilebilir:
- Define using fields: Çağıran workflow'un sağlaması gereken tek tek alan adlarını ve veri tiplerini belirlersin.
- Define using JSON example: n8n'in yapı ve tipleri çıkaracağı bir örnek JSON verirsin.
- Accept all data: Trigger, gelen herhangi bir veri yapısını kısıtlama olmadan kabul eder.
Üretimde kullanılan Sub-Workflow'lar için genellikle birinci veya ikinci seçenek daha iyi bir tercihtir, çünkü net tanımlanmış girdiler hataları erken görünür kılar, sürecin ortasında ortaya çıkmasına izin vermek yerine.
Sub-Workflow Çağırma: Execute Sub-workflow Node
Üst workflow'da Execute Sub-workflow Node'unu eklersin ve hangi workflow'un çalıştırılacağını belirlersin. Execute Sub-workflow Node hakkındaki n8n dokümantasyonuna göre bunun için dört kaynak mevcuttur:
- Database: Mevcut workflow'lardan oluşan bir listeden seçim yapma veya workflow ID'sini doğrudan girme.
- Local File: n8n host'unda yerel olarak JSON dosyası olarak bulunan bir workflow'un çalıştırılması.
- Parameter: Workflow kodu doğrudan JSON olarak node'a girilir.
- URL: Bir workflow bir web adresinden yüklenir ve çalıştırılır.
Ayrıca çalıştırma modunu belirlersin: ya tüm giriş öğelerini tek bir çalıştırmada Sub-Workflow'a aktarırsın, ya da Sub-Workflow'u her giriş öğesi için ayrı ayrı başlatırsın. Wait for Sub-Workflow Completion seçeneği, üst workflow'un sonucu bekleyip beklemeyeceğini veya tamamlanmayı beklemeden hemen devam edip etmeyeceğini belirler.
Ana Workflow ile Sub-Workflow Arasındaki Veri Akışı
Veriler net, iki aşamalı bir düzende hareket eder: Ana workflow'daki Execute Sub-workflow Node, verilerini çağrılan workflow'daki Execute Sub-workflow Trigger Node'a gönderir. Orada Sub-Workflow'un diğer node'larından geçer ve Sub-Workflow'daki son node, sonucunu ana workflow'daki Execute Sub-workflow Node'a geri gönderir. "View sub-execution" bağlantısı bu çalıştırmayı her iki yönde de takip etmeyi sağlar, iç içe geçmiş otomasyonları hata ayıklarken önemli bir araçtır.
Bilmen gereken önemli bir kısıtlama var: Sub-Workflow hata içeriyorsa, üst workflow onu başarıyla tetikleyemez. Bu nedenle düzgün çalışan, test edilmiş bir Sub-Workflow bir ön koşuldur, bir seçenek değil.
Mevcut Bir Workflow'u Sub-Workflow'a Dönüştürme
Sıfırdan başlamak istemeyenler, mevcut workflow parçalarını doğrudan dönüştürebilir. Sub-Workflow'a dönüştürme hakkındaki n8n dokümantasyonuna göre, bunun için istediğin node'ları tuval üzerinde işaretler, arka plana sağ tıklarsın ve bağlam menüsünden "Convert to sub-workflow" seçeneğini seçersin.
Seçim için sabit kurallar geçerlidir:
- Trigger node'lar seçimin parçası olamaz.
- Seçim bağlantılı olmalı, workflow'un geri kalanına geçerli bağlantılarla sahip olmalıdır.
- Sadece tek bir giriş noktası olmalıdır, yani seçimin dışından bağlantı alan sadece bir node, ve bu tek bir giriş dalı üzerinden, merge node olmadan olmalıdır.
- Aynı şekilde sadece tek bir çıkış noktası olmalıdır, dışarıya bağlantıları olan tek bir node, tek bir çıkış dalı üzerinden, IF node olmadan.
- Giriş ve çıkış noktası arasındaki tüm node'lar seçime dahil edilmelidir.
Ayrıca birkaç tuzağı da hesaba katmalısın: Dokümantasyona göre bu özellik n8n sürüm 1.97.0'dan itibaren tüm planlarda kullanılabilir, ancak yeni oluşturulan Sub-Workflow'lar, orijinal workflow'un ayarlarından farklı olabilen v1 çalıştırma sırasını kullanır. Yapay zeka (YZ) node'larında destek sınırlıdır, bağlı sub-node'ların tamamen seçime dahil edilmesi gerekir ve paylaşılan node'ların bazen çoğaltılması gerekebilir. Ayrıca `first()`, `last()` ve `all()` gibi erişim fonksiyonlarını ve ifadeler yerine sabit sayısal indeksler gerektiren `itemMatching` fonksiyonunu, dönüştürmeden sonra, yeni Sub-Workflow'u üretime almadan önce dikkatlice kontrol etmelisin.
Pratik Örnek: Teklif Sürecini Modüllere Ayırma
Gelen talepleri kontrol eden, bir teklif oluşturan, bunu PDF olarak biçimlendiren ve e-posta ile gönderen bir workflow hayal et. Bunların hepsini tek bir süreçte toplamak yerine, bu temiz bir şekilde bölünebilir: bir Sub-Workflow "müşteri verilerini doğrula", ikinci bir tanesi "teklifi hesapla", üçüncüsü "PDF oluştur ve gönder". Ana workflow bu üç modülü art arda çağırır ve sonuçları aktarır. Daha sonra fiyatlandırma mantığı değişirse, sadece ikinci Sub-Workflow uyarlanır, geri kalan her şey dokunulmadan kalır. NordFlux, KOBİ müşterileri için tam olarak bu tür modüler, iyi bakımı yapılabilen otomasyonu hayata geçirir, böylece artan karmaşıklıkta bile süreçlerin kontrolünü elinde tutarsın.
Sık Sorulan Sorular
Bir Sub-Workflow ne zaman değer, ne zaman değmez?
Bir mantık birden fazla kez gerektiğinde veya bir workflow o kadar büyüdüğünde ki karmaşık hale geldiğinde bir Sub-Workflow değer. Buna karşılık, az sayıda node içeren, çok küçük ve tek seferlik kullanılan süreçler için ek çağrı yükü nadiren buna değer, burada genellikle tek bir workflow yeterlidir.
Bir Sub-Workflow kendisi başka bir Sub-Workflow'u çağırabilir mi?
Evet, Sub-Workflow'lar iç içe geçebilir, çağrılan bir workflow kendisi başka bir Execute Sub-workflow Node içerebilir. Pratikte, yapının anlaşılır kalması ve hata ayıklarken hataların hâlâ ilişkilendirilebilmesi için iç içe geçme derinliğini gözlemlemelisin.
Sub-Workflow başarısız olursa ne olur?
Sub-Workflow hata içeriyorsa, üst workflow dokümantasyona göre onu başarıyla tetikleyemez. Bu nedenle her Sub-Workflow, başka workflow'lar ona bağımlı hale gelmeden önce ayrı ayrı test edilmeli ve düzgün hata yönetimiyle donatılmalıdır.
Sub-Workflow çalıştırmaları n8n limitime sayılır mı?
n8n dokümantasyonuna göre, Sub-Workflow çalıştırmaları planının aylık çalıştırma veya aktif workflow limitine sayılmaz. Bu, eğer tek tek limitine sayılacak birçok tekrarlayan alt sürecin varsa, modülleri özellikle cazip kılar.
Mevcut bir workflow'u sonradan modüllere ayırabilir miyim?
Evet. "Convert to sub-workflow" özelliğini kullanarak, tam olarak bir giriş ve bir çıkış noktasına sahip bağlantılı node'ları işaretlersin ve sağ tıklama ile bunları bağımsız bir Sub-Workflow'a dönüştürürsün. Ardından yeni Sub-Workflow'daki çalıştırma sırasını ve kullanılan ifadeleri bir kez daha kontrol etmelisin.
NordFlux UG (haftungsbeschränkt)
NordFlux, kuruluşlar için dijital çalışanlar kurar: tekrar eden işleri üstlenen otomasyonlar ve KI ajanları. Kontrol sizde kalır.
Otomasyon veya KI hakkında somut sorularınız mı var?
Ücretsiz bir ön analizde durumunuzu doğrudan görüşürüz. Bağlayıcı değildir.