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şittir true.
  • 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ı.