Kod Yazmadan Akıllı Otomasyon: n8n ile Tanışın

Kod Yazmadan Akıllı Otomasyon: n8n ile Tanışın
İş süreçlerini otomatize etmek, manuel adımları azaltmak ve sistemler arasında kusursuz veri akışı sağlamak artık sadece yazılımcıların işi değil. Açık kaynak kodlu bir otomasyon platformu olan n8n, yazılım bilgisi olmadan dahi karmaşık iş akışları tasarlamayı mümkün kılıyor. Zapier ve Make gibi popüler araçlara göre çok daha esnek, şeffaf ve özgür olan n8n, aynı zamanda LLM (GPT) gibi yapay zekâ servisleriyle de entegre çalışabiliyor.

n8n, farklı uygulamalar ve servisler arasında veri akışı kurmak, işlemleri otomatikleştirmek ve zamana veya tetikleyici olaylara göre görevler başlatmak amacıyla kullanılır. Örneğin bir form doldurulduğunda CRM’e veri kaydı yapılabilir, yeni bir e-posta geldiğinde Slack üzerinden bildirim gönderilebilir, veri tabanındaki veriler API üzerinden üçüncü bir uygulamaya iletilebilir. Tüm bu süreçler n8n ile görsel olarak sürükle-bırak yöntemiyle kurulabilir.

n8n, Zapier veya Make gibi ticari otomasyon araçlarının sunduğu özelliklerin ötesine geçerek kullanıcıya özgürlük sunar. Açık kaynaklı olması sayesinde kendi altyapınızda barındırabilir, sınırsız akış ve entegrasyon oluşturabilirsiniz. Ayrıca, if/else blokları, döngüler, hata yakalama gibi yazılımcıların alışık olduğu mantıksal yapı taşlarını da destekler. Böylece hem teknik hem teknik olmayan kullanıcılar için esnek ve güçlü bir platform haline gelir.

n8n bugün itibarıyla 200’den fazla uygulamayla entegre çalışabiliyor. Google Sheets, GitHub, PostgreSQL, Slack, Discord, Salesforce, Telegram, AWS ve hatta OpenAI gibi popüler servislerle doğrudan bağlantı kurmak mümkün. Entegrasyonların büyük bir kısmı hazır node olarak sunuluyor ve sürükleyip yapılandırmanız yeterli oluyor.

n8n’in en heyecan verici özelliklerinden biri, LLM (Large Language Model) yani büyük dil modeli entegrasyonlarını desteklemesi. OpenAI API’leriyle doğal şekilde entegre olarak, gelen verilere göre GPT-3.5 veya GPT-4’ten yanıt alabiliyorsunuz. Bu da n8n’i sadece otomasyon aracı olmaktan çıkarıp, akıllı kararlar verebilen ve kullanıcıya özel içerik sunabilen bir çözüm haline getiriyor. Özellikle chatbot’lar, içerik üretimi, e-posta yanıtlama ve özet çıkarma gibi işlemlerde fark yaratıyor.

n8n’in en önemli avantajlarından biri de self-hosted (kendin barındır) seçeneği. İster Render, Railway gibi platformlarda ister kendi sunucunuzda Docker ile çalıştırabilirsiniz. Bu size veri gizliliği, özelleştirme ve maliyet kontrolü gibi alanlarda tam yetki verir. Özellikle kurumsal kullanıcılar için bu özgürlük, n8n’i cazip bir alternatif haline getiriyor.

n8n’in self-hosted seçeneğini öne çıkaran bir diğer önemli unsur, sahip olduğu “Fair Code” lisans modelidir. n8n, tamamen açık kaynaklı bir yazılım olsa da, klasik açık kaynak lisanslarının ötesinde, adil kullanım odaklı özel bir lisanslama yaklaşımı benimser. Fair Code lisansı, yazılımın kaynak kodunu herkesin incelemesine, değiştirmesine ve kişisel ya da ticari projelerde kullanmasına olanak tanırken; yalnızca n8n’i doğrudan ticari olarak yeniden satmak isteyen şirketlerden lisans talep eder. Bu sayede bireyler, geliştiriciler ve kurumlar geniş özgürlükle n8n’i kullanabilirken, projenin sürdürülebilirliği de garanti altına alınır. Bu lisans modeli sayesinde n8n, hem açık kaynak felsefesini korur hem de proje ekibine uzun vadeli gelir sağlayarak sürekli gelişimi destekler. Kurumlar için bu; güvenilir, sürdürülebilir ve şeffaf bir çözüm anlamına gelir.

