n8n ile Gelen Müşteri E-postalarını AI ile Otomatik Sınıflandırma

AgentRoost · May 10, 2026 · 5 dk okuma · Markdown olarak görüntüle
AgentRoost — n8n Automation

Destek ekibindeki herkes bu senaryoyu tanır: sabah gelen kutusunu açıyorsunuz, 80 e-posta var — kimi "faturamda hata var", kimi "ürünü iade etmek istiyorum", kimi de aslında satış departmanına gitmesi gereken "fiyat teklifi alabilir miyim?" sorusu. Bu e-postaları okuyup doğru kişiye yönlendirmek, günde belki yarım saat gibi görünse de haftada 2-3 saate, ayda 10+ saate çıkıyor.

n8n'in IMAP trigger'ı + AI/LLM düğümü birlikte kullanıldığında bu triyajı tamamen otomatikleştirebilirsiniz. Aşağıda sıfırdan çalışan bir akış kuruyoruz.


Akışın Genel Mantığı

IMAP Email Trigger
    → Set (konu + gövdeyi birleştir)
    → AI/LLM düğümü (kategori döndür)
    → Switch (kategoriye göre dal)
        → Fatura:    Gmail "Fatura" etiketi + Slack #fatura-destek
        → Şikayet:   Gmail "Şikayet" etiketi + Slack #oncelikli-destek
        → Satış:     Gmail "Satış" etiketi + CRM'e lead ekle
        → İade:      Gmail "İade" etiketi + Slack #iade-destek
        → Diğer:     Gmail "Genel" etiketi

Beş düğüm, tam otonom triyaj. Şimdi adım adım gidelim.


Adım 1 — IMAP Email Trigger

Yeni bir workflow açın. İlk düğüm olarak Email Trigger (IMAP) ekleyin.

Credential ayarları:

  • Host: imap.gmail.com (Gmail için) ya da outlook.office365.com
  • Port: 993
  • SSL/TLS: açık
  • Mailbox: INBOX
  • Action: Mark as read — aynı e-postayı iki kez işlememek için

Gmail kullanıyorsanız ve Google hesabınızda 2FA açıksa "App Password" oluşturmanız gerekir (Google Hesabı → Güvenlik → Uygulama şifreleri). Normal şifreniz çalışmaz.

Poll interval: Her 1 dakikada bir kontrol etmesi için */1 * * * * cron ifadesi yeterlidir.

Trigger çıktısında şunlar gelir: subject, text (düz metin gövde), html, from, to, date.


Adım 2 — Set Düğümüyle Prompt Hazırla

IMAP trigger'dan gelen subject ve text alanlarını birleştirip AI düğümüne temiz bir girdi hazırlayın.

Set düğümü ekleyin, emailContent adında bir alan tanımlayın:

Konu: {{ $json.subject }}

İçerik:
{{ $json.text.slice(0, 1500) }}

.slice(0, 1500) ile token israfını önlüyorsunuz; çoğu sınıflandırma için ilk 1500 karakter fazlasıyla yeterli.


Adım 3 — AI/LLM Düğümüyle Sınıflandır

AI/LLM düğümü ekleyin (n8n 1.x'te "Basic LLM Chain" veya tercih ettiğiniz LLM credential'ıyla gelen düğümlerden herhangi biri).

System prompt:

Sen bir müşteri destek triaj asistanısın. Sana bir e-postanın konusu ve içeriği verilecek.
Aşağıdaki kategorilerden TAM OLARAK BİRİNİ seç ve sadece JSON döndür:

{
  "category": "fatura" | "sikayet" | "satis" | "iade" | "diger",
  "confidence": 0.0–1.0,
  "reason": "kısa gerekçe (Türkçe, max 15 kelime)"
}

Başka hiçbir şey yazma. Sadece JSON.

User message (expression):

{{ $json.emailContent }}

Model seçimi: gpt-4o-mini hız ve maliyet dengesi açısından bu görev için iyi bir başlangıç noktasıdır. AgentRoost'ta 350'den fazla model arasından istediğinizi seçebilir, herhangi bir API anahtarı ayarlamadan doğrudan kullanmaya başlayabilirsiniz.

Düğümün çıktısı text alanında ham JSON string döner. Bunu parse etmek için bir sonraki adımda Code düğümü kullanacağız.


Adım 4 — Code Düğümüyle JSON'ı Parse Et

Code düğümü (JavaScript) ekleyin:

const raw = $input.first().json.text || $input.first().json.output || '';
let parsed;
try {
  // Model bazen ```json ... ``` içinde döndürür, temizleyelim
  const cleaned = raw.replace(/```json|```/g, '').trim();
  parsed = JSON.parse(cleaned);
} catch {
  parsed = { category: 'diger', confidence: 0, reason: 'parse hatası' };
}

return [{
  json: {
    ...$input.first().json,
    category: parsed.category,
    confidence: parsed.confidence,
    reason: parsed.reason
  }
}];

Bu adım category ve confidence alanlarını sonraki düğümlere temiz şekilde taşır.


Adım 5 — Switch ile Dallandır

Switch düğümü ekleyin. Rules modunda her dal için:

Dal adı Koşul
fatura {{ $json.category }} === fatura
sikayet {{ $json.category }} === sikayet
satis {{ $json.category }} === satis
iade {{ $json.category }} === iade
diger fallback (her şey)

