Workflow n8n
Automatise ta veille sur les réseaux sociaux
Collecte en continu posts et mentions, filtre par mots-clés et sentiments, déduplique les doublons, et envoie des alertes actionnables avec résumés et liens sources dans Slack/Notion. Tags clés : veille, réseaux sociaux, automation.
Catégorie: reseaux_sociaux · Tags: veille, réseaux sociaux, automation❤ 0
Vue d'ensemble du workflow n8n
Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.
Inscris-toi pour voir l'intégralité du workflow
Inscription gratuite
S'inscrire gratuitementBesoin d'aide ?{
"id": "mxeL3ryFF9XHcf9U",
"meta": {
"instanceId": "30a4552c4834a9b841576ac1861741b079d7cd74a111056aa611d1f476c3519c"
},
"name": "News to Content",
"tags": [
{
"id": "LMoNhIfFqXz12oyB",
"name": "Uclic",
"createdAt": "2025-10-18T15:38:06.600Z",
"updatedAt": "2025-10-18T15:38:06.600Z"
}
],
"nodes": [
{
"id": "7862a9a6-240c-4417-8f6d-0beea474e7fc",
"name": "RSS Feed Trigger",
"type": "n8n-nodes-base.rssFeedReadTrigger",
"position": [
-1440,
432
],
"parameters": {
"feedUrl": "https://morss.it/https://techcrunch.com/feed/",
"pollTimes": {
"item": [
{
"mode": "everyHour"
}
]
}
},
"typeVersion": 1
},
{
"id": "bf162b3c-4357-4314-8e35-6359957490e7",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-1296,
624
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o",
"cachedResultName": "gpt-4o"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "jvNEVczMAIjq1qib",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "f625e164-ea5e-4ddf-b0ab-ff34b8440a9c",
"name": "Code",
"type": "n8n-nodes-base.code",
"position": [
-896,
432
],
"parameters": {
"jsCode": "// Parse AI Agent JSON response\nconst items = $input.all();\nconst parsedItems = [];\n\nfor (const item of items) {\n const rawResponse = item.json.output;\n \n try {\n // Clean up markdown code blocks, escaped characters and parse JSON\n let cleanedResponse = rawResponse\n .replace(/```json\\n?/g, '') // Remove opening markdown\n .replace(/\\n?```/g, '') // Remove closing markdown\n .replace(/\\\\n/g, '')\n .replace(/\\\\/g, '');\n \n const aiAnalysis = JSON.parse(cleanedResponse);\n \n // Handle key_topics - it might be a string or array\n let topicsString = \"\";\n if (Array.isArray(aiAnalysis.key_topics)) {\n topicsString = aiAnalysis.key_topics.join(\", \");\n } else if (typeof aiAnalysis.key_topics === 'string') {\n topicsString = aiAnalysis.key_topics;\n }\n \n // Combine with original article data if available\n const rssData = $node[\"RSS Feed Trigger\"]?.json || {};\n \n parsedItems.push({\n json: {\n // Original article data (if available)\n title: rssData.title || \"N/A\",\n link: rssData.link || \"N/A\",\n pubDate: rssData.pubDate || \"N/A\",\n content: rssData['content:encoded'] || \"N/A\",\n \n // Parsed AI analysis\n quality_score: aiAnalysis.quality_score || 5,\n relevance_score: aiAnalysis.relevance_score || 5,\n key_topics: topicsString,\n summary: aiAnalysis.summary || \"No summary provided\",\n content_angle: aiAnalysis.content_angle || \"No angle provided\",\n action: aiAnalysis.action || \"REVIEW\"\n }\n });\n \n } catch (error) {\n console.log(\"Parsing error:\", error.message);\n console.log(\"Raw response:\", rawResponse);\n \n const rssData = $node[\"RSS Feed Trigger\"]?.json || {};\n \n parsedItems.push({\n json: {\n title: rssData.title || \"Parse Error\",\n link: rssData.link || \"N/A\",\n pubDate: rssData.pubDate || \"N/A\",\n content: rssData['content:encoded'] || \"N/A\",\n quality_score: 5,\n relevance_score: 5,\n key_topics: \"Parse Error\",\n summary: \"AI response could not be parsed: \" + error.message,\n content_angle: \"Manual review needed\",\n action: \"REVIEW\"\n }\n });\n }\n}\n\nreturn parsedItems;"
},
"typeVersion": 2
},
{
"id": "f269601f-2bdf-4f71-b96a-caa1d707c197",
"name": "Simple Memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
-1136,
640
],
"parameters": {
"sessionKey": "={{ $execution.id }}",
"sessionIdType": "customKey"
},
"typeVersion": 1.3
},
{
"id": "e28230aa-6e8b-47cd-944a-4b39c697523c",
"name": "OpenAI Chat Model1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-480,
384
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "jvNEVczMAIjq1qib",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "cbd183f7-6379-4b4f-95c9-68576c064add",
"name": "Code1",
"type": "n8n-nodes-base.code",
"position": [
-160,
176
],
"parameters": {
"jsCode": "// Parse content creation AI response\nconst items = $input.all();\nconst contentItems = [];\n\nfor (const item of items) {\n try {\n const rawResponse = item.json.output;\n const cleanedResponse = rawResponse.replace(/\\\\\\\\n/g, '').replace(/\\\\\\\\/g, '');\n const contentData = JSON.parse(cleanedResponse);\n\n // Get the original article data\n const originalData = $node[\"Code\"].json; // Reference our enhanced parsing node\n\n contentItems.push({\n json: {\n // Original article info\n title: originalData.title,\n link: originalData.link,\n quality_score: originalData.quality_score,\n relevance_score: originalData.relevance_score,\n summary: originalData.summary,\n\n // Generated content\n twitter_thread: contentData.twitter_thread || [],\n linkedin_post: contentData.linkedin_post || \"Content generation failed\",\n content_ready: contentData.content_ready || false,\n\n // Metadata\n created_at: new Date().toISOString(),\n platform_ready: true\n }\n });\n\n } catch (error) {\n // Handle parsing errors\n contentItems.push({\n json: {\n title: $node[\"Code\"].json.title,\n link: $node[\"Code\"].json.link,\n twitter_thread: [\"Content generation failed\"],\n linkedin_post: \"Content generation failed: \" + error.message,\n content_ready: false,\n error: error.message\n }\n });\n }\n}\n\nreturn contentItems;\n"
},
"typeVersion": 2
},
{
"id": "8dc291d0-f8f5-4aec-a0bb-5bfbd217371e",
"name": "Store Content",
"type": "n8n-nodes-base.googleSheets",
"position": [
0,
0
],
"parameters": {
"columns": {
"value": {
"Article Link": "={{ $json.link }}",
"Date Created": "={{ $now }}",
"Article Title": "={{ $json.title }}",
"Quality Score": "={{ $json.quality_score }}",
"Twitter Content": "={{ $json.twitter_thread[0] }}{{ $json.twitter_thread[1] }}{{ $json.twitter_thread[2] }}{{ $json.twitter_thread[3] }}",
"LinkedIn Content": "={{ $json.linkedin_post }}"
},
"schema": [
{
"id": "Date Created",
"type": "string",
"display": true,
"required": false,
"displayName": "Date Created",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Article Title",
"type": "string",
"display": true,
"required": false,
"displayName": "Article Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Article Link",
"type": "string",
"display": true,
"required": false,
"displayName": "Article Link",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Quality Score",
"type": "string",
"display": true,
"required": false,
"displayName": "Quality Score",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Twitter Content",
"type": "string",
"display": true,
"required": false,
"displayName": "Twitter Content",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "LinkedIn Content",
"type": "string",
"display": true,
"required": false,
"displayName": "LinkedIn Content",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Published (Yes/No)",
"type": "string",
"display": true,
"required": false,
"displayName": "Published (Yes/No)",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Performance Notes",
"type": "string",
"display": true,
"required": false,
"displayName": "Performance Notes",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 922601424,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1f-Eott9X_hKkn9sx0lCG3iqKHb9xtMERsWq_fEBd_ns/edit#gid=922601424",
"cachedResultName": "Generated Content"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1f-Eott9X_hKkn9sx0lCG3iqKHb9xtMERsWq_fEBd_ns",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1f-Eott9X_hKkn9sx0lCG3iqKHb9xtMERsWq_fEBd_ns/edit?usp=drivesdk",
"cachedResultName": "Content Research System"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "zLpPnB2E6tcI02dz",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "0838a27f-3c0f-47ef-bbd7-a5202fe8f49f",
"name": "New for Review",
"type": "n8n-nodes-base.googleSheets",
"position": [
-288,
512
],
"parameters": {
"columns": {
"value": {
"Link": "={{ $json.link }}",
"Title": "={{ $json.title }}",
"Summury": "={{ $json.summary }}",
"Pub Date": "={{ $json.pubDate }}",
"Content Angle": "={{ $json.content_angle }}",
"Quality Score": "={{ $json.quality_score }}",
"Relevance Score": "={{ $json.relevance_score }}"
},
"schema": [
{
"id": "Title",
"type": "string",
"display": true,
"required": false,
"displayName": "Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Link",
"type": "string",
"display": true,
"required": false,
"displayName": "Link",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Pub Date",
"type": "string",
"display": true,
"required": false,
"displayName": "Pub Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Quality Score",
"type": "string",
"display": true,
"required": false,
"displayName": "Quality Score",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Relevance Score",
"type": "string",
"display": true,
"required": false,
"displayName": "Relevance Score",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Summury",
"type": "string",
"display": true,
"required": false,
"displayName": "Summury",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Content Angle",
"type": "string",
"display": true,
"required": false,
"displayName": "Content Angle",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Reviewer",
"type": "string",
"display": true,
"required": false,
"displayName": "Reviewer",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "string",
"display": true,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Notes",
"type": "string",
"display": true,
"required": false,
"displayName": "Notes",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1f-Eott9X_hKkn9sx0lCG3iqKHb9xtMERsWq_fEBd_ns/edit#gid=0",
"cachedResultName": "For Review"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1f-Eott9X_hKkn9sx0lCG3iqKHb9xtMERsWq_fEBd_ns",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1f-Eott9X_hKkn9sx0lCG3iqKHb9xtMERsWq_fEBd_ns/edit?usp=drivesdk",
"cachedResultName": "Content Research System"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "zLpPnB2E6tcI02dz",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "3b8b68db-b6fd-4b02-a21d-0c1f3e98312b",
"name": "Archive",
"type": "n8n-nodes-base.googleSheets",
"position": [
-288,
672
],
"parameters": {
"columns": {
"value": {
"Link": "={{ $json.link }}",
"Title": "={{ $json.title }}",
"Reason": "={{ $json.summary }}",
"Pub Date": "={{ $json.pubDate }}",
"Quality Score": "={{ $json.quality_score }}"
},
"schema": [
{
"id": "Title",
"type": "string",
"display": true,
"required": false,
"displayName": "Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Link",
"type": "string",
"display": true,
"required": false,
"displayName": "Link",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Pub Date",
"type": "string",
"display": true,
"required": false,
"displayName": "Pub Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Quality Score",
"type": "string",
"display": true,
"required": false,
"displayName": "Quality Score",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Reason",
"type": "string",
"display": true,
"required": false,
"displayName": "Reason",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 111046910,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1qlgo9kKDnD6j7GZ6AhKD3EVbFyQu6MfGNEsNCz9lizg/edit#gid=111046910",
"cachedResultName": "Archive"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1qlgo9kKDnD6j7GZ6AhKD3EVbFyQu6MfGNEsNCz9lizg",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1qlgo9kKDnD6j7GZ6AhKD3EVbFyQu6MfGNEsNCz9lizg/edit?usp=drivesdk",
"cachedResultName": "Content Research System"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "zLpPnB2E6tcI02dz",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "d0cecd65-6451-42b5-82ab-49dd8cdc067b",
"name": "LinkedIn Post",
"type": "n8n-nodes-base.linkedIn",
"position": [
16,
384
],
"parameters": {
"text": "={{ $json.linkedin_post }}",
"postAs": "organization",
"additionalFields": {}
},
"typeVersion": 1
},
{
"id": "d24059c9-1171-4962-931d-42031a022730",
"name": "X Post",
"type": "n8n-nodes-base.twitter",
"position": [
16,
192
],
"parameters": {
"text": "={{ $json.twitter_thread }}",
"additionalFields": {}
},
"typeVersion": 2
},
{
"id": "86bd7452-b8ea-49b1-930d-bf3e25f6cd8b",
"name": "Content AI",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-464,
192
],
"parameters": {
"text": "=Create social media content for this article:\n\nTitle: {{ $json.title }}\nSummary: {{ $json.summary }}\nSuggested Angle: {{ $json.content_angle }}\nLink: {{ $json.link }}\n\nArticle scored {{ $json.quality_score }}/10 for quality and {{ $json.relevance_score }}/10 for relevance.\n",
"options": {
"systemMessage": "You are an expert social media content creator specializing in AI and automation topics.\n\nYour job is to take high-quality articles and create engaging, platform-specific content that drives audience engagement and positions the author as a thought leader.\n\nFor each article, create content for these platforms:\n\nTWITTER THREAD (3-4 tweets):\n- Tweet 1: Hook that grabs attention and introduces the main insight\n- Tweet 2-3: Key takeaways with specific examples or data\n- Tweet 4: Call-to-action with link to original article\n- Use emojis strategically\n- Keep each tweet under 280 characters\n\nLINKEDIN POST:\n- Professional tone suitable for business audience\n- 150-200 word summary highlighting business value\n- Include 2-3 key insights from the article\n- End with an engaging question to drive comments\n- Use professional hashtags (#artificialintelligence #businessautomation #productivity)\n\nReturn your response as valid JSON in this exact format:\n{\n \"twitter_thread\": [\"tweet 1 text\", \"tweet 2 text\", \"tweet 3 text\", \"tweet 4 text\"],\n \"linkedin_post\": \"full linkedin post text here\",\n \"content_ready\": true\n}\n\nFocus on value, insights, and engagement. Avoid being overly promotional. Always write every content in French. \nOnly return the JSON object, nothing else."
},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "a5c7c511-833b-4efe-8929-09e95fb187bf",
"name": "Scoring AI",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-1232,
432
],
"parameters": {
"text": "=Analyze this article: {{ $json.title }} - {{ $json['content:encoded'] }}",
"options": {
"systemMessage": "You are a content research assistant specializing in AI and automation topics.\n\nYour job is to analyze articles and determine their value for a content creator who focuses on:\n- AI tools and techniques\n- No-code automation platforms \n- Business automation workflows\n- AI news and developments\n\nIMPORTANT: You must respond with valid JSON in exactly this format:\n\n{\n \"quality_score\": 8,\n \"relevance_score\": 9,\n \"key_topics\": \"AI tools\", \"automation\", \"business efficiency\",\n \"summary\": \"Brief 2-3 sentence summary of the key points and main value.\",\n \"content_angle\": \"Suggested angle for social media content creation\",\n \"action\": \"PUBLISH\"\n}\n\nCRITICAL: Ensure all strings are properly quoted with double quotes. Arrays should contain quoted strings like [\"item1\", \"item2\", \"item3\"].\n\nScoring guidelines:\n- Quality Score (1-10): Based on source credibility, content depth, and usefulness\n- Relevance Score (1-10): How well it matches our AI/automation focus\n- Action: PUBLISH (scores 8+), REVIEW (scores 5-7), or ARCHIVE (scores <5)\n\nOnly return the JSON object, nothing else."
},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "f65f71fb-6634-4248-bace-b0bd253e62bd",
"name": "Quality Filter",
"type": "n8n-nodes-base.if",
"position": [
-688,
432
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "2588090c-6a4a-4609-a8f8-1c7e3cbdda12",
"operator": {
"type": "number",
"operation": "gt"
},
"leftValue": "={{ $json.quality_score }}",
"rightValue": 8
}
]
}
},
"typeVersion": 2.2
},
{
"id": "5d8f7f19-c70c-4da8-8711-e9986c299974",
"name": "Quality Filter 2",
"type": "n8n-nodes-base.if",
"position": [
-496,
576
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "c488b7fd-18a5-432d-af06-7a9748db4778",
"operator": {
"type": "number",
"operation": "gte"
},
"leftValue": "={{ $json.quality_score }}",
"rightValue": 5
}
]
}
},
"typeVersion": 2.2
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "00ee8edd-e5d6-400d-97f6-4735fafeb9c9",
"connections": {
"Code": {
"main": [
[
{
"node": "Quality Filter",
"type": "main",
"index": 0
}
]
]
},
"Code1": {
"main": [
[
{
"node": "Store Content",
"type": "main",
"index": 0
},
{
"node": "X Post",
"type": "main",
"index": 0
},
{
"node": "LinkedIn Post",
"type": "main",
"index": 0
}
]
]
},
"Content AI": {
"main": [
[
{
"node": "Code1",
"type": "main",
"index": 0
}
]
]
},
"Scoring AI": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "Scoring AI",
"type": "ai_memory",
"index": 0
}
]
]
},
"Quality Filter": {
"main": [
[
{
"node": "Content AI",
"type": "main",
"index": 0
}
],
[
{
"node": "Quality Filter 2",
"type": "main",
"index": 0
}
]
]
},
"Quality Filter 2": {
"main": [
[
{
"node": "New for Review",
"type": "main",
"index": 0
}
],
[
{
"node": "Archive",
"type": "main",
"index": 0
}
]
]
},
"RSS Feed Trigger": {
"main": [
[
{
"node": "Scoring AI",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Scoring AI",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI Chat Model1": {
"ai_languageModel": [
[
{
"node": "Content AI",
"type": "ai_languageModel",
"index": 0
}
]
]
}
}
}