n8n ve Herhangi Bir LLM API ile Blog RSS Akışınızı Bir Haftalık Sosyal Medya Paylaşımına Dönüştürün
Kaynak: dev.to

İçindekiler 4 başlık
Düzenli içerik paylaşımı bir yazma problemi değil, dağıtım problemidir. Blog yazınızı yazarak zaten işin düşünme kısmını tamamladınız. Bu iş akışı, her yeni yazıyı otomatik olarak platforma uygun taslaklara dönüştürür ve herhangi bir içerik yayınlanmadan önce bir insanın onayından geçmesini sağlar.
İş Akışı (The Workflow)#
Zamanlayıcı (Günlük) → Blog RSS'ini Oku → En Yeni Yazıyı Al → LLM Taslağı Oluştur → Ayrıştır (Parse) → Google E-Tablolar'a Kaydet.
Adım Adım Kurulum (Building It)#
- RSS Read Düğümü: Kendi RSS akış URL'nizi bağlayın. n8n'in RSS düğümü her öğe için
title,linkvecontentSnippetçıktılarını üretir. - En Yeniyi Almak: Bir Code düğümü ekleyin ve sadece ilk öğeyi seçmek için
return items.slice(0, 1);kodunu kullanın. - LLM Çağrısı: HTTP Request düğümü ile sağlayıcınızın
chat completionsuç noktasına POST isteği gönderin. Sağlayıcılar (OpenAI, DeepSeek, Groq) arasında kolayca geçiş yapabilmek için OpenAI uyumlu bir şema kullanmak en iyi mühendislik pratiğidir:
{
"model": "gpt-4o-mini",
"response_format": { "type": "json_object" },
"messages": [
{
"role": "system",
"content": "You repurpose blog posts into social drafts. Return ONLY valid JSON with keys: x_post, linkedin_post, facebook_post. x_post: max 240 chars, hook first. linkedin_post: 80-150 words, hook on first line. facebook_post: 40-80 words, conversational."
},
{
"role": "user",
"content": "Title: ... Link: ... first 2000 chars of post"
}
]
}
API anahtarını Authorization: Bearer başlığı (header) olarak gönderin. Güvenlik açısından anahtarı kodun içine gömmek (hardcoded) yerine CONFIG düğümünde saklayın. Ayrıca, Structured Output ve JSON Modu ("type": "json_object") kullanmak, LLM çıktısının sonraki adımlarda hatasız işlenmesini garanti altına alır.
- Ayrıştırma (Parse): Bir Code düğümü içinde
JSON.parse(items[0].json.choices[0].message.content)ile yanıtı ayrıştırın. Ardındandate,source_title,source_url, oluşturulan üç taslak vestatus: 'draft'alanlarını içeren temiz bir veri objesi oluşturun. - Kaydetme: Eşleşen sütunlara sahip bir Google E-Tablolar (Google Sheets) sekmesine veriyi ekleyin. Kahvenizi içerken taslakları gözden geçirin, kopyalayın ve paylaşın.
Neden Otomatik Paylaşım Değil de Taslaklar?#
Yapay zeka taslakları %80 oranında hazırdır ancak %20 oranında marka dilinizden uzak olabilir. E-tablo burada bir inceleme kuyruğu (Human-in-the-loop) görevi görür. Bu yaklaşım, kendi sesinizi korumanızı sağlar ve bir botun gece saat 3'te anlamsız bir şey paylaşması gibi klasik otomasyon kazalarını önler. Günlük gereken insan müdahalesi sadece 10 dakikadır.
Maliyet ve Mimari İyileştirme Çıkarımları#
Küçük bir model (ör. gpt-4o-mini) üzerinden günde bir yazı işlemek yalnızca birkaç sent tutar. Bütçeyi daha da optimize etmek isterseniz, aynı istek şemasını koruyarak HTTP düğümünü yaklaşık onda biri fiyatına çalışan DeepSeek API'sine yönlendirebilirsiniz.
Geliştiriciler İçin Pratik Mimari Notu: Zamanlayıcıyı items.slice(0, 1) ile birlikte çalıştırmak üretim ortamında dikkat edilmesi gereken bir boşluk bırakır: Hangi yazının daha önce taslağa dönüştürüldüğü kaydedilmez. Yeni yazı olmayan günlerde aynı içerik tekrar işlenebilir veya aynı gün iki yazı girilirse ikincisi atlanabilir. Bunu çözmek için zamanlama yerine durum yönetimi (stateful yaklaşım) kullanılmalıdır:
- LLM çağrısından önce E-Tablolar'daki
source_urlsütunu okunarak daha önce işlenmiş bağlantılar filtrelenmelidir. - Alternatif olarak, gördüğü öğeleri kendi içinde takip eden n8n RSS Feed Trigger düğümü kullanılabilir ve öğeler doğrudan
isoDateveyapubDatealanına göre sıralanarak sıra varsayımı ortadan kaldırılabilir.
Bu konuyu derinlemesine öğrenmek isterseniz: Structured Output ve JSON Modu modülüne göz atın.
Kaynak ve atıf
Bu yazı, dev.to üzerinde yayımlanan içerikten yararlanılarak Edumints tarafından yapay zekâ desteğiyle Türkçe hazırlandı. Ayrıntılar ve yazarların kendi anlatımı için orijinaline bakabilirsin:
- dev.to/txlabs/turn-your-blog-rss-into-a-week-of-social-posts-with-n8n-and-any-llm-api-3ibj