Her dalın sonuna ihtiyacınıza göre düğüm ekleyin:

  • Gmail düğümü → etiketi ekle (addLabel)
  • Slack düğümü → ilgili kanala mesaj at
  • HTTP Request → CRM API'sine lead oluştur (satış dalı için)

Güven kontrolü ekleyin: Şikayet dalının hemen başına bir IF düğümü koyun:

{{ $json.confidence }} < 0.70  →  "Belirsiz" etiketini ekle + #destek-gözden-geçir kanalına bildir

Böylece model emin olmadığında insan gözden geçirir.


Olası Tuzaklar

  • HTML e-postalar: Bazı e-postalar text alanı boş, sadece html içerir. Set düğümünde fallback ekleyin: {{ $json.text || $json.textHtml || '' }}
  • Encoding: Türkçe karakter sorunları için IMAP credential'da charset UTF-8 seçin.
  • Otoresponder döngüsü: Kendi otomatik yanıtlarınızı tekrar işlememeniz için IF düğümüyle from alanında no-reply veya noreply içeriyorsa akışı durdurun.
  • Rate limit: Gmail IMAP bağlantısı için 1 dakikalık polling genellikle yeterlidir; çok daha kısa aralıklar IMAP bağlantı hatası üretebilir.

AgentRoost'ta Nasıl Çalıştırırsınız

Kendi sunucunuzda bu akışı ayaklandırmak; Docker kurulumu, SSL sertifikası, IMAP portlarını açma ve AI API anahtarı almanızı gerektirir. Toplam süre: birkaç saat, bazen daha fazla.

AgentRoost'ta şu şekilde çalışır:

  1. agentroost.app/tr/agents/n8n sayfasından n8n framework'ünü seçin.
  2. Örneğinize bir ad verin — örneğin destek-triaj.
  3. Dakikalar içinde https://destek-triaj.agentroost.app adresinizde kendi n8n editörünüz açılır.
  4. Yukarıdaki akışı oluşturun. AI/LLM düğümünü credential olmadan doğrudan kullanın — AI kredisi aboneliğinize dahil, BYOK yok.
  5. IMAP credential'ınızı girin, akışı aktif edin. Bitti.

Örnek tamamen size aittir. Workflow'ları, credential'ları, execution geçmişini istediğiniz gibi yönetirsiniz. $19.99/ay'dan başlayan fiyata sunucu kurulumu, SSL, Docker ve API anahtarı derdi olmadan. 14 günlük para iade garantisiyle risksiz deneyin.

Planları karşılaştırın →


Sonraki Adımlar

Bu triyaj akışı kurulduktan sonra üstüne kolayca katman ekleyebilirsiniz:

  • Otomatik ilk yanıt: Şikayet kategorisine düşen e-postalara "Talebiniz alındı, 2 saat içinde dönüyoruz" şablonuyla otomatik cevap.
  • SLA takibi: Şikayet geldiğinde Wait düğümüyle 4 saat bekleyin; ticket kapanmamışsa yöneticiye Slack bildirimi.
  • Haftalık rapor: Schedule Trigger ile her Pazartesi kategorilere göre e-posta sayısını toplayıp bir özet atın.
  • Çoklu dil: Türkçe ve İngilizce gelen kutularını aynı akışta yönetmek için prompt'a "language": "tr" | "en" alanı da döndürün; her dil için ayrı Slack kanalına yönlendirin.

Triyaj otomasyonu burada sadece bir başlangıç noktası — akışı ihtiyacınıza göre büyütmek tamamen sizin elinizdedir.

Sıkça sorulan sorular

Bu akışı kurmak için OpenAI API anahtarı almam gerekiyor mu?

AgentRoost'ta çalışıyorsanız hayır. AI/LLM düğümü, aboneliğinize dahil kredilerle çalışır. Başka bir yerde (kendi sunucunuz, Docker) kuruyorsanız OpenAI, Anthropic veya tercih ettiğiniz sağlayıcının API anahtarını n8n'in Credentials bölümüne eklemeniz gerekir.

Gmail yerine Outlook veya başka bir posta kutusunu kullanabilir miyim?

Evet. n8n'in Microsoft Outlook ve IMAP Email Trigger düğümleri her IMAP uyumlu posta kutusuyla çalışır. Gmail için uygulama şifresi (App Password) oluşturmanız yeterlidir; kurumsal Outlook için OAuth2 credential kullanılır.

AI yanlış sınıflandırma yaparsa ne olur?

Prompt'a category alanının yanına bir confidence (0–1 arası) döndürmesini ekleyin. IF düğümüyle confidence < 0.75 koşulunu ayrı bir dala alıp 'gözden geçir' etiketiyle insan onayına yönlendirin. Yanlış etiketleri düzelttikçe prompt'u güncelleyebilirsiniz.

AgentRoost'ta n8n aboneliğimi iptal edersem verilerimi kaybeder miyim?

İptal etmeden önce n8n editöründen Ayarlar → Export ile tüm workflow'larınızı JSON olarak dışa aktarmanızı öneririz. n8n örneğiniz size ait olduğu için tüm verileri istediğiniz zaman export edebilirsiniz.

14 günlük para iade garantisi nasıl işliyor?

İlk 14 gün içinde memnun kalmazsanız destek ekibine yazın, ücretin tamamı iade edilir. Ek koşul veya kullanım sınırı yok.