n8n ile Terk Edilmiş Sepet E-postası: AI ile Kurtarma
Yüzlerce e-ticaret sitesinin aynı şablonu kullandığı bir dünyada "Hey [Ad], sepetini unuttun mu?" artık kimseyi geri kazandırmıyor. Ancak kişinin baktığı ürünlere, sepet tutarına ve marka tonuna göre yazılmış bir e-posta farklı hissettiriyor. Bu kılavuzda n8n akışını adım adım kuracağız — AI düğümünü, zamanlamayı ve e-posta gönderimini gerçek node yapılandırmalarıyla.
Sorunun anatomisi: neden jenerik e-postalar açılmıyor?
Klaviyo veya Mailchimp'in hazır şablonları şunu yapar: {{ first_name }} ekler, belki bir ürün görseli çeker, sabit bir indirim kodu yapıştırır. Müşteri bunu sabahtan akşama beş farklı markadan gördüğü için artık bunları görmezden geliyor.
Farklı yapabilmek için e-postanın içeriği şunları bilmek zorunda:
- Sepetteki ürün kategorisi (elektronik mi, giyim mi, kozmetik mi?)
- Kaç öğe var ve toplam tutar ne?
- Müşteri daha önce alışveriş yaptı mı?
- Terk etme saati (gece mi bıraktı, iş saatlerinde mi?)
Bu bilgilerin hepsini bir şablon motoru değil, bir LLM işleyebilir. Ve bunu n8n'in AI/LLM düğümü ile akışa entegre etmek düşündüğünüzden çok daha kolay.
Akışın genel mimarisi
Schedule Trigger (her 30 dk)
→ HTTP Request (sepet API'sinden terk edilmiş kayıtları çek)
→ IF (terk zamanı > 1 saat mi?)
→ Set (prompt değişkenlerini hazırla)
→ AI Agent / LLM düğümü (kişisel e-posta metnini üret)
→ Send Email / SMTP (e-postayı gönder)
→ HTTP Request (sepeti "e-posta gönderildi" olarak işaretle)
Akış iki zaman dalgasında çalışır: ilk e-posta terk etmeden 1 saat sonra, ikinci e-posta (farklı ton, belki indirim) 24 saat sonra. Bunu iki ayrı IF düğümüyle veya tek akışta contactedCount alanına bakarak yönetebilirsiniz.
Adım adım kurulum
1. Schedule Trigger — akışı başlat
Schedule Trigger düğümünü açın, Interval modunu seçin: 30 Minutes. Bu kadar. Akış her yarım saatte bir terk edilmiş sepetlere bakacak.
2. HTTP Request — sepet verilerini çek
Eğer WooCommerce, Shopify veya kendi API'nizi kullanıyorsanız bu düğüm oraya bağlanır.
WooCommerce örneği:
Method: GET
URL: https://sizin-siteniz.com/wp-json/wc/v3/orders
Query Parameters:
status: pending
after: {{ $now.minus(30, 'minutes').toISO() }}
per_page: 50
Authentication: Basic Auth (consumer key / secret)
Kendi veritabanınız varsa /api/abandoned-carts?since={{ ... }} gibi bir uç nokta yazabilirsiniz. n8n çıktısı bir JSON dizisi olacak; her öğe bir müşteri + sepet verisi.
3. IF — 1 saatlik pencereyi kontrol et
IF düğümü ekleyin:
Condition: {{ $json.created_at }} is older than 1 hour
Value 1: {{ new Date($json.created_at).getTime() }}
Value 2: {{ Date.now() - 3600000 }}
Operation: smaller than
Yalnızca bu koşulu geçen kayıtlar AI düğümüne ilerleyecek.
4. Set — AI'a verilecek bağlamı hazırla
Set düğümüyle sonraki düğümler için temiz değişkenler üretin:
| Değişken | Değer |
|---|---|
customerName |
{{ $json.billing.first_name }} |
cartItems |
{{ $json.line_items.map(i => i.name).join(', ') }} |
cartTotal |
{{ $json.total }} TL |
itemCount |
{{ $json.line_items.length }} |
abandonedAt |
{{ $json.created_at }} |
5. AI Agent düğümü — kişisel e-posta metni üret
n8n'in AI Agent (veya Basic LLM Chain) düğümünü ekleyin. System Prompt:
Sen {{ marka adı }}'nin müşteri ilişkileri uzmanısın.
Yazım tonu: samimi, yardımsever, baskıcı değil.
Cevabını yalnızca e-posta içeriği olarak ver.
Konu satırı ve gövde olarak iki bölüm yaz.
User Prompt:
Müşteri adı: {{ $json.customerName }}
Sepetteki ürünler: {{ $json.cartItems }}
Toplam tutar: {{ $json.cartTotal }}
Sepeti bırakma zamanı: {{ $json.abandonedAt }}
Bu müşteriye sepetteki ürünleri hatırlatan,
ürünlere özel bir veya iki cümle içeren ve
sert satış dili kullanmayan bir kurtarma e-postası yaz.
Maksimum 120 kelime.
Not: AgentRoost üzerinde çalışan kendi n8n instance'ınızda AI düğümüne bir API anahtarı eklemenize gerek yok — krediler zaten dahil. Model seçmek isterseniz düğümdeki Model alanından istediğinizi belirleyebilirsiniz.
Düğüm çıktısı {{ $json.text }} formatında konu + gövde içerecek. Bunu Split Out veya Code düğümüyle ayrıştırabilirsiniz:
const lines = $input.first().json.text.split('\n');
const subject = lines[0].replace('Konu:', '').trim();
const body = lines.slice(2).join('\n').trim();
return [{ json: { subject, body } }];
6. Send Email — e-postayı gönder
n8n'in yerleşik Send Email düğümü veya Gmail / Brevo / Postmark node'u kullanın:
To: {{ $('HTTP Request').item.json.billing.email }}
Subject: {{ $json.subject }}
Body: {{ $json.body }}
7. HTTP Request — sepeti işaretle
Aynı müşteriye tekrar e-posta gitmemesi için kaydı güncelleyin:
Method: POST
URL: https://sizin-siteniz.com/api/mark-contacted
Body:
{
"orderId": "{{ $('HTTP Request').item.json.id }}",
"contactedAt": "{{ $now.toISO() }}",
"wave": 1
}
24 saatlik ikinci dalga
İlk akışın sonuna bir Wait düğümü ekleyebilirsiniz (Resume: After time interval → 23 hours). Ya da çok daha temiz bir alternatif: ayrı bir Schedule Trigger akışı kurun, bu sefer wave: 1 ve created_at > 23 saat önce olan kayıtları çekin. İkinci e-postada tonu biraz değiştirin, küçük bir avantaj (ücretsiz kargo, küçük bir indirim) sunabilirsiniz — ama yine AI'a yazdırın, şablon değil.
Bu akışı AgentRoost'ta çalıştırmak
AgentRoost'ta kendi n8n instance'ınızı edinmek iki dakika sürüyor:
- AgentRoost'a kayıt olun — e-posta/Google/Discord ile.
- n8n framework'ünü seçin, instance'a bir isim verin.
https://<id>.agentroost.appadresinde özel n8n editörünüz açılır.- Yukarıdaki akışı kurun — AI düğümünü yapılandırdığınızda zaten çalışıyor; API anahtarı girmeniz gerekmiyor.
Bu kılavuzdaki AI düğümünü kullanmak için OpenAI veya Anthropic hesabı açmanıza, API anahtarı girmenize, kredi yüklemenize gerek yok. AI kredisi aylık aboneliğe dahil. Akışı kaydedin, aktive edin, bitti.
Veriler yalnızca sizin instance'ınızda — başka müşterilerle paylaşılan bir ortamda değil. Webhooklar https://<id>.agentroost.app/webhook/... adresinde hemen aktif, SSL dahil.
Fiyatlandırma $19.99/ay'dan başlıyor. 14 gün içinde memnun kalmazsanız iade alırsınız, yıllık taahhüt yok.
Sık yapılan hatalar
- Her terk olayında akışı tetiklemek: Büyük mağazalarda bu, çok fazla AI çağrısına yol açar. Toplu sorgulama (her 30 dakika) hem daha verimli hem daha ucuz.
- Çok uzun prompt: LLM'ye 500 kelime bağlam verip 50 kelimelik bir e-posta istemek gereksiz token harcıyor. Yalnızca ürün isimleri, tutar ve müşteri adı yeterli.
- İkinci dalgayı unutmak: Tek e-posta kampanyaları genellikle yetersiz kalır; ikinci dalga çoğu durumda anlamlı ek değer yaratır.
- "İşaretleme" adımını atlamak: Akışı test ederken sepeti işaretlemezseniz aynı müşteriye her çalışmada e-posta gider.
Sıkça sorulan sorular
n8n'deki AI düğümü için OpenAI API anahtarı girmem gerekiyor mu?
AgentRoost üzerinde çalışan kendi n8n instance'ınızda hayır. AI/LLM kredisi aylık aboneliğe dahil olduğu için AI düğümünü yapılandırdığınızda ayrıca bir API anahtarı eklemenize gerek yok. Kendi sunucunuza veya n8n Cloud'a kurulumda ise kendi API anahtarınızı getirmeniz (BYOK) gerekir.
WooCommerce dışında hangi e-ticaret platformlarıyla çalışıyor?
n8n'in HTTP Request düğümü REST API sunan her platformla çalışır: Shopify, Wix, BigCommerce, OpenCart, Magento ve özel arka uçlar. Shopify için ayrıca yerleşik bir Shopify düğümü de mevcut; kimlik doğrulama ve sipariş sorgulamaları için özel alanlar sunuyor.
AgentRoost'u iptal edersem akışlarım ve verilerim ne olur?
n8n instance'ınız size ait; akışlarınızı istediğiniz zaman n8n'in yerleşik dışa aktarma özelliğiyle (Settings → Export) JSON olarak indirebilirsiniz. İptal etmeden önce yedek almanızı öneririz. 14 gün içinde iptal ederseniz ücret iadesi alırsınız.
Aynı müşteriye kaç e-posta göndermeli?
Genellikle iki e-posta yeterli: birincisi 1 saat sonra (hatırlatma, satış baskısı yok), ikincisi 24 saat sonra (hafif bir teşvik sunabilirsiniz). Daha fazlası çoğu kitlede abonelikten çıkma oranını artırır. E-posta servis sağlayıcınızın günlük gönderim limitlerini de göz önünde bulundurun.
Bu akışı kurmak için teknik bilgi gerekiyor mu?
Temel seviyede n8n arayüzüne aşinalık yeterli. JSON yapısını okuyabilmek ve kendi API uç noktanızın döndürdüğü alanları tanımak işi büyük ölçüde kolaylaştırır. Sıfırdan başlıyorsanız AgentRoost'un rehberler sayfası n8n'e giriş için iyi bir başlangıç noktası.