Eğer siz de yazılım bilgisi olmadan sistemler arası güçlü entegrasyonlar kurmak, iş süreçlerini akıllı hale getirmek ve veri akışlarını kontrol altına almak istiyorsanız, n8n’i mutlaka deneyin.

n8n’i deneyimlemek için siz de ücretsiz bir deneme hesabı açabilirsiniz. Ben de bu yazıyı hazırlarken kendi hesabımı oluşturdum: saravasiyeyigit.app.n8n.cloud. Bu platform üzerinden temel işlevleri test ederek n8n’in yeteneklerini doğrudan gözlemleme fırsatım oldu. Aşağıda, kurduğum ilk basit otomasyon akışını ve n8n’in ne kadar erişilebilir olduğunu örnekle paylaşmak istiyorum.
İlk olarak bir “Webhook” oluşturdum.


Şekil 1.
Webhook node’unun ayar ekranında, bu endpoint’in nasıl çalışacağını tanımladım. HTTP Method olarak GET seçeneğini belirledim; bu sayede, tarayıcı üzerinden yapılacak basit bir istekle akışın tetiklenmesi mümkün hale geldi. Respond seçeneğini ise “Using ‘Respond to Webhook’ Node” olarak ayarladım. Bu ayar sayesinde, gelen isteğe verilecek yanıtın kontrolü, akışın ilerleyen adımlarına bırakılmış oluyor. Böylece mesajın içeriği dinamik olarak oluşturulabiliyor ve yanıt Respond to Webhook node’u üzerinden gönderiliyor.


Şekil 2.
“Canvas”da görüldüğü gibi, n8n ile ilk adım olarak bir Webhook node’u oluşturulmuş oldu. Bu node, dış sistemlerden veya kullanıcıdan gelen HTTP isteklerini (örneğin bir tarayıcıdan gelen ziyaret) dinlemek ve yakalamak üzere yapılandırılır. Görselde gördüğünüz gibi, akışın başlangıç noktası olarak konumlanan bu node, GET metodunu kabul edecek şekilde ayarlanmıştır. Bu sayede dışarıdan yapılacak her bir GET isteği bu node tarafından tetiklenecek ve sonraki adımlara veri taşıyacaktır.


Şekil 3.
Webhook node’u tarafından yakalanan isteğe, n8n üzerinde bir yanıt üretebilmek için bir Set node’u (yeni arayüzde “Edit Fields” olarak geçiyor) kullandım. Bu node, dışarıdan gelen veriye yeni bir alan eklememi sağlıyor. Görselde de görüleceği gibi, “message” adlı bir alan oluşturdum ve değerine “Merhaba Sarav Asiye!” metnini yazdım. Bu işlem, yanıt olarak gönderilecek veriyi temsil ediyor. Akışın ilerleyen adımlarında bu mesaj, kullanıcıya dönecek olan çıktının temelini oluşturacak.


Şekil 4.
Workflow’un son adımında Respond to Webhook node’unu ekledim. Bu node, akış boyunca oluşturulan veriyi dışarıya, yani Webhook URL’sine istek gönderen tarayıcı ya da uygulamaya geri döndürmekle görevli. Burada “Respond With” seçeneği olarak “First Incoming Item” belirlenmiş durumda. Bu ayar sayesinde, önceki adımda (Edit Fields) oluşturulan mesaj olduğu gibi kullanıcıya döndürülüyor. Üst kısımdaki turuncu uyarı ise Webhook node’un “Respond” ayarının bu node’a yönlendirilmiş olması gerektiğini hatırlatıyor ki, bu da daha önce başarıyla yapılmıştı. Böylece gelen her istek, n8n tarafından anlamlı bir yanıtla karşılık buluyor.


