RSS-zu-LinkedIn-Autoposter
Dies ist ein Social Media, Multimodal AI-Bereich Automatisierungsworkflow mit 19 Nodes. Hauptsächlich werden If, Code, LinkedIn, Aggregate, HttpRequest und andere Nodes verwendet. Automatische Curation und Publikation auf LinkedIn Unternehmensseite via RSS + Gemini AI + Templated.io
- •LinkedIn API-Anmeldedaten
- •Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
- •Google Gemini API Key
Verwendete Nodes (19)
Kategorie
{
"meta": {
"templateCredsSetupCompleted": false
},
"name": "RSS to LinkedIn Auto-Poster",
"nodes": [
{
"name": "Haftnotiz",
"type": "n8n-nodes-base.stickyNote",
"position": [
-496,
-360
],
"parameters": {
"width": 384,
"height": 704,
"content": "## 🧠 Workflow Overview \n\nThis workflow automatically curates articles from an RSS feed and turns them into short, ready-to-post LinkedIn updates using **Gemini AI**.\n\n### 🔁 What it does \n- Fetches fresh articles twice a week \n- Uses AI to pick the most relevant one for your audience \n- Summarizes it into a crisp LinkedIn-style post \n- Checks post quality → only publishes if score ≥ 7/10 \n- Creates a graphic using Templated\n- Auto-posts to your LinkedIn Page \n\n### ⚙️ What you need \n- Gemini API credentials \n- LinkedIn OAuth2 connection \n- Any RSS feed URL (replace the default)\n- Templated API\n"
},
"typeVersion": 1,
"id": "Haftnotiz-0"
},
{
"name": "Haftnotiz1",
"type": "n8n-nodes-base.stickyNote",
"position": [
208,
176
],
"parameters": {
"color": 7,
"width": 464,
"height": 80,
"content": "## Curator\nRSS Read curates articles and sends to Article Finder"
},
"typeVersion": 1,
"id": "Haftnotiz1-1"
},
{
"name": "Haftnotiz2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1264,
16
],
"parameters": {
"color": 7,
"width": 464,
"height": 80,
"content": "## Creator & Optimizer\nCreates Content & Optimizes"
},
"typeVersion": 1,
"id": "Haftnotiz2-2"
},
{
"name": "Haftnotiz3",
"type": "n8n-nodes-base.stickyNote",
"position": [
2176,
160
],
"parameters": {
"color": 7,
"width": 464,
"height": 80,
"content": "## Designer & Poster\nCreates Design & Posts on LinkedIn"
},
"typeVersion": 1,
"id": "Haftnotiz3-3"
},
{
"name": "Zeitplan-Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
0,
300
],
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 11 * * TUE"
},
{
"field": "cronExpression",
"expression": "0 11 * * THU"
}
]
}
},
"typeVersion": 1.2,
"id": "Zeitplan-Trigger-4"
},
{
"name": "RSS-Read",
"type": "n8n-nodes-base.rssFeedRead",
"position": [
224,
300
],
"parameters": {
"url": "https://blog.hubspot.com/marketing/rss.xml",
"options": {}
},
"retryOnFail": true,
"typeVersion": 1.2,
"id": "RSS-Read-5"
},
{
"name": "Aggregieren",
"type": "n8n-nodes-base.aggregate",
"position": [
448,
300
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "title"
},
{
"fieldToAggregate": "content"
},
{
"fieldToAggregate": "link"
}
]
}
},
"typeVersion": 1,
"id": "Aggregieren-6"
},
{
"name": "News zu 1 Item gruppieren",
"type": "n8n-nodes-base.code",
"position": [
672,
300
],
"parameters": {
"jsCode": "// Inputs expected from Aggregate/RSS: arrays: title[], content[], link[]\nconst all = items[0].json; // aggregated item\nconst titles = all.title || [];\nconst contents = all.content || [];\nconst links = all.link || [];\n\nconst articles = [];\nconst lines = [];\n\nconst maxLen = Math.max(titles.length, contents.length, links.length);\nfor (let i = 0; i < maxLen; i++) {\n const obj = {\n id: i + 1, // stable ID (1..N). Use guid if you have one.\n title: titles[i] ?? \"\",\n content: contents[i] ?? \"\",\n link: links[i] ?? \"\"\n };\n articles.push(obj);\n // Short preview for the AI to choose from:\n const preview = (obj.content || \"\").replace(/\\s+/g, \" \").slice(0, 220);\n lines.push(`${obj.id}. ${obj.title}\\n${preview}${preview.length === 220 ? \"…\" : \"\"}`);\n}\n\nreturn [\n {\n json: {\n articles, // keep the structured mapping\n forAI: lines.join(\"\\n\\n\") // human-readable list for the model\n }\n }\n];"
},
"typeVersion": 2,
"id": "News-zu-1-Item-gruppieren-7"
},
{
"name": "Best Article Finder",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
896,
300
],
"parameters": {
"text": "=You are (company name) content curator. Select the BEST article for our audience.\n\nCOMPANY AUDIENCE:\n\n\nSELECTION CRITERIA:\nCHECK:\n- Can someone practically apply this TODAY or is it just knowledge?\n- Will they want to save this?\n\nSKIP ARTICLES ABOUT:\n- Pure theory without practical steps\n\nPick only 1 and give only {{ $json.articles[0].link }} as output\n\n{{ $json.forAI }}\n\n",
"options": {},
"promptType": "define"
},
"typeVersion": 2.2,
"id": "Best-Article-Finder-8"
},
{
"name": "Google Gemini-Chat-Modell",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
968,
524
],
"parameters": {
"options": {},
"modelName": "models/gemini-1.5-flash"
},
"typeVersion": 1,
"id": "Google-Gemini-Chat-Modell-9"
},
{
"name": "Google Gemini-Chat-Modell1",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
1320,
400
],
"parameters": {
"options": {}
},
"typeVersion": 1,
"id": "Google-Gemini-Chat-Modell1-10"
},
{
"name": "Content Creator",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1248,
176
],
"parameters": {
"text": "=Turn blog into quick byte below 200 words. \n\nCOMPANY AUDIENCE:\n\n\nWRITING RULES:\n- Write for the audience keeping in mind that they need opinion/insights, they don't have time to spare so be very on point and crisp and profound\n- Include specific numbers/time when possible\n- Keep it to the point like in news/bulletin \n- Always use bullets/classified structure, no extra output needed\n\nHere is the blog to use: {{ $json.output }}",
"options": {},
"promptType": "define"
},
"retryOnFail": true,
"typeVersion": 2.2,
"id": "Content-Creator-11"
},
{
"name": "Post Optimizer",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1600,
176
],
"parameters": {
"text": "=Analyze this post deeply\n\nPost = {{ $json.output }}\n\nCHECK & OPTIMIZE FOR:\n- Can someone practically apply this TODAY or is it just knowledge?\n- Will THEY want to save this?\n- Does this have fluff/filler words that inflate sentences? Keep sentences small and easy to read.\n- Does it look AI Generated? Prefer human sentence construction\n- No emoji, use → or other symbols for bullets, don't use * or em dash in post, space after every bullet\n- Analyze First line: should not be in text:text format, only mention crux like \"loop marketing strategy\", or use title like \"here's why you need loop marketing\"\n\nAlso create a headline for image for this post, keep it crisp and catchy\n\nOUTPUT:\n{\n \"final_post\": \"[LinkedIn-ready post]\",\n\"image_text\": \"[Headline for image= what the post is about]\"\n \"confidence_score\": [1-10],\n \"post_now\": [true if score >= 7]\n} ",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"retryOnFail": true,
"typeVersion": 2.2,
"id": "Post-Optimizer-12"
},
{
"name": "Google Gemini-Chat-Modell2",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
1608,
400
],
"parameters": {
"options": {},
"modelName": "models/gemini-1.5-pro"
},
"typeVersion": 1,
"id": "Google-Gemini-Chat-Modell2-13"
},
{
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1736,
400
],
"parameters": {
"jsonSchemaExample": "{\n \"final_post\": \"[LinkedIn-ready post]\",\n \"image_text\": \"[Image Title Catcy]\",\n \"confidence_score\": [10],\n \"post_now\": [true]\n} "
},
"typeVersion": 1.3,
"id": "Structured-Output-Parser-14"
},
{
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
1952,
300
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.output.post_now[0] }}",
"rightValue": "true"
}
]
}
},
"typeVersion": 2.2,
"id": "If-15"
},
{
"name": "Templated",
"type": "n8n-nodes-templated.templated",
"position": [
2176,
300
],
"parameters": {
"layers": {
"layer": [
{
"text": "={{ $json.output.image_text }}",
"layerName": "paragraph-text"
}
]
},
"template": "",
"requestOptions": {}
},
"retryOnFail": true,
"typeVersion": 1,
"id": "Templated-16"
},
{
"name": "Create a Post",
"type": "n8n-nodes-base.linkedIn",
"position": [
2624,
300
],
"parameters": {
"text": "={{ $('Post optimizer').item.json.output.final_post }}",
"postAs": "organization",
"organization": "",
"additionalFields": {},
"shareMediaCategory": "IMAGE"
},
"typeVersion": 1,
"id": "Create-a-Post-17"
},
{
"name": "HTTP-Anfrage",
"type": "n8n-nodes-base.httpRequest",
"position": [
2400,
300
],
"parameters": {
"url": "={{ $json.render_url }}",
"options": {
"response": {
"response": {
"responseFormat": "file"
}
}
}
},
"typeVersion": 4.2,
"id": "HTTP-Anfrage-18"
}
],
"pinData": {},
"connections": {
"If-15": {
"main": [
[
{
"node": "Templated-16",
"type": "main",
"index": 0
}
],
[
{
"node": "Best-Article-Finder-8",
"type": "main",
"index": 0
}
]
]
},
"RSS-Read-5": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "News-zu-1-Item-gruppieren-7",
"type": "main",
"index": 0
}
]
]
},
"Templated-16": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Create-a-Post-17",
"type": "main",
"index": 0
}
]
]
},
"Post-Optimizer-12": {
"main": [
[
{
"node": "If-15",
"type": "main",
"index": 0
}
]
]
},
"Content-Creator-11": {
"main": [
[
{
"node": "Post-Optimizer-12",
"type": "main",
"index": 0
}
]
]
},
"Zeitplan-Trigger-4": {
"main": [
[
{
"node": "RSS-Read-5",
"type": "main",
"index": 0
}
]
]
},
"Best-Article-Finder-8": {
"main": [
[
{
"node": "Content-Creator-11",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "Best-Article-Finder-8",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Structured-Output-Parser-14": {
"ai_outputParser": [
[
{
"node": "Post-Optimizer-12",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Google Gemini Chat Model1": {
"ai_languageModel": [
[
{
"node": "Content-Creator-11",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Google Gemini Chat Model2": {
"ai_languageModel": [
[
{
"node": "Post-Optimizer-12",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"News-zu-1-Item-gruppieren-7": {
"main": [
[
{
"node": "Best-Article-Finder-8",
"type": "main",
"index": 0
}
]
]
}
}
}Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Experte - Soziale Medien, Multimodales KI
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
Shrishti S Nagar
@shrishtisnagarDiesen Workflow teilen