n8n ile Telegram Müşteri Destek Botu: AI'lı Otomatik Yanıt
Küçük bir işletme yönetiyorsanız, Telegram'dan gelen müşteri sorularını tek tek yanıtlamak yorucu — özellikle mesai saatleri dışında. Ama destek ekibi kiralamak da israf; soruların büyük çoğunluğu aynı beş sorunun tekrarı: "Kargo ne zaman gelir?", "İade politikanız nedir?", "Ürün stokta var mı?"
Bu yazıda, n8n ile sıfırdan bir Telegram destek botu kuruyoruz. Bot şunları yapacak:
- Gelen mesajı Telegram webhook'u ile yakalayacak
- AI düğümü aracılığıyla SSS bilgi tabanınıza bakıp yanıt üretecek
- Yanıt yetersizse veya belirli anahtar sözcükler içeriyorsa (örn. "şikâyet", "avukat") otomatik olarak insan temsilcisine devredecek
Kodlama yok, sunucu yok. Başlayalım.
Genel Akış (İş Akışının Anatomisi)
Telegram Mesajı
↓
[Webhook Trigger]
↓
[Set – mesajı hazırla]
↓
[AI Agent / LLM Düğümü – SSS'e göre yanıt üret]
↓
[IF – insan devri gerekli mi?]
↙ ↘
[Telegram] [Telegram – temsilciye bildir]
(Otomatik) (Aktarım mesajı)
Toplam 5–6 düğüm. Her birini tek tek inceleyelim.
1. Telegram Bot Oluşturma
BotFather'ı açın (@BotFather), /newbot komutuyla bir bot oluşturun ve token'ı kopyalayın. Bunu n8n'deki Telegram credential'ına yapıştıracaksınız.
Bir de grup veya kanal açın; müşteriler buraya mesaj atar. Botu bu gruba admin olarak ekleyin.
2. Webhook Trigger Düğümü
n8n'de yeni bir iş akışı açın. İlk düğüm: Telegram Trigger.
{
"updates": ["message"]
}
Bu düğüm, bota gelen her mesajda iş akışını tetikler. n8n otomatik olarak bir webhook URL'si üretir; bunu BotFather üzerinden botunuza kaydetmenize gerek yok — n8n bunu setWebhook API çağrısıyla sizin adınıza yapar.
Test için düğüme sağ tıklayıp "Test step" deyin, sonra Telegram'dan bota bir mesaj gönderin. Tetikleyicinin yakaladığı JSON'ı göreceksiniz:
{
"message": {
"chat": { "id": 123456789 },
"from": { "first_name": "Ayşe" },
"text": "Siparişim ne zaman gelecek?"
}
}
chat.id ve message.text — bunlar ilerleyen düğümlerde lazım.
3. Set Düğümü — Mesajı Hazırlama
Set düğümü ekleyin. Burada üç alanı sabitliyoruz:
| Alan | Değer (Expression) |
|---|---|
chatId |
{{ $json.message.chat.id }} |
userMessage |
{{ $json.message.text }} |
userName |
{{ $json.message.from.first_name }} |
Sonraki düğümlerde $json.chatId gibi temiz referanslar kullanmak için bu adım şart; Telegram'ın iç içe JSON'ını her yerde manuel parse etmek hem hataya açık hem okunaksız.
4. AI Agent / LLM Düğümü — Asıl Sihir
AI Agent düğümü ekleyin (n8n 1.x'te "Agent" olarak listelenir; içinde model seçimi ve system prompt alanı vardır).
System Prompt
Sen AgentRoost Mağazası'nın nazik, Türkçe yanıt veren müşteri destek asistanısın.
Aşağıdaki SSS bilgi tabanına göre yanıt ver. Bilgi tabanında yoksa "Sizi temsilcimize yönlendiriyorum" de.
Yanıtlar kısa, net ve arkadaşça olsun.
--- SSS ---
S: Kargo ne zaman gelir?
C: Sipariş sonrası 2–4 iş günü içinde kargoya verilir. Takip numaranız SMS ile iletilir.
S: İade koşulları nedir?
C: Teslim tarihinden itibaren 14 gün içinde, kullanılmamış ürünlerde ücretsiz iade yapabilirsiniz.
S: Hangi ödeme yöntemlerini kabul ediyorsunuz?
C: Kredi kartı, banka kartı ve havale/EFT ile ödeme yapabilirsiniz.
S: Stok bilgisi nasıl öğrenilir?
C: Web sitemizde ürün sayfasındaki "Stok Durumu" etiketi anlık güncellenmektedir.
--- SSS SONU ---
User Message (Expression)
{{ $json.userMessage }}
Model Seçimi
AgentRoost'ta bu düğüm zaten 350'den fazla modele bağlıdır; API anahtarı gerektirmez. GPT-4o mini veya Gemini 1.5 Flash gibi hızlı, verimli bir model seçin — destek botu için yeterince güçlüdür.
5. IF Düğümü — İnsan Devir Koşulu
AI bazen yanlış anlar ya da müşterinin tonu gergindir. İki koşul varsa devredin:
Koşul 1 — AI yanıtı devir belirtti mi?
{{ $json.output }} içerir "temsilcimize yönlendiriyorum"
Koşul 2 — Mesaj hassas anahtar kelime içeriyor mu?
{{ $json.userMessage.toLowerCase() }} içerir ["şikâyet", "avukat", "mahkeme", "sahte"]
IF düğümünün True çıktısı → insan bildirimi, False çıktısı → otomatik yanıt.
İpucu: Koşullarda
$json.userMessage.toLowerCase()kullanmak büyük/küçük harf tutarsızlıklarını önler.
6. Telegram Düğümleri — Yanıt Gönderme
Otomatik Yanıt (False kolu)
Bir Telegram düğümü ekleyin:
- Operation: Send Message
- Chat ID:
{{ $('Set').item.json.chatId }} - Text:
{{ $json.output }}
İnsan Devir Bildirimi (True kolu)
Aynı düğümün bir kopyasını True koluna bağlayın, ama bu sefer iki mesaj gönderin:
- Müşteriye: "Sizi hemen bir temsilcimize bağlıyorum, birkaç dakika içinde dönüş yapacak."
- Temsilci grubuna (farklı bir chat ID):
"⚡ Devir: {{ $('Set').item.json.userName }} → {{ $('Set').item.json.userMessage }}"
Temsilci grubunun chat ID'sini bulmak için gruba @RawDataBot ekleyip bir mesaj gönderin; bot ID'yi otomatik döker.
7. Bilgi Tabanını Büyütme
System prompt'a SSS yazmak hızlıdır ama büyüdükçe zorlaşır. Daha ölçeklenebilir yaklaşım:
- Google Sheets / Airtable: n8n'in yerleşik entegrasyonlarıyla SSS tablosunu dışarıda tutun. İş akışının başına bir Google Sheets → Get Rows düğümü ekleyin; SSS metnini dinamik olarak oluşturun.
- HTTP Request → kendi API'niz: Ürün stok durumu gibi gerçek zamanlı bilgiler için bir HTTP Request düğümü ekleyip sonucu system prompt'a dahil edin.
[Webhook] → [HTTP Request – stok API] → [Set – SSS + stok birleştir] → [AI Agent] → ...
AgentRoost'ta Çalıştırma
Tüm bu iş akışını çalışır hale getirmek için bir n8n örneğine ihtiyacınız var. Kendi sunucunuza kurmayı deneyen herkes SSL sertifikası, webhook erişilebilirliği, sürekli çalışma ve yedekleme sorunlarıyla karşılaşır.
AgentRoost'ta şu şekilde çalışır:
- agentroost.app'ye gidin ve hesap açın.
- n8n çerçevesini seçin, örneğinize bir isim verin.
- Yaklaşık 2 dakika içinde
https://<sizin-id>.agentroost.appadresinde kendi özel n8n editörünüz açılır — bu örnek tamamen size aittir. - Yukarıdaki iş akışını kurun; AI düğümü zaten hazır, API anahtarı girmenize gerek yok.
- Telegram Trigger webhook'unu etkinleştirin; n8n, genel HTTPS URL'sini otomatik olarak Telegram'a kaydeder.
AI kredisi dahil: Diğer çözümlerde (n8n Cloud, Elestio, Sliplane) AI düğümünü kullanmak için OpenAI, Anthropic veya başka bir sağlayıcıdan ayrıca API anahtarı almanız gerekir — bu ek maliyet ve ek hesap demek. AgentRoost'ta AI düğümlerini çalıştıracak krediler aboneliğe dahildir. Aylık $19.99 all-in; ilk 14 gün içinde iptal ederseniz tam iade.
Yaygın Hatalar ve Çözümleri
| Sorun | Neden | Çözüm |
|---|---|---|
| Webhook tetiklenmiyor | Bot gruba admin olarak eklenmemiş | Botu gruptan çıkarıp tekrar admin olarak ekleyin |
| AI yavaş yanıtlıyor | Büyük model seçilmiş | GPT-4o mini veya Gemini Flash'a geçin |
| Aynı mesaj iki kez işleniyor | update_id takip edilmiyor |
Telegram Trigger'ın "Only New" ayarını kontrol edin |
| Devir mesajı gitmiyor | Temsilci chat ID yanlış | @RawDataBot ile ID'yi doğrulayın |
Sonuç
Bu iş akışı 5–6 düğümle müşteri desteğinizin büyük bölümünü otomatize eder. SSS'leri system prompt'ta veya Google Sheets'te tutabilir, insan devir kurallarını dilediğiniz gibi genişletebilirsiniz. Daha ileri gitmek için HTTP Request düğümüyle sipariş takip API'nizi bağlayabilir ya da gece belirli saatlerde özet raporu gönderebilirsiniz.
Başlamak için: n8n örneğinizi oluşturun →
Sıkça sorulan sorular
Bu iş akışı için OpenAI API anahtarı almam gerekiyor mu?
AgentRoost'ta hayır. n8n örneğiniz AgentRoost altyapısına bağlı olduğu için AI düğümleri dahili kredilerle çalışır; ayrıca OpenAI, Anthropic veya başka bir sağlayıcıdan hesap açmanıza gerek yoktur. Kendi sunucunuza kurduğunuz n8n'de ise API anahtarı zorunludur.
Müşteriler bota hangi dilde yazarsa yazsın, Türkçe mi yanıt alır?
System prompt'ta 'Türkçe yanıt ver' talimatı verdiğinizde modern LLM'ler bunu büyük ölçüde uygular. İngilizce gelen soruları da anlayıp Türkçe yanıtlayabilir. Dil ayarını sıkılaştırmak istiyorsanız 'Kullanıcı hangi dilde yazarsa o dilde yaz' gibi bir talimat da ekleyebilirsiniz.
AI kredim tükenirse bot çalışmaya devam eder mi?
Aylık AI kredi kotanız dolduğunda AI düğümü yanıt üretemez. Bu durumu yönetmek için IF düğümüne bir hata kolu ekleyebilir ve müşteriye 'Şu an hizmet veremiyoruz, lütfen daha sonra tekrar deneyin' mesajı gönderebilirsiniz. Daha fazla krediye ihtiyaç duyarsanız hesabınızdan daha yüksek bir plana geçebilirsiniz.
İş akışlarımı dışa aktarabilir miyim?
Evet. n8n'de her iş akışını JSON olarak export edebilirsiniz (Settings → Export). Bu dosyayı başka bir n8n örneğine import edebilir ya da yedek olarak saklayabilirsiniz. Verileriniz tamamen sizindir.
AgentRoost'u iptal edersem ne olur?
İstediğiniz zaman iptal edebilirsiniz. İptal öncesinde iş akışlarınızı JSON olarak export etmenizi öneririz. İlk 14 gün içinde iptal ederseniz tam iade alırsınız.