Şekil 5.
Akışımız şu şekilde oldu. [Webhook] → [Edit Fields (manual)] → [Respond to Webhook]
Webhook: HTTP GET isteğini dinliyor
Edit Fields: message: Merhaba Sarav Asiye! değerini oluşturuyor
Respond to Webhook: Bu değeri gelen kişiye geri gönderiyor
Yani ne yapmış olduk?
n8n üzerinde oluşturduğum bu basit akışta, bir kişi ya da sistem tarafından Webhook URL’sine gönderilen istek, ilk olarak Webhook node’u tarafından yakalanıyor. Bu istek sonrasında Edit Fields (Set) node’una iletiliyor ve burada kullanıcıya özel sabit bir mesaj tanımlanıyor: “Merhaba Sarav Asiye!”. Akışın sonundaki Respond to Webhook node’u ise bu mesajı, isteği gönderen tarayıcıya veya istemci sisteme HTTP yanıtı olarak geri iletiyor. Böylece dışarıdan gelen bir istek, n8n üzerinde tanımlı mantıksal adımlardan geçerek kişiselleştirilmiş bir yanıtla sonuçlanmış oluyor.
Her bir “node”u çift tıklayıp, “Execute step” butonuna bastıktan sonra her bir “node”un sağ köşesinde yeşil bir işaret belirdi.


Şekil 6.
Sonra, “Execute workflow” dedim. Sonrasında hem tarayıcı üzerinden hem de PowerShell üzerinden akışın başarılı çalıştığını gördük.


Şekil 7.
PS C:\Users\asiye.yigit> curl https://saravasiyeyigit.app.n8n.cloud/webhook-test/82aa6bb1-811e-4011-9abf-f6c26e481b2f
StatusCode : 200
StatusDescription : OK
Content : {“message”:”Merhaba Sarav Asiye!”}
RawContent : HTTP/1.1 200 OK
Connection: keep-alive
Cf-Ray: 94d214fa3dbec367-IST
Cf-Cache-Status: DYNAMIC
Strict-Transport-Security: max-age=15552000; includeSubDomains
Vary: Accept-Encoding, Accept-Encoding…
Forms : {}
Headers : {[Connection, keep-alive], [Cf-Ray, 94d214fa3dbec367-IST], [Cf-Cache-Status, DYNAMIC],
[Strict-Transport-Security, max-age=15552000; includeSubDomains]…}
Images : {}
InputFields : {}
Links : {}
ParsedHtml : mshtml.HTMLDocumentClass
RawContentLength : 34
PS C:\Users\asiye.yigit>


Şekil 8.
Dış sistemlerden gelen bir isteği dinlemek, bu isteğe özel bir içerik üretmek ve sonrasında yanıt olarak geri döndürmek… Normal şartlarda bunun için bir sunucu kurulumu, bir backend framework, JSON yapıları, HTTP endpoint yönetimi ve hata kontrolü gibi yazılımsal detaylarla uğraşmak gerekirdi. Ancak n8n sayesinde bu sürecin hiçbir satır kod yazmadan, yalnızca sürükle-bırak yöntemiyle birkaç dakikada tamamlanabildiğini deneyimlemiş oldum. Bu örnek her ne kadar basit görünse de, n8n’in karmaşık işlemleri herkes için erişilebilir hale getirmesi açısından oldukça çarpıcı bir örnekti. Basit bir akış kurduk, ama karmaşık işleri sessizce ortadan kaldırdık.
Bu yazıda temel bir Webhook akışının n8n ile nasıl oluşturulacağını öğrendik. Bu sadece başlangıçtı. Peki ya bu otomasyonlara kolay bir şekilde, kod bilgisine bile ihtiyaç duymadan “düşünme” yetisi kazandırmak mümkün olsaydı? Bir sonraki yazıda, GPT gibi büyük dil modelleriyle zenginleştireceğimiz bir akış oluşturacağız. Kodu bilmeden fikir üreten sistemler kurmak, artık bilim kurgu değil.

Sarav Asiye Yiğit * 9 Haziran 2025

Kaynakça:
https://n8n.io
https://n8n.io/integrations/
https://faircode.io/