Ders 20 – E-Posta Ajanı – Bölüm-1
Bu dersin ilk videosunda, Gmail’den gelen e-postaları yakalayıp, bir AI Agent ile analiz ederek lead (öğrenci adayı) olup olmadığını sınıflandıran adımları IF Node’a kadar ele alıyoruz.
Workflow’un Amacı
- Gelen kutusuna düşen yeni e-postaları otomatik olarak yakalamak,
- Bu e-postalardan tek bir bağlam (kontekst) metni oluşturmak,
- AI Agent kullanarak e-postanın lead olup olmadığını belirlemek,
- Sonucun true/false olarak ayrıldığı IF Node’a kadar olan süreci tamamlamak.
1) Gmail Trigger (Dakikada Bir)
- Poll Interval: Dakikada bir.
- Görev: Yeni bir e-posta geldiğinde workflow’u tetiklemek.
- Neden: Gelen mailleri manuel kontrol etmek yerine otomasyon ile yakalamak.
2) Edit Fields (Set Node) – E-posta Kontexti Hazırlama
Gelen e-postanın önemli alanları tek bir metin haline getirilerek “E-posta Kontext” isimli bir alanda birleştirildi:
From: {{ $json.from.value[0].address }}
From Name: {{ $json.from.value[0].name }}
Subject: {{ $json.subject }}
BodyText: {{ $json.text }}
- Bu düzenleme, AI Agent’ın düzensiz parçalar yerine tek bir bütün üzerinden analiz yapmasını sağlar.
3) AI Agent – Lead Analizi
E-postanın bir öğrenci adayı olup olmadığını belirlemek için AI Agent Node kullanıldı. Sistem prompt’u şu şekilde ayarlandı:
Görevin: Gelen e-postanın içeriğini analiz ederek gönderen kişinin
eğitim satın alma niyeti (lead) olup olmadığını belirle. Reklam, tanıtım
veya bilgilendirme e-postası ise yanıt verilmeyecektir.
Aşağıdaki alanları içerecek bir JSON objesi ile yanıt ver:
intent: true/false
reasoning: Kısa gerekçe
isim: E-postada geçiyorsa aksi halde boş bırak
Telefon: E-postada geçiyorsa aksi halde boş bırak
{{ $json['E-Posta Kontext'] }}
Structured Output Parser kullanılarak çıktının şu şemaya uyması sağlandı:
{
"type": "object",
"properties": {
"intent": { "type": "boolean" },
"reasoning": { "type": "string" },
"isim": { "type": "string" },
"Telefon": { "type": "string" }
}
}
Neden bu adımlar? Böylece AI’nın verdiği yanıt standart bir JSON formatında gelir ve IF Node’da kolayca işlenebilir.
4) IF Node – Karar Noktası
- Koşul:
{{ $json.output.intent }}eşittirtrue. - True: Lead olduğu kabul edilerek sonraki adımlarda Airtable’a kaydedilecek ve yanıt üretilecektir.
- False: Lead değilse akış sonlanacak (örneğin reklam veya alakasız bir e-posta ise).
Ders Özeti
- Gmail Trigger ile gelen kutusu dinlendi.
- Edit Fields ile e-posta konteksti oluşturuldu.
- AI Agent ile e-posta analiz edilerek JSON formatında intent/isim/telefon bilgileri alındı.
- IF Node ile karar noktası oluşturularak lead olmayan maillerin akış dışına alınması sağlandı.
