n8n iş akışları
AI-School, üretim webhook üzerinden n8n iş akışlarını başlatabilir. Bu, AI-School dışında otomatik bir süreci başlatmak istediğinizde faydalıdır; örneğin bir görevin oluşturulması, bir CRM kaydının güncellenmesi, bir raporlama akışının başlatılması veya form verilerinin başka bir sisteme iletilmesi gibi.
Örnek: okulun web sitesindeki haber makalesi
Diyelim ki okul, okulun WordPress sitesinde bir haber makalesini yayımlayan bir n8n iş akışına sahip. AI-School içinde yalnızca kısa bir metin yazarsınız; örneğin bir proje haftası, spor günü veya açık günle ilgili birkaç cümle. Bu metinle n8n'deki iş akışını başlatırsınız.
n8n iş akışı ardından şöyle gerçekleştirebilir:
- Kısa metinden LLM düğümü ile okula uygun bir tonla bir taslak metin oluşturulur.
- Okula uygun renklerde ve tanınabilir bir illustratif tarzda bir illüstrasyon için ikinci bir LLM düğümü ile görsel oluşturulur.
- Metin ve görsel bir blog gönderisi olarak hazırlanır veya WordPress sitesinde yayımlanır.
Gibi çalışır: AI-School ve n8n birlikte çalışır: AI-School'da kullanıcı iş akışını seçer ve gerekli bilgileri girer. Ardından n8n otomatik adımları yürütür ve haber makalesi düzgün bir şekilde web sitesine ulaşır.
Bu entegrasyon ne yapar?
İş akışını iş akışı özetinden başlatırsınız. Sadece üretim webhook, POST ve Header Auth zorunludur. n8n'den gelen alanlar ve geri bildirimler isteğe bağlıdır ve bağımsız olarak yapılandırılabilir.
- İş akışında alan yoksa webhook hemen çağrılır.
- İş akışında alan varsa önce bir form açılır. Kullanıcı alanları doldurur ve ardından başlat düğmesiyle iş akışını başlatır.
- Doldurulan değerler JSON olarak POST isteğiyle n8n webhook’una gönderilir.
- Geri bildirim olmadan AI-School yalnızca iş akışının başlatıldığını ve n8n içinde ilerlediğini teyit eder. Pencere spinner göstermez ve hemen kapatılabilir.
- Bu kayıt için etkinleştirilmişse, iş akışı ara adımları veya sonunu AI-School’a geri gönderebilir.
- Kayıtta onaylama etkinse, kullanıcı AI-School’da doğrudan bir seçim yapabilir. Ardından n8n bekleyen adımdan devam eder.
AI-School içinde n8n iş akışı oluşturma
Bir yöneticinin iş akışını şu şekilde kaydetmesi:
- Asistanlar bölümüne gidin.
- İş Akışlarını açın.
- Yeni n8n iş akışını seçin.
- İş akışının adını ve n8n üretim URL’sini girin.
- Header kimlik doğrulama öğesini bir başlık adı ve gizli başlık değeriyle yapılandırın.
- n8n'den geri bildirimler altında gerçekten bu n8n iş akışında oluşturulan bölümleri seçin: ilerleme, onay ve/veya iş akışının sonu.
- POST isteğinde iletilmesi gereken alanları ekleyin.
- İş akışını kaydedin.
Tüm üç geri bildirim seçeneği varsayılan olarak kapalıdır. Daha sonra n8n’de çağrılar veya bir onay adımı eklediğinizde, AI-School kaydını da güncelleyin. Diyalog böylece başlatma teyidi göstermesi gerektiğini ya da daha ileri sinyaller beklemesi gerektiğini bilir.
Alanlar
- Alanlar isteğe bağlıdır.
- Her alanın yalnızca bir alan adı ve bir tipi vardır.
- Desteklenen alan türleri: kısa metin, uzun metin, sayı, evet/hayır, tarih, tek seçim ve çoklu seçim.
- Tek seçim ve Çoklu seçim için mevcut seçenekler eklenir. Tek seçim kompakt bir seçim listesi olarak gösterilir; Çoklu seçim onay kutuları gösterir. Seçilen değerler JSON gövdesine iletilir.
- Zorunlu alanlar iş akışı başlatılmadan önce doldurulmalıdır.
- Alan adı JSON gövdesinde n8n’e gönderilecek anahtardır.
n8n'de Uyumlu İş Akışı Oluşturma
- n8n'de yeni bir iş akışı oluşturun.
- İlk düğüm olarak bir Webhook ekleyin.
- Bu düğüme tam olarak Start workflow adını verin. Aşağıdaki örnekler bu adı kullanır.
- HTTP Method'u POST olarak ayarlayın.
- Authentication tarafında Header Auth seçin ve bir Header Auth kimlik bilgisi seçin.
- AI-School'daki iş akışında aynı başlık adı ve gizli değeriyle kimlik bilgisini doldurun.
- Respond veya Response Mode değerini Immediately olarak ayarlayın. Böylece uygulama hemen başarılı bir başlatma teyidi alır ve n8n devam eder.
- Webhook düğümünün Üretim URL’sini kopyalayın ve AI-School’deki n8n üretim-url alanına yapıştırın.
/webhook-test/olan test URL’sini kullanmayın. - İş akışını n8n’de etkinleştirin.
AI-School’den gelen veriler n8n’de body altında bulunur. Entegrasyon verileri bu yüzden body.integration altında bulunur. Bu verileri Edit Fields, Set veya Code düğümü içinde değiştirmeyin. Aşağıdaki örnekler bu değeri düğünden doğrudan okur durumda gösterir.
JSON body örneği
Alanları prompt, klantnaam, doelgroepen ve datum adlarıyla tanımlarsanız, n8n şu JSON gövdesini alır. AI-School otomatik olarak integration nesnesini ekler.
{
"prompt": "Maak een korte samenvatting van de aanvraag.",
"klantnaam": "Voorbeeldorganisatie",
"doelgroepen": ["medewerkers", "ouders"],
"datum": "2026-09-22",
"integration": {
"runId": "chat-document-id",
"tenant": "default",
"callbackUrl": "https://europe-west1-ai-school-pro.cloudfunctions.net/n8nWorkflowCallback",
"callbackToken": "tijdelijk-token-voor-deze-uitvoering"
}
}
Çağrı geri bildirimi için tek bir çalışma için olan callbackToken kaydının bir parçasıdır. Loglarda, sabit konfigürasyonda veya diğer sistemlerde saklamayın.
İsteğe Bağlı: ilerleme ve tamamlanma geri bildirimleri
AI-School yalnızca n8n’nin geri bildirimlerini gösterebilir. Bu geri bildirimleri yalnızca kayıt sırasında Ara ilerleme bildirin ve/veya İş akışının sonunda bildirin seçeneklerini etkinleştirdiyseniz kullanın.
HTTP Request düğümü ayarlama
-
Bir HTTP Request düğümü ekleyin ve buna örneğin İlerlemeyi Bildir adını verin.
-
Methodu POST olarak ayarlayın.
-
URL üzerinde Expression seçeneğini tıklayın.
-
Aşağıdaki ifadeyi tam olarak yapıştırın:
{{ $('Start workflow').first().json.body.integration.callbackUrl }} -
Authentication için None seçin. Geçici token bir sonraki adımda başlık olarak eklenir.
-
Send Headers açık olsun ve şu iki başlığı ekleyin:
Name Value AuthorizationBearer {{ $('Start workflow').first().json.body.integration.callbackToken }}Content-Typeapplication/json -
Send Body açık olsun.
-
Body Content Type: JSON ve Specify Body: Using JSON seçeneğini seçin.
-
Aşağıdaki JSONu JSON alanına yapıştırın:
{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "document-maken-gestart",
"type": "progress",
"executionId": "{{ $execution.id }}",
"step": {
"id": "document_maken",
"label": "Document maken"
},
"message": "Het document wordt gemaakt."
}
- Düğümün durumunu test ederken adımı çalıştırın. Düğümün durumunun 200 dönüşü alması gerekir.
Bu HTTP Request düğümünü her durum bildirimi için kopyalayın. Kopya başına en az eventId, step.id, step.label ve message değerlerini değiştirin.
Son çağrıyı ayarlama
İş akışının sonunda bildirin etkinleştirilmişse, her olası rota sonunda bir son geri bildirimi bulunmalıdır. Başarılı için type: "completed", bir hata için kendi işlediğiniz hatayı belirten type: "failed" ve kullanıcı iş akışını reddederse type: "rejected" kullanın.
Başarılı bir yürütme için gövde şu şekilde olabilir:
{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "workflow-afgerond",
"type": "completed",
"executionId": "{{ $execution.id }}",
"step": {
"id": "afronding",
"label": "Workflow afgerond"
},
"message": "İş akışı tamamlandı.",
"output": {
"sonuç": "Kısa bir açıklama veya sonuca bağlantı"
}
}
Her bir geri bildirim için tek bir yürütme içinde farklı bir eventId kullanın. Ayrıca kullanıcıya bu yürütmede görünen metin olan step.label için her zaman net bir ifade kullanın.
İsteğe bağlı: Uygulamada onay isteme
Wait düğümü ayarlama
- Onay gerektiği yerde bir Wait düğümü ekleyin.
- Resume için On Webhook Call seçin.
- HTTP Methodu POST olarak ayarlayın.
- Authentication için Header Auth seçin.
- Start workflow düğümündeki aynı Header Auth kimlik bilgisini seçin.
- Wait düğümünden önce daha önce ayarlanmış HTTP Request düğümünün bir kopyasını ekleyin ve buna Vraag goedkeuring adını verin.
- Bu düğümde aynı dinamik URL ve başlıkları kullanın. Sadece JSON gövdesini şu şekilde değiştirin:
{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "controle-document",
"type": "approval_required",
"executionId": "{{ $execution.id }}",
"step": {
"id": "controle_document",
"label": "Document controleren"
},
"approval": {
"question": "Mag de workflow doorgaan?",
"context": "Controleer eerst het gegenereerde document.",
"resumeUrl": "{{ $execution.resumeUrl }}",
"choices": [
{ "value": "approve", "label": "Goedkeuren" },
{ "value": "reject", "label": "Afwijzen" }
]
}
}
İsteğe bağlı: Onay isteme düğümünü Wait düğümüne bağlayın. Kullanıcı ardından AI-School’da butonları görür. Gizli resume-url tarayıcıya gösterilmez; sunucu onayı güvenli bir şekilde Wait düğümüne iletir.
Wait düğümünden sonraki seçimi işleme
-
Wait düğümünden sonra bir Switch düğümü ekleyin.
-
Kontrol edilecek değeri şu şekilde kullanın:
{{ $json.body.decision }} -
Örneğin
approveverejectiçin birer rota oluşturun. -
Her rotayı uygun bir
completed,rejectedveyafailedgeri bildirimi ile sonlandırın.
Bir seçim değeri yalnızca harfler, rakamlar, _ ve - içerebilir. Etiket kullanıcı için okunabilir metin içermelidir.
Üretim callback-url ayarlama
AI-School için üretim callback-url şu şekildedir:
https://europe-west1-ai-school-pro.cloudfunctions.net/n8nWorkflowCallback
Bu URL’yi her geri bildirim düğümünde sabit metin olarak yapıştırmayın. HTTP Request düğümünün URL alanında Expression seçeneğini kullanın ve şu ifadeyi kullanın:
{{ $('Start workflow').first().json.body.integration.callbackUrl }}
AI-School bu şekilde her başlatmada doğru üretim URL’sini otomatik olarak verir. Yukarıdaki sabit URL yalnızca test sırasında ifadeyi AI-School’a yönlendirdiğini kontrol etmek için kullanılır.
triggerCustomN8nWorkflow, triggerN8nWorkflow ve resumeN8nWorkflow çağrıları uygulama tarafından kendiliğinden yapılır. Bu URL’leri n8n içinde ayarlamanıza gerek yoktur.
Beklenmeyen hataları geri göndermek
Normal bir failed geri bildirimi yalnızca iş akışı ilgili HTTP Request düğümüne ulaştığında çalışır. Beklenmeyen düğüm hataları için merkezi bir n8n Hata İş Akışı kullanın.
Merkezi Hata İş Akışı oluşturma
-
n8n’de AI-School - fouten terugsturen adlı ayrı bir iş akışı oluşturun.
-
Bir Error Trigger düğümü ekleyin.
-
Ardından bir HTTP Request düğümü ekleyin.
-
Method olarak POST seçin.
-
URL alanına sabit üretim URL’sini girin:
https://europe-west1-ai-school-pro.cloudfunctions.net/n8nWorkflowExecutionFailed -
Authentication: None seçin.
-
Send Headers açık olsun ve şu başlıkları ekleyin:
Name Value n8n-handihow-nameplatform yöneticisinden aldığınız gizli standart değer Content-Typeapplication/json -
Send Body açık olsun, JSON seçin ve şu gövdeyi yapıştırın:
{
"executionId": "{{ $json.execution.id }}",
"workflowId": "{{ $json.workflow.id }}",
"workflowName": "{{ $json.workflow.name }}",
"lastNode": "{{ $json.execution.lastNodeExecuted }}",
"message": "{{ $json.execution.error.message }}"
}
- Hata İş Akışını etkinleştirin.
- Normal iş akışının ayarlarına gidin ve Error Workflow olarak bu yeni Hata İş Akışını seçin.
Başlatma işleminden sonra en az bir ilerleme geri bildirimi gönderin: executionId: "{{ $execution.id }}". Böylece uygulama hangi çalışmanın beklenmeyen bir n8n hatasına uğradığını bilir.
Önemli sınırlamalar
- Yalnızca webhook tetikleyicileri desteklenir.
- Yalnızca üretim webhook URL’leri desteklenir.
/webhook-test/ile test webhook URL’leri reddedilir.- Yalnızca POST desteklenir.
- Yalnızca genel başlık kimlik doğrulama desteklenir.
- Başlık değeri uygulamada sır olarak ele alınır.
- Geri bildirim tokenleri ve resume-url’ler yalnızca sunucu tarafında işlenir ve kullanıcılar için doğrudan erişilebilir değildir.
- Tenant, giriş yapan kullanıcıdan sunucu tarafında belirlenir; tarayıcı tarafından gönderilen bir değere bağlı değildir.
Problemler çözme
- 404 veya webhook kaydı yok: n8n’de iş akışını etkinleştirin ve üretim URL’sini kullanın.
- Kimlik doğrulama hatası: başlık adı ve değerin iki sistemde de tam olarak aynı olduğundan emin olun.
- Eksik veri: uygulamadaki alan adlarının, n8n’in beklediği anahtar adlarıyla eşleştiğini kontrol edin.
- n8n’de istek yok: iş akışının bir webhook tetikleyicisiyle başlamasından ve POST kullanmasından emin olun.
- Yürütme penceresi dönmeyi durdurmuyorsa: İş akışının sonunda bildirin özelliğinin açık olduğundan emin olun; yoksa tüm geri bildirim seçeneklerini devre dışı bırakın.
- İlerleme görünmüyor: kayıt sırasında Ara ilerleme bildirin açık mı,
integrationnesnesi korunuyor mu ve her geri bildirimin benzersiz bireventIdiçerdiğini kontrol edin. - Onay düğmeleri çalışmıyor: Wait düğümünü,
resumeUrl'ı, başlık kimlik doğrulamayı vechoices[].valueiçindeki izin verilen karakterleri kontrol edin.