---
title: "Müşteri Yorumlarını AI ile Otomatik Sınıflandırma (n8n Tarifi)"
description: "n8n'de LLM nodunu kullanarak müşteri yorumlarını duygu, kategori ve aciliyet olarak otomatik etiketleyin. JSON şeması, model seçimi ve AgentRoost kurulum adımları dahil."
canonical: https://agentroost.app/tr/blog/musteri-yorumlarini-ai-ile-siniflandirma-n8n
date: 2026-04-12T20:00:00Z
---

[Canonical URL](https://agentroost.app/tr/blog/musteri-yorumlarini-ai-ile-siniflandirma-n8n)

Günde onlarca, belki yüzlerce yorum geliyor: destek formu, uygulama mağazası incelemesi, anket yanıtı, e-posta. Bunları okuyup "bu şikayet mi, öneri mi, acil mi?" diye manuel seçmek hem zaman alıyor hem de gözden kaçma riski yaratıyor. Bir n8n akışıyla her mesajı saniyeler içinde **duygu + kategori + aciliyet** etiketiyle çıkartabilirsiniz. Bu yazıda bu akışı sıfırdan kuruyoruz.

---

## Ne İnşa Ediyoruz?

Akış üç şeyi yapıyor:

1. **Tetikleyici:** Yeni bir yorum/mesaj geldiğinde devreye girer (webhook, Google Sheets satırı veya zamanlı toplu çekim).
2. **LLM Düğümü:** Metni bir AI modeline gönderir; yapılandırılmış JSON çıktısı alır.
3. **Yönlendirme:** Çıktıya göre Slack'e bildirim atar, e-tabloya yazar veya CRM'yi günceller.

Sonuç: manuel triyaj sıfır, her şey etiketli ve aranabilir.

---

## Adım 1 — Tetikleyiciyi Seçin

Kaynağınıza göre üç seçenek var:

### A) Webhook (gerçek zamanlı)

**Webhook** düğümü ekleyin. n8n size `https://<id>.agentroost.app/webhook/xxx` gibi kamuya açık bir HTTPS adresi verir. Formunuzun ya da uygulamanızın bu adrese `POST` atmasını sağlayın:

```json
{
  "source": "app_store",
  "text": "Uygulama sürekli çöküyor, inanılmaz sinir bozucu.",
  "customer_id": "u-4821"
}
```

### B) Google Sheets'ten Toplu Çekim

**Schedule Trigger** düğümü (örn. `Her gün 08:00`) + ardından **Google Sheets → Get Rows** düğümü. `processed` sütunu boş olan satırları filtreleyin.

### C) E-posta Gelen Kutusu

**Email Trigger (IMAP)** düğümüyle destek posta kutusunu dinleyin. `Subject` + `Text` alanlarını bir araya getirip LLM'e gönderin.

---

## Adım 2 — AI/LLM Düğümünü Yapılandırın

n8n'de **AI Agent** veya doğrudan **LLM** düğümü ekleyin. AgentRoost'ta bu düğümlerin model seçeneği zaten dolu gelir; API anahtarı girmeniz gerekmez — dahili krediler devrede.

### Model Seçimi

Sınıflandırma görevi için büyük modeller genellikle gereksiz. Düşük maliyetli seçenekler yeterince güvenilir:

| Model | Güçlü Yanı |
|---|---|
| `mistral-small-latest` | Hızlı, ucuz, Türkçe yeterli |
| `gemini-flash-1.5` | Çok yüksek token limiti, detaylı metinler için |
| `gpt-4o-mini` | Güçlü talimat takibi, uygun fiyat |

350'den fazla model arasından seçim yapabilir, planınızı değiştirmeden istediğiniz zaman model geçişi yapabilirsiniz.

### Sistem Mesajı (Prompt)

```
Sen bir müşteri geri bildirimi sınıflandırma asistanısın.
Verilen metni analiz edip YALNIZCA aşağıdaki JSON yapısında yanıt ver.
Açıklama, yorum veya markdown ekleme.

Çıktı şeması:
{
  "sentiment": "positive" | "neutral" | "negative",
  "category": "bug" | "feature_request" | "billing" | "praise" | "other",
  "urgency": "low" | "medium" | "high",
  "summary": "<max 20 kelime>"
}
```

### Kullanıcı Mesajı (Dinamik)

n8n'de **Expression** kullanarak tetikleyiciden gelen metni bağlayın:

```
{{ $json.text }}
```

---

## Adım 3 — JSON Çıktısını Güvenilir Kılın

LLM'ler zaman zaman JSON dışında metin ekleyebilir. Bunu önlemek için iki yöntem:

**Yöntem 1 — Output Parser (n8n yerleşik)**  
LLM düğümünüzün çıktısına **Structured Output Parser** ekleyin. JSON Schema tanımlayın:

```json
{
  "type": "object",
  "properties": {
    "sentiment": { "type": "string", "enum": ["positive", "neutral", "negative"] },
    "category":  { "type": "string", "enum": ["bug", "feature_request", "billing", "praise", "other"] },
    "urgency":   { "type": "string", "enum": ["low", "medium", "high"] },
    "summary":   { "type": "string" }
  },
  "required": ["sentiment", "category", "urgency", "summary"]
}
```

Bu parser, model geçersiz JSON döndürürse otomatik yeniden dener.

**Yöntem 2 — Code Düğümüyle Manuel Parse**  
Daha eski n8n sürümleri veya parser desteklemeyen modeller için **Code** düğümü ekleyin:

```javascript
const raw = $input.first().json.text;
const match = raw.match(/\{[\s\S]*\}/);
if (!match) throw new Error("JSON bulunamadı: " + raw);
return [{ json: JSON.parse(match[0]) }];
```

---

## Adım 4 — IF Düğümüyle Yönlendirin

**IF** düğümü ekleyerek aciliyete göre dallandırın:

- `urgency === "high"` → **Slack** düğümü: `#support-urgent` kanalına anında bildirim
- `urgency !== "high"` → **Google Sheets** düğümü: etiketlerle birlikte satır ekle

Slack mesajı şablonu:

```
🚨 *Acil Geri Bildirim*
Kaynak: {{ $json.source }}
Duygu: {{ $json.sentiment }}
Kategori: {{ $json.category }}
Özet: {{ $json.summary }}
```

İsterseniz `urgency === "high" AND sentiment === "negative"` kombinasyonu için CRM'de otomatik destek talebi açan bir dal daha ekleyebilirsiniz.

---

## Adım 5 — Test Edin

Webhook tabanlı akışınızı test etmek için n8n editörünün sol üst köşesindeki **"Test workflow"** butonuna basın, ardından terminalde:

```bash
curl -X POST https://<id>.agentroost.app/webhook/musteri-yorum \
  -H "Content-Type: application/json" \
  -d '{"source":"web_form","text":"Ödeme sayfası hata veriyor, sipariş veremedim."}'
```

Beklenen çıktı:

```json
{
  "sentiment": "negative",
  "category": "bug",
  "urgency": "high",
  "summary": "Ödeme sayfasında hata nedeniyle sipariş tamamlanamıyor"
}
```

---

## Yaygın Tuzaklar

> **Kategori listesini küçük tutun.** 10'dan fazla kategori tanımladığınızda model kararsız kalır ve "other" oranı artar. Önce 5-6 ile başlayın, gerçek veriden genişletin.

> **Dili açıkça belirtin.** Türkçe metinler için prompt'a "Metin Türkçe olabilir, bu durumda da aynı JSON yapısını kullan" ekleyin.

> **Çok kısa metinlere dikkat.** "Kötü" gibi tek kelimelik yorumlar için model `urgency: low` atayabilir ama bağlam yoktur. Bu durumları filtrelemek için bir **IF** dalı ekleyin: `text.length < 10` → doğrudan "belirsiz" etiketiyle kaydet.

---

## AgentRoost'ta Bu Akışı Kurmak

Kendi n8n instance'ınızı birkaç dakikada başlatabilirsiniz:

1. [AgentRoost'a kaydolun](/tr/agents/n8n) (e-posta, Google, Microsoft veya Discord ile).
2. **n8n** framework'ünü seçin, instance'ınıza bir isim verin.
3. `https://<sizin-id>.agentroost.app` adresiniz açılır — bu sizin özel n8n editörünüz, kimseyle paylaşılmaz; siz yönetirsiniz.
4. Yukarıdaki akışı kurun. LLM düğümündeki model seçeneği önceden dolu gelir; AI kredileri planınıza dahil, ayrıca API anahtarı girmenize gerek yok.

Aylık **$19,99**'dan başlayan fiyatlarla, 14 gün para iade garantisi, dilediğinizde iptal. [Planları karşılaştırın](/tr/pricing).

Akışı devre dışı bıraktığınızda instance silinmez — webhook'larınız çalışmaya devam eder; istediğinizde tekrar etkinleştirebilirsiniz.

---

## Özet

Birkaç düğümle kurduğunuz bu akış:

- Her yeni yorumu otomatik olarak **duygu, kategori ve aciliyet** etiketiyle damgalar
- Yüksek aciliyetli bildirimleri Slack'e anında iletir
- Düşük öncelikli olanları bir tabloya yazar, toplu analiz için hazır tutar
- Haftalık binlerce mesajı manuel okumadan işleyebilir

Manuel triyajın tek kırılgan noktası "gözden kaçan mesaj"dır. Bu akış o riski kaldırır.
