E-ticarette Rakip Fiyatlarını n8n ile Otomatik Takip Edin
E-ticarette Rakip Fiyatlarını n8n ile Otomatik Takip Edin
Rakibiniz sabah 3'te fiyat kırdı. Siz bunu öğleden sonra, müşteri kaybettikten sonra fark ettiniz. Tanıdık bir senaryo.
Manuel fiyat takibi hem zaman alır hem de geciktirir. Yapmanız gereken şey basit: doğru ürün sayfasına belirli aralıklarla bakacak, fiyatı not edecek ve anlamlı bir değişiklik gördüğünde sizi uyaracak bir sistem kurmak. Bu rehber, bunu n8n ile nasıl yapacağınızı adım adım anlatıyor.
Akışın Genel Yapısı
Kuracağımız workflow şöyle çalışır:
- Schedule Trigger — belirlediğiniz aralıkta (örneğin her 4 saatte bir) tetiklenir.
- HTTP Request — rakip ürün sayfasının HTML'ini veya bir fiyat API'sini çeker.
- HTML Extract / Code — fiyatı ham veriden ayıklar.
- IF — eski fiyatla karşılaştırır; değişiklik yoksa akış durur.
- AI/LLM Node — değişikliğin anlamını yorumlar ("Rakip %12 indirim yaptı, bu sezon ortasında alışılmadık bir hamle").
- Send Email / Telegram — AI yorumlu özeti size iletir.
Adım 1 — Schedule Trigger: Zamanı Belirleyin
n8n canvas'ına bir Schedule Trigger düğümü ekleyin. "Trigger Interval" olarak Hours seçin ve değeri 4 yapın. Bu, akışın her 4 saatte bir çalışacağı anlamına gelir.
Gece yarısı da izlemek istiyorsanız Cron Expression moduna geçip şunu kullanabilirsiniz:
0 */4 * * *
Her gün sabah 8, öğlen ve akşam 8'de çalışması için:
0 8,12,20 * * *
Adım 2 — HTTP Request: Veriyi Çekin
HTTP Request düğümü ekleyin. Temel yapılandırma:
| Alan | Değer |
|---|---|
| Method | GET |
| URL | https://www.rakip-site.com/urun/ayakkabi-model-x |
| Response Format | Text (HTML almak için) |
| Headers > User-Agent | Mozilla/5.0 (compatible; PriceBot/1.0) |
Önemli: Bazı siteler bot trafiğini engeller. Eğer rakibinizin ürünleri bir pazar yerinde (Trendyol, Hepsiburada vb.) listeleniyorsa ve bu platformların resmi bir satıcı/affiliate API'si varsa, HTTP Request yerine o API'yi kullanmak hem daha güvenilir hem de hizmet şartlarına uygun olur.
Birden fazla rakip veya ürün izlemek istiyorsanız, URL'leri bir JSON dizisi olarak Static Data düğümünde tutabilir ve bu düğümün çıktısını bir Split In Batches düğümüyle HTTP Request'e besleyebilirsiniz.
Adım 3 — Fiyatı Ayıklayın (HTML Extract veya Code)
n8n'in HTML Extract düğümünü kullanın. "Extraction Values" bölümüne şunu ekleyin:
- Key:
price - CSS Selector:
span.product-price(rakip sitenin gerçek CSS seçicisini tarayıcı geliştirici araçlarıyla bulun) - Return Value:
Text
Eğer sayfa JavaScript ile render ediliyorsa (SPA) veya CSS seçici işe yaramıyorsa, Code düğümüne geçin ve basit bir regex kullanın:
const html = $input.first().json.data;
const match = html.match(/"price"\s*:\s*"?([\d.,]+)"?/);
return [{ json: { price: match ? parseFloat(match[1].replace(',', '.')) : null } }];
Adım 4 — Eski Fiyatla Karşılaştırın (IF + Static Data)
Önceki fiyatı saklamak için n8n'in Static Data özelliğini (workflow'a özgü basit bir anahtar-değer deposu) kullanabilirsiniz. Alternatif olarak bir Google Sheets satırına veya küçük bir PostgreSQL tablosuna yazabilirsiniz; bu, zaman içindeki geçmişi saklamak açısından daha güçlü bir yöntemdir.
IF düğümü konfigürasyonu:
{{ $json.price }} is not equal to {{ $workflow.staticData.lastPrice }}
Koşul false ise (fiyat değişmedi) akışı NoOp ile sonlandırın. Koşul true ise devam edin ve lastPrice değerini güncelleyin.
Adım 5 — AI Node ile Yorumlayın
Burası akışı sıradan bir uyarıdan gerçek bir karar destek aracına dönüştüren adım.
AI/LLM Node ekleyin (n8n'de buna "LangChain → Basic LLM Chain" veya "Chat Model" + "LLM Chain" kombinasyonu diyoruz). Prompt'u şöyle yazın:
Sen bir e-ticaret fiyatlama analistisin.
Ürün: {{ $('HTTP Request').first().json.url }}
Eski fiyat: {{ $workflow.staticData.lastPrice }} TL
Yeni fiyat: {{ $json.price }} TL
Değişim: %{{ (($json.price - $workflow.staticData.lastPrice) / $workflow.staticData.lastPrice * 100).toFixed(1) }}
Bu değişikliği 2-3 cümleyle yorumla:
- Değişiklik pazarlama/mevsim/stok ile ilgili olabilir mi?
- Kendi fiyatımı gözden geçirmem gerekiyor mu?
- Acil aksiyon gerektiriyor mu?
Türkçe, net ve kısa yaz.
Adım 6 — Uyarıyı Gönderin
Send Email veya Telegram düğümü ekleyin. E-posta gövdesi örneği:
Rakip Fiyat Uyarısı — {{ new Date().toLocaleString('tr-TR') }}
Ürün: {{ $('HTTP Request').first().json.url }}
Eski Fiyat: {{ $workflow.staticData.lastPrice }} TL
Yeni Fiyat: {{ $json.price }} TL
AI Yorumu:
{{ $('LLM Chain').first().json.text }}
Telegram kullanıyorsanız, Telegram düğümüne botunuzun token'ı ve chat_id değerinizi ekleyip aynı mesajı gönderebilirsiniz.
İpuçları ve Dikkat Edilecekler
- Birden fazla rakip: Her rakip için ayrı bir HTTP Request kolunu dallayın veya URL listesini bir döngüyle işleyin. IF ve Static Data düğümlerinde
staticData["lastPrice_rakip1"]gibi ürüne/rakibe özel anahtarlar kullanın. - Yanlış pozitifler: Küçük dalgalanmaları (1-2 TL) görmezden gelmek için IF koşuluna mutlak değer eşiği ekleyin:
Math.abs($json.price - lastPrice) > 5. - Hata yönetimi: HTTP Request başarısız olursa (site erişilemez, 403 vb.) n8n bunu bir hata olarak işaretler. "Error Trigger" düğümüyle bu hataları ayrı bir kanala yönlendirin; aksi hâlde yanlışlıkla "fiyat değişmedi" sonucu üretebilirsiniz.
- Geçmişi tutun: Statik veri basittir ama geçmiş fiyatları görmez. Bir Google Sheets satırına veya basit bir tabloya yazmak, sonradan grafik çizmenize olanak tanır.
Bu Akışı AgentRoost'ta Çalıştırın
Yukarıdaki akışı kendi bilgisayarınızda denemek kolaydır; ama 7/24 çalışması için bir sunucuya ihtiyacınız var. İşte burada DevOps başlar: Docker kurulumu, SSL sertifikası, n8n process'ini canlı tutmak, güncellemeleri yönetmek…
AgentRoost'ta bu adımların hiçbiri yok.
Nasıl yaparsınız:
- AgentRoost'a kaydolun — e-posta/şifre veya Google/Microsoft/Discord ile.
- "Yeni Ajan" ekranında n8n framework'ünü seçin ve instance'ınıza bir isim verin.
- Birkaç saniye içinde kendi n8n editörünüz
https://<sizin-id>.agentroost.appadresinde açılır — tamamen size ait. - Yukarıdaki workflow'u oluşturun. AI/LLM Node'un API anahtarı alanını boş bırakın — AI kredileri aboneliğinize dahil, ek bir şey ödemenize gerek yok.
- Schedule Trigger'ı etkinleştirin; akış artık 24/7 arka planda çalışır.
Neden AgentRoost?
- AI/LLM kredileri dahil — BYOK (kendi API anahtarını getir) yok. n8n Cloud, Elestio, Sliplane veya başka bir self-host çözümünde AI node'larını kullanmak için ayrıca OpenAI/Anthropic hesabı açmanız gerekir. AgentRoost'ta bu maliyet zaten bundled.
- $19.99/mo'dan başlayan fiyat — yaklaşık bir sunucu + AI kredisi + kurulum maliyeti tek kalemde.
- 14 günlük para iade garantisi, aylık iptal.
- 350+ LLM modeli — istediğinizi seçin, istediğiniz zaman değiştirin.
Planları karşılaştırın ve başlayın →
Sonuç
Rakip fiyat takibi, n8n ile gerçekten 6 düğümlük bir akış meselesi: zamanlayıcı, veri çekme, ayıklama, karşılaştırma, AI yorumu, uyarı. Zor olan kısım bunu 7/24 ayakta tutmak — AgentRoost bu yükü kaldırıyor.
Akışı bir kez kurduğunuzda, fiyat değişikliklerini manuel takip etmeye harcadığınız zamanı fiyatlama stratejisi geliştirmeye yönlendirebilirsiniz.
Sıkça sorulan sorular
n8n ile rakip fiyat takibi yasal mı?
Web scraping'in yasallığı ülkeye, hedef siteye ve nasıl yapıldığına göre değişir. Kendi kullanımınız için herkese açık fiyat bilgisini düşük frekanslı isteklerle çekmek genellikle sorun yaratmaz; ancak hedef sitenin hizmet şartlarını mutlaka okuyun. Mümkünse rakibin lisanslı bir API'sini (örneğin pazar yeri satıcı API'leri) tercih edin — hem daha güvenilir hem de daha güvenlidir.
Fiyat verisi JavaScript ile render ediliyorsa ne yapabilirim?
Çoğu n8n kurulumunda Puppeteer/Chromium çalıştırmak karmaşıktır. Alternatif olarak: (1) tarayıcı network sekmesinde arka planda çağrılan JSON API endpoint'ini bulup doğrudan onu isteyin — çoğu modern e-ticaret sitesi bunu kullanır. (2) Sitenin açık bir satıcı/affiliate API'si varsa onu kullanın. (3) ScraperAPI veya benzeri bir servis üzerinden HTTP Request yapın.
AgentRoost'ta hangi AI modelleri kullanılabilir?
AgentRoost 350'den fazla LLM modeli sunar. İstediğiniz modeli seçebilir ve istediğiniz zaman değiştirebilirsiniz. n8n workflow'unuzda AI/LLM düğümünü yapılandırırken ek bir API anahtarı girmeniz gerekmez; krediler aboneliğinize dahildir.
Birden fazla ürün veya rakip izlemek istersem workflow nasıl değişir?
URL'leri ve ürün bilgilerini bir JSON dizisi olarak Static Data veya Google Sheets'te saklayın. HTTP Request öncesine bir 'Split In Batches' düğümü ekleyerek her URL'yi sırayla işleyin. IF ve Static Data düğümlerinde ürün/rakibe özel anahtarlar kullanın (örneğin lastPrice_urun1_rakip2). Bu yapı onlarca ürün ve rakibi aynı akışta yönetmenizi sağlar.
AgentRoost'u iptal edersem n8n workflow'larıma ne olur?
n8n, workflow'larınızı JSON formatında dışa aktarmanıza olanak tanır. İptal etmeden önce tüm workflow'larınızı n8n arayüzünden 'Export' ile indirin; başka bir n8n instance'ına kolayca import edebilirsiniz. Verileriniz size aittir.