Publication automatique RSS vers LinkedIn
Ceci est unSocial Media, Multimodal AIworkflow d'automatisation du domainecontenant 19 nœuds.Utilise principalement des nœuds comme If, Code, LinkedIn, Aggregate, HttpRequest. Utiliser RSS + Gemini AI + Templated.io pour planifier et publier automatiquement sur la page entreprise LinkedIn
- •Informations d'identification LinkedIn API
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
- •Clé API Google Gemini
Nœuds utilisés (19)
Catégorie
{
"meta": {
"templateCredsSetupCompleted": false
},
"name": "RSS to LinkedIn Auto-Poster",
"nodes": [
{
"name": "Note adhésive",
"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": "Note-adh-sive-0"
},
{
"name": "Note adhésive 1",
"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": "Note-adh-sive-1-1"
},
{
"name": "Note adhésive 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1264,
16
],
"parameters": {
"color": 7,
"width": 464,
"height": 80,
"content": "## Creator & Optimizer\nCreates Content & Optimizes"
},
"typeVersion": 1,
"id": "Note-adh-sive-2-2"
},
{
"name": "Note adhésive 3",
"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": "Note-adh-sive-3-3"
},
{
"name": "Déclencheur programmé",
"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": "D-clencheur-programm--4"
},
{
"name": "Lecture RSS",
"type": "n8n-nodes-base.rssFeedRead",
"position": [
224,
300
],
"parameters": {
"url": "https://blog.hubspot.com/marketing/rss.xml",
"options": {}
},
"retryOnFail": true,
"typeVersion": 1.2,
"id": "Lecture-RSS-5"
},
{
"name": "Agrégation",
"type": "n8n-nodes-base.aggregate",
"position": [
448,
300
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "title"
},
{
"fieldToAggregate": "content"
},
{
"fieldToAggregate": "link"
}
]
}
},
"typeVersion": 1,
"id": "Agr-gation-6"
},
{
"name": "Regrouper les actualités en 1 élément",
"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": "Regrouper-les-actualit-s-en-1-l-ment-7"
},
{
"name": "Sélecteur du meilleur article",
"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": "S-lecteur-du-meilleur-article-8"
},
{
"name": "Google Gemini Modèle de chat",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
968,
524
],
"parameters": {
"options": {},
"modelName": "models/gemini-1.5-flash"
},
"typeVersion": 1,
"id": "Google-Gemini-Mod-le-de-chat-9"
},
{
"name": "Google Gemini Modèle de chat 1",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
1320,
400
],
"parameters": {
"options": {}
},
"typeVersion": 1,
"id": "Google-Gemini-Mod-le-de-chat-1-10"
},
{
"name": "Créateur de contenu",
"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": "Cr-ateur-de-contenu-11"
},
{
"name": "Optimiseur de publication",
"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": "Optimiseur-de-publication-12"
},
{
"name": "Google Gemini Modèle de chat 2",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
1608,
400
],
"parameters": {
"options": {},
"modelName": "models/gemini-1.5-pro"
},
"typeVersion": 1,
"id": "Google-Gemini-Mod-le-de-chat-2-13"
},
{
"name": "Analyseur de sortie structurée",
"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": "Analyseur-de-sortie-structur-e-14"
},
{
"name": "Condition Si",
"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": "Condition-Si-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": "Créer une publication",
"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": "Cr-er-une-publication-17"
},
{
"name": "Requête HTTP",
"type": "n8n-nodes-base.httpRequest",
"position": [
2400,
300
],
"parameters": {
"url": "={{ $json.render_url }}",
"options": {
"response": {
"response": {
"responseFormat": "file"
}
}
}
},
"typeVersion": 4.2,
"id": "Requ-te-HTTP-18"
}
],
"pinData": {},
"connections": {
"Condition-Si-15": {
"main": [
[
{
"node": "Templated-16",
"type": "main",
"index": 0
}
],
[
{
"node": "S-lecteur-du-meilleur-article-8",
"type": "main",
"index": 0
}
]
]
},
"Lecture-RSS-5": {
"main": [
[
{
"node": "Agr-gation-6",
"type": "main",
"index": 0
}
]
]
},
"Agr-gation-6": {
"main": [
[
{
"node": "Regrouper-les-actualit-s-en-1-l-ment-7",
"type": "main",
"index": 0
}
]
]
},
"Templated-16": {
"main": [
[
{
"node": "Requ-te-HTTP-18",
"type": "main",
"index": 0
}
]
]
},
"Requ-te-HTTP-18": {
"main": [
[
{
"node": "Cr-er-une-publication-17",
"type": "main",
"index": 0
}
]
]
},
"Optimiseur-de-publication-12": {
"main": [
[
{
"node": "Condition-Si-15",
"type": "main",
"index": 0
}
]
]
},
"Cr-ateur-de-contenu-11": {
"main": [
[
{
"node": "Optimiseur-de-publication-12",
"type": "main",
"index": 0
}
]
]
},
"D-clencheur-programm--4": {
"main": [
[
{
"node": "Lecture-RSS-5",
"type": "main",
"index": 0
}
]
]
},
"S-lecteur-du-meilleur-article-8": {
"main": [
[
{
"node": "Cr-ateur-de-contenu-11",
"type": "main",
"index": 0
}
]
]
},
"Google-Gemini-Mod-le-de-chat-9": {
"ai_languageModel": [
[
{
"node": "S-lecteur-du-meilleur-article-8",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Analyseur-de-sortie-structur-e-14": {
"ai_outputParser": [
[
{
"node": "Optimiseur-de-publication-12",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Google-Gemini-Mod-le-de-chat-1-10": {
"ai_languageModel": [
[
{
"node": "Cr-ateur-de-contenu-11",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Google-Gemini-Mod-le-de-chat-2-13": {
"ai_languageModel": [
[
{
"node": "Optimiseur-de-publication-12",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Regrouper-les-actualit-s-en-1-l-ment-7": {
"main": [
[
{
"node": "S-lecteur-du-meilleur-article-8",
"type": "main",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Avancé - Réseaux sociaux, IA Multimodale
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
Shrishti S Nagar
@shrishtisnagarPartager ce workflow