Surveillance automatisée des actualités avec analyse Claude 4 AI pour Discord et Google News
Ceci est unMiscellaneous, AI Summarization, Multimodal AIworkflow d'automatisation du domainecontenant 30 nœuds.Utilise principalement des nœuds comme Code, Discord, Aggregate, SerpApi, GoogleSheets. Surveillance automatisée de l'actualité et analyse avec Claude 4 AI pour Discord et Google News
- •Token Bot Discord ou Webhook
- •Informations d'identification Google Sheets API
- •Clé API Anthropic
Nœuds utilisés (30)
Catégorie
{
"meta": {
"instanceId": "393ca9e36a1f81b0f643c72792946a5fe5e49eb4864181ba4032e5a408278263",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "3b6eab19-a13e-4779-80bb-8df6e55b1a32",
"name": "Anthropic Chat Model6",
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
"position": [
2240,
1600
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "claude-sonnet-4-20250514",
"cachedResultName": "Claude 4 Sonnet"
},
"options": {
"maxTokensToSample": 20000
}
},
"credentials": {
"anthropicApi": {
"id": "WXQf5QsxCs3AyxlW",
"name": "Anthropic account"
}
},
"typeVersion": 1.3
},
{
"id": "61a264f4-781e-45c7-8514-a7d5ae7d1c2f",
"name": "Déclencheur programmé",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-336,
1568
],
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 9 * * 1"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "84b638ee-ab02-433f-954e-94464d2eba0c",
"name": "Note adhésive2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-528,
1392
],
"parameters": {
"width": 464,
"height": 320,
"content": "# Phase 1: Weekly Schedule Activation"
},
"typeVersion": 1
},
{
"id": "bbd0aa95-608f-45be-99f6-c5dc2257d3af",
"name": "Note adhésive3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-528,
1760
],
"parameters": {
"width": 464,
"height": 528,
"content": "### What you do:\nConfigure the schedule trigger to set your preferred monitoring frequency (default: Mondays at 9 AM)\nDefine monitoring topics by adding search queries to the Google Sheets \"Query\" sheet\nEnsure Discord bot permissions are properly configured for the target channel\n\n### What the system does:\nTriggers workflow execution based on scheduled intervals (configurable via cron expression)\nInitiates comprehensive news monitoring cycle for all configured topics\nPrepares system for multi-topic news analysis and content generation\nCoordinates sequential processing of search queries and content delivery\n\n### Result:\n✅ Automated news monitoring without manual intervention\n✅ Customizable scheduling for optimal team communication timing\n✅ Scalable monitoring for multiple industry topics and keywords\n✅ Consistent intelligence gathering for competitive awareness"
},
"typeVersion": 1
},
{
"id": "9a22fc2f-05e1-489f-851d-dae76b15e047",
"name": "Note adhésive4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-16,
1392
],
"parameters": {
"color": 2,
"width": 464,
"height": 320,
"content": "# Phase 2: Search Query Management and Topic Processing"
},
"typeVersion": 1
},
{
"id": "a54bf68b-e599-4f1f-bf1c-04a2b0656ec1",
"name": "Note adhésive5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-16,
1760
],
"parameters": {
"color": 2,
"width": 464,
"height": 464,
"content": "### What you do:\nMaintain and update search queries in the designated Google Sheets document\nAdd new monitoring topics, keywords, or industry-specific terms as needed\nReview and refine query effectiveness based on delivered content quality\n\n### What the system does:\nRetrieves monitoring topics from Google Sheets \"Query\" sheet\nProcesses each search query individually for comprehensive coverage\nInitiates sequential news searches to avoid API rate limiting\nPrepares topic-specific news collection for analysis and synthesis\n\n### Result:\n✅ Centralized management of monitoring topics and keywords\n✅ Easy addition and modification of search parameters\n✅ Systematic processing of all configured monitoring queries\n✅ Flexible topic management for evolving business needs\n"
},
"typeVersion": 1
},
{
"id": "02d9b7dc-6364-427e-be7d-59c778b05175",
"name": "Note adhésive6",
"type": "n8n-nodes-base.stickyNote",
"position": [
784,
1392
],
"parameters": {
"color": 3,
"width": 464,
"height": 320,
"content": "# Phase 3: Comprehensive News Discovery and Collection"
},
"typeVersion": 1
},
{
"id": "a5b99be3-b041-460a-b42a-ea02f374f184",
"name": "Note adhésive7",
"type": "n8n-nodes-base.stickyNote",
"position": [
784,
1760
],
"parameters": {
"color": 3,
"width": 464,
"height": 512,
"content": "### What the system does:\nExecutes Google News searches for each configured query using SerpAPI\nRetrieves top news results with comprehensive metadata (titles, sources, dates, snippets)\nProcesses and ranks news articles by relevance and publication date\nExtracts the top 3 most relevant articles per topic for detailed analysis\nHandles API rate limiting and retry logic for reliable data collection\n\n**News Collection Features:**\n- Real-time Google News integration via SerpAPI\n- Automatic relevance scoring and article ranking\n- Comprehensive metadata extraction (source, date, snippet)\n- Multi-topic parallel processing capability\n\n### Result:\n✅ Comprehensive news coverage across all monitored topics\n✅ Top-quality article selection based on relevance and recency\n✅ Complete source attribution and publication timing\n✅ Reliable news discovery with error handling and retry mechanisms\n"
},
"typeVersion": 1
},
{
"id": "adb304ef-bd97-4715-bb06-2c1967849676",
"name": "Note adhésive8",
"type": "n8n-nodes-base.stickyNote",
"position": [
1280,
1392
],
"parameters": {
"color": 4,
"width": 752,
"height": 320,
"content": "# Phase 4: Deep Content Analysis and Article Scraping"
},
"typeVersion": 1
},
{
"id": "7ec99a64-6825-4207-ae5b-36a0f8b67c72",
"name": "Note adhésive9",
"type": "n8n-nodes-base.stickyNote",
"position": [
1280,
1760
],
"parameters": {
"color": 4,
"width": 752,
"height": 416,
"content": "### What the system does:\nScrapes full content from the top 3 selected articles per topic using Firecrawl\nConverts article content to clean markdown format for AI processing\nImplements retry logic and error handling for reliable content extraction\nPreserves article structure, headings, and key formatting elements\nHandles various website formats and content management systems\n\n**Content Extraction Capabilities:**\n- Full-text article scraping with clean formatting\n- Multi-website compatibility and format handling\n- Automatic content structure preservation\n- Error handling for inaccessible or protected content\n\n### Result:\n✅ Complete article content captured for in-depth analysis\n✅ Clean, formatted content ready for AI processing\n✅ Comprehensive coverage of key industry developments\n✅ Reliable content extraction despite varied website formats"
},
"typeVersion": 1
},
{
"id": "facae94e-45e9-4907-b686-fb89ef9623eb",
"name": "Note adhésive10",
"type": "n8n-nodes-base.stickyNote",
"position": [
2080,
1392
],
"parameters": {
"color": 5,
"width": 752,
"height": 320,
"content": "# Phase 5: AI-Powered Content Analysis and Synthesis"
},
"typeVersion": 1
},
{
"id": "faebe895-b178-42d3-b434-ed3eaece7381",
"name": "Note adhésive11",
"type": "n8n-nodes-base.stickyNote",
"position": [
2080,
1760
],
"parameters": {
"color": 5,
"width": 752,
"height": 416,
"content": "### What the system does:\nProcesses scraped articles using Claude 4 Sonnet for intelligent analysis\nGenerates structured summaries following consistent formatting standards\nCreates topic-specific intelligence reports with key insights and implications\nMaintains professional tone and factual accuracy in all generated content\nFormats analysis results for optimal Discord presentation\n\n**AI Analysis Features:**\n- Advanced content comprehension and synthesis\n- Consistent formatting and structure across all topics\n- Key insight extraction and trend identification\n- Professional writing style suitable for business communication\n\n### Result:\n✅ High-quality intelligence reports generated automatically\n✅ Consistent professional formatting across all monitoring topics\n✅ Key insights and implications clearly highlighted\n✅ Actionable intelligence ready for team consumption"
},
"typeVersion": 1
},
{
"id": "877bda6c-58da-4d0c-a46a-bce25c6cbaf7",
"name": "Note adhésive12",
"type": "n8n-nodes-base.stickyNote",
"position": [
2880,
1392
],
"parameters": {
"color": 6,
"width": 752,
"height": 320,
"content": "# Phase 6: Content Optimization for Discord Delivery"
},
"typeVersion": 1
},
{
"id": "a90cfa84-e316-486f-82a1-b2ab16b18573",
"name": "Note adhésive13",
"type": "n8n-nodes-base.stickyNote",
"position": [
2880,
1776
],
"parameters": {
"color": 6,
"width": 752,
"height": 480,
"content": "### What the system does:\nAggregates all topic analyses into comprehensive monitoring report\nImplements intelligent text segmentation to comply with Discord's 2000-character limit\nMaintains content coherence while splitting longer analyses into multiple messages\nPreserves formatting and readability across message segments\nOptimizes message flow for sequential delivery\n\n**Discord Optimization Features:**\n- Automatic message length compliance (under 2000 characters)\n- Intelligent text segmentation maintaining content flow\n- Formatting preservation across multiple messages\n- Sequential message preparation for smooth delivery\n\n### Result:\n✅ Content perfectly formatted for Discord platform constraints\n✅ Coherent message flow maintained across multiple segments\n✅ Professional presentation optimized for team communication\n✅ Automated compliance with platform messaging limitations\n"
},
"typeVersion": 1
},
{
"id": "312854b3-8fd4-4f23-8f5e-59975ada4600",
"name": "Note adhésive14",
"type": "n8n-nodes-base.stickyNote",
"position": [
3664,
1296
],
"parameters": {
"color": 7,
"width": 928,
"height": 592,
"content": "# Phase 7: Automated Team Communication and Report Delivery"
},
"typeVersion": 1
},
{
"id": "9ec29dfb-98be-4edd-8a6c-c7b6531602c6",
"name": "Note adhésive15",
"type": "n8n-nodes-base.stickyNote",
"position": [
3664,
1936
],
"parameters": {
"color": 7,
"width": 928,
"height": 448,
"content": "### What the system does:\nDelivers engaging introduction message to Discord channel with branded personality\nPosts segmented intelligence reports in proper sequence to maintain readability\nSends conclusion message to complete the monitoring cycle\nImplements message timing to ensure proper delivery order\nUses branded \"Claptrap\" persona for consistent team engagement\n\n**Discord Delivery Features:**\n- Branded bot persona for engaging team communication\n- Sequential message delivery maintaining proper flow\n- Professional intelligence reporting with personality elements\n- Automated conclusion and cycle completion messaging\n\n### Result:\n✅ Professional intelligence reports delivered directly to team Discord channel\n✅ Engaging branded communication maintaining team interest\n✅ Complete monitoring cycle with clear beginning and conclusion\n✅ Consistent timing and delivery for reliable team updates"
},
"typeVersion": 1
},
{
"id": "d5842671-b64e-423a-85c4-7d3256b1422c",
"name": "Obtenir la requête",
"type": "n8n-nodes-base.googleSheets",
"position": [
160,
1568
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "name",
"value": "Query"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "https://docs.google.com/spreadsheets/d/1k6v6DeL_3cZ0U9kANAlrIIUIIOil959MaykV7JNAXro/edit?gid=0#gid=0"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "wBRLUCktxqXE6DVJ",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "11b98779-6f2c-42ad-b051-41fa8aed3fc2",
"name": "Boucle sur les éléments",
"type": "n8n-nodes-base.splitInBatches",
"position": [
528,
1568
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "a9778ac0-c55e-46b9-9288-820cec4cabb0",
"name": "Rechercher GNews",
"type": "n8n-nodes-serpapi.serpApi",
"position": [
864,
1568
],
"parameters": {
"q": "={{ $json.Query }}",
"operation": "google_news",
"requestOptions": {},
"additionalFields": {}
},
"credentials": {
"serpApi": {
"id": "w1oDmQzMKE4Wcj2P",
"name": "SerpAPI account"
}
},
"retryOnFail": true,
"typeVersion": 1
},
{
"id": "d679b877-042f-4bf6-b5ee-9fae394a5da1",
"name": "Retourner uniquement l'URL",
"type": "n8n-nodes-base.code",
"position": [
1072,
1568
],
"parameters": {
"jsCode": "// Récupérer les données d'entrée\nconst inputData = $input.all()[0].json;\n\n// Extraire les résultats de news\nconst newsResults = inputData.news_results || [];\n\n// Trier par position (ordre croissant)\nconst sortedResults = newsResults.sort((a, b) => a.position - b.position);\n\n// Prendre les 3 premiers résultats avec des propriétés nommées\nconst top3Results = sortedResults.slice(0, 3);\n\n// Créer un objet avec des propriétés distinctes pour chaque article\nconst result = {\n article1: {\n link: top3Results[0]?.link || null,\n title: top3Results[0]?.title || null,\n snippet: top3Results[0]?.snippet || null,\n source: top3Results[0]?.source || null,\n date: top3Results[0]?.date || null\n },\n article2: {\n link: top3Results[1]?.link || null,\n title: top3Results[1]?.title || null,\n snippet: top3Results[1]?.snippet || null,\n source: top3Results[1]?.source || null,\n date: top3Results[1]?.date || null\n },\n article3: {\n link: top3Results[2]?.link || null,\n title: top3Results[2]?.title || null,\n snippet: top3Results[2]?.snippet || null,\n source: top3Results[2]?.source || null,\n date: top3Results[2]?.date || null\n },\n // Pour compatibilité avec votre workflow existant\n all_links: top3Results.map(result => result.link).filter(link => link !== null),\n count: top3Results.length\n};\n\n// CORRECTION : Retourner un tableau avec un objet (format requis par n8n)\nreturn [{ json: result }];"
},
"typeVersion": 2
},
{
"id": "a7a1521e-1183-4518-9320-3ebc88192b1d",
"name": "Extraire l'article 1",
"type": "@mendable/n8n-nodes-firecrawl.firecrawl",
"onError": "continueRegularOutput",
"maxTries": 5,
"position": [
1360,
1568
],
"parameters": {
"url": "={{ $('Return URL only').item.json.article1.link }}",
"operation": "scrape",
"requestOptions": {}
},
"credentials": {
"firecrawlApi": {
"id": "E34WDB80ik5VHjiI",
"name": "Firecrawl account"
}
},
"retryOnFail": true,
"typeVersion": 1,
"alwaysOutputData": false
},
{
"id": "42018b6f-ca36-42bc-aa9b-7880592d6f17",
"name": "Extraire l'article 2",
"type": "@mendable/n8n-nodes-firecrawl.firecrawl",
"onError": "continueRegularOutput",
"maxTries": 5,
"position": [
1600,
1568
],
"parameters": {
"url": "={{ $('Return URL only').item.json.article2.link }}",
"operation": "scrape",
"requestOptions": {}
},
"credentials": {
"firecrawlApi": {
"id": "E34WDB80ik5VHjiI",
"name": "Firecrawl account"
}
},
"retryOnFail": true,
"typeVersion": 1
},
{
"id": "9f8552d4-131d-40e2-a1a7-6165310e5645",
"name": "Extraire l'article 3",
"type": "@mendable/n8n-nodes-firecrawl.firecrawl",
"onError": "continueRegularOutput",
"maxTries": 5,
"position": [
1872,
1568
],
"parameters": {
"url": "={{ $('Return URL only').item.json.article3.link }}",
"operation": "scrape",
"requestOptions": {}
},
"credentials": {
"firecrawlApi": {
"id": "E34WDB80ik5VHjiI",
"name": "Firecrawl account"
}
},
"retryOnFail": true,
"typeVersion": 1
},
{
"id": "706d3a3b-057c-4def-8330-7c989968aa87",
"name": "Rédaction veille",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"maxTries": 5,
"position": [
2416,
1488
],
"parameters": {
"text": "=Source 1\n\nURL : {{ $('Return URL only').item.json.article1.link }}\nDate : {{ $('Return URL only').item.json.article1.date }}\nContenu de l'article : {{ $('Scrape article 1').item.json.data.markdown }}\n\n\nSource 2 \n\nURL : {{ $('Return URL only').item.json.article2.link }}\nDate : {{ $('Return URL only').item.json.article2.date }}\nContenu de l'article : {{ $('Scrape article 2').item.json.data.markdown }}\n\nSource 3\n\nURL : {{ $('Return URL only').item.json.article3.link }}\nDate : {{ $('Return URL only').item.json.article3.date }}\nContenu de l'article : {{ $('Scrape article 3').item.json.data.markdown }}\n",
"batching": {},
"messages": {
"messageValues": [
{
"message": "=Voilà le contenu de 3 article sur le thème \"{{ $('Loop Over Items').item.json.Query }}\".\n\n\n# Mission\nAnalysez les articles fournis et produisez une synthèse structurée.\n\n# Format de sortie requis\n\nUne fois au début : Veille **{{ $('Loop Over Items').item.json.Query }}**\n\nPuis pour chaque article, suivez exactement cette structure :\n\n```\n# Article [Titre]\n\n**Média :** [Nom du média]\n**Date :** [Date de publication] \n**Lien :** [URL]\n**Résumé :** [2-3 phrases sur le contenu principal]\n\n---\n```\n\n## Consignes\n- Respecter l'ordre : Média → Date → Lien → Résumé\n- Numéroter les articles dans l'ordre d'apparition\n- Résumé maximum 3 phrases\n- Si une info manque, indiquer \"Non disponible\"\n\nSi il manque les informations d'un article ignore le et fait un rendu conséquent au nombre d'article que tu a pu traiter).\n\nTraitez maintenant le document fourni et donnez un rendu en français."
}
]
},
"promptType": "define"
},
"retryOnFail": true,
"typeVersion": 1.7
},
{
"id": "bd674533-295d-4223-93ac-971b5a1157d2",
"name": "Compilation données veilles",
"type": "n8n-nodes-base.aggregate",
"position": [
3056,
1552
],
"parameters": {
"include": "specifiedFields",
"options": {},
"aggregate": "aggregateAllItemData",
"fieldsToInclude": "text"
},
"typeVersion": 1
},
{
"id": "073edc5a-f56b-4b48-b7c1-3397c57eda5d",
"name": "Découpage message discord",
"type": "n8n-nodes-base.code",
"position": [
3392,
1536
],
"parameters": {
"jsCode": "// Code pour node n8n - Division de texte pour Discord\n// Limite Discord : 2000 caractères par message\n\nconst DISCORD_CHAR_LIMIT = 2000;\nconst SAFETY_MARGIN = 50; // Marge de sécurité pour éviter les dépassements\nconst EFFECTIVE_LIMIT = DISCORD_CHAR_LIMIT - SAFETY_MARGIN;\n\nfunction splitTextForDiscord(text) {\n // Si le texte est plus court que la limite, on le retourne tel quel\n if (text.length <= EFFECTIVE_LIMIT) {\n return [text];\n }\n\n const messages = [];\n let currentMessage = '';\n \n // Diviser le texte en paragraphes d'abord (séparés par \\n\\n ou ----)\n const sections = text.split(/(?:\\n\\n|----)/);\n \n for (let i = 0; i < sections.length; i++) {\n let section = sections[i].trim();\n \n // Si une section complète dépasse la limite, la diviser par phrases\n if (section.length > EFFECTIVE_LIMIT) {\n const sentences = section.split(/(?<=[.!?:])\\s+/);\n \n for (const sentence of sentences) {\n // Si une phrase seule dépasse la limite, la couper brutalement\n if (sentence.length > EFFECTIVE_LIMIT) {\n const chunks = splitByLength(sentence, EFFECTIVE_LIMIT);\n for (const chunk of chunks) {\n if (currentMessage.length + chunk.length + 1 > EFFECTIVE_LIMIT) {\n if (currentMessage.trim()) {\n messages.push(currentMessage.trim());\n }\n currentMessage = chunk;\n } else {\n currentMessage += (currentMessage ? ' ' : '') + chunk;\n }\n }\n } else {\n // Ajouter la phrase si elle rentre dans le message actuel\n if (currentMessage.length + sentence.length + 1 <= EFFECTIVE_LIMIT) {\n currentMessage += (currentMessage ? ' ' : '') + sentence;\n } else {\n // Sauvegarder le message actuel et commencer un nouveau\n if (currentMessage.trim()) {\n messages.push(currentMessage.trim());\n }\n currentMessage = sentence;\n }\n }\n }\n } else {\n // La section rentre dans la limite, vérifier si elle rentre dans le message actuel\n if (currentMessage.length + section.length + 2 <= EFFECTIVE_LIMIT) {\n currentMessage += (currentMessage ? '\\n\\n' : '') + section;\n } else {\n // Sauvegarder le message actuel et commencer un nouveau\n if (currentMessage.trim()) {\n messages.push(currentMessage.trim());\n }\n currentMessage = section;\n }\n }\n }\n \n // Ajouter le dernier message s'il existe\n if (currentMessage.trim()) {\n messages.push(currentMessage.trim());\n }\n \n return messages.length > 0 ? messages : [text];\n}\n\nfunction splitByLength(text, maxLength) {\n const chunks = [];\n for (let i = 0; i < text.length; i += maxLength) {\n chunks.push(text.slice(i, i + maxLength));\n }\n return chunks;\n}\n\n// Code principal pour n8n\nconst inputData = $input.all();\nconst outputItems = [];\n\nfor (let i = 0; i < inputData.length; i++) {\n const item = inputData[i];\n \n // Extraire le texte à diviser (adaptez selon votre structure de données)\n // Exemple : si votre texte est dans item.json.content\n let textToSplit = '';\n \n // Si c'est un tableau comme dans votre exemple\n if (item.json.data && Array.isArray(item.json.data)) {\n textToSplit = item.json.data.map(dataItem => dataItem.text || '').join('\\n\\n---\\n\\n');\n } \n // Si c'est directement du texte\n else if (item.json.text) {\n textToSplit = item.json.text;\n }\n // Si c'est dans un autre champ\n else if (item.json.content) {\n textToSplit = item.json.content;\n }\n // Fallback : convertir tout l'objet en texte\n else {\n textToSplit = JSON.stringify(item.json, null, 2);\n }\n \n // Diviser le texte\n const messages = splitTextForDiscord(textToSplit);\n \n // Créer un item de sortie pour chaque message\n messages.forEach((message, index) => {\n outputItems.push({\n json: {\n message: message,\n messageIndex: index + 1,\n totalMessages: messages.length,\n characterCount: message.length,\n originalItemIndex: i\n }\n });\n });\n}\n\nreturn outputItems;"
},
"typeVersion": 2
},
{
"id": "3be2a835-9ef2-47d3-a70b-5e8093178519",
"name": "Introduction",
"type": "n8n-nodes-base.discord",
"position": [
3760,
1472
],
"webhookId": "47593169-e23c-4303-b8e2-7e93386c4c7a",
"parameters": {
"content": "SALUTATIONS MAGNIFIQUES RÉFÉRENCEURS ! Claptrap ici avec votre veille hebdomadaire ultra-FANTASTIQUE qui va faire exploser vos circuits organiques ! 🤖⚡",
"guildId": {
"__rl": true,
"mode": "list",
"value": "919951151888236595",
"cachedResultUrl": "https://discord.com/channels/919951151888236595",
"cachedResultName": "Institut du référencement"
},
"options": {},
"resource": "message",
"channelId": {
"__rl": true,
"mode": "list",
"value": "1334455789284364309",
"cachedResultUrl": "https://discord.com/channels/919951151888236595/1334455789284364309",
"cachedResultName": "📝-veille-📝"
}
},
"credentials": {
"discordBotApi": {
"id": "wEzWTKJiOc3ZcZew",
"name": "ClapTrap IDR"
}
},
"typeVersion": 2
},
{
"id": "f987c547-d915-420f-a03b-91d4b9bf7892",
"name": "Veille",
"type": "n8n-nodes-base.discord",
"position": [
4176,
1648
],
"webhookId": "f3ee61cf-fbfa-447c-9fa8-78b7e5e1c4f7",
"parameters": {
"content": "={{ $json.message }}",
"guildId": {
"__rl": true,
"mode": "list",
"value": "919951151888236595",
"cachedResultUrl": "https://discord.com/channels/919951151888236595",
"cachedResultName": "Institut du référencement"
},
"options": {
"flags": [
"SUPPRESS_EMBEDS"
]
},
"resource": "message",
"channelId": {
"__rl": true,
"mode": "list",
"value": "1334455789284364309",
"cachedResultUrl": "https://discord.com/channels/919951151888236595/1334455789284364309",
"cachedResultName": "📝-veille-📝"
}
},
"credentials": {
"discordBotApi": {
"id": "wEzWTKJiOc3ZcZew",
"name": "ClapTrap IDR"
}
},
"typeVersion": 2
},
{
"id": "8b09ed9a-d5c1-4a7c-97a2-39219e888576",
"name": "Conclusion",
"type": "n8n-nodes-base.discord",
"position": [
4384,
1504
],
"webhookId": "47593169-e23c-4303-b8e2-7e93386c4c7a",
"parameters": {
"content": "ET VOILÀ MINIONS ORGANIQUES ! Claptrap a terminé sa mission ÉPIQUE - à la semaine prochaine pour encore plus d'excellence robotique ! Bip boop 🤖✨",
"guildId": {
"__rl": true,
"mode": "list",
"value": "919951151888236595",
"cachedResultUrl": "https://discord.com/channels/919951151888236595",
"cachedResultName": "Institut du référencement"
},
"options": {},
"resource": "message",
"channelId": {
"__rl": true,
"mode": "list",
"value": "1334455789284364309",
"cachedResultUrl": "https://discord.com/channels/919951151888236595/1334455789284364309",
"cachedResultName": "📝-veille-📝"
}
},
"credentials": {
"discordBotApi": {
"id": "wEzWTKJiOc3ZcZew",
"name": "ClapTrap IDR"
}
},
"executeOnce": true,
"typeVersion": 2
},
{
"id": "2396728d-d58e-459b-b657-f2a11192a837",
"name": "Boucle sur les éléments 2",
"type": "n8n-nodes-base.splitInBatches",
"position": [
3952,
1584
],
"parameters": {
"options": {}
},
"typeVersion": 3
}
],
"pinData": {},
"connections": {
"f987c547-d915-420f-a03b-91d4b9bf7892": {
"main": [
[
{
"node": "2396728d-d58e-459b-b657-f2a11192a837",
"type": "main",
"index": 0
}
]
]
},
"d5842671-b64e-423a-85c4-7d3256b1422c": {
"main": [
[
{
"node": "11b98779-6f2c-42ad-b051-41fa8aed3fc2",
"type": "main",
"index": 0
}
]
]
},
"a9778ac0-c55e-46b9-9288-820cec4cabb0": {
"main": [
[
{
"node": "d679b877-042f-4bf6-b5ee-9fae394a5da1",
"type": "main",
"index": 0
}
]
]
},
"11b98779-6f2c-42ad-b051-41fa8aed3fc2": {
"main": [
[
{
"node": "bd674533-295d-4223-93ac-971b5a1157d2",
"type": "main",
"index": 0
}
],
[
{
"node": "a9778ac0-c55e-46b9-9288-820cec4cabb0",
"type": "main",
"index": 0
}
]
]
},
"d679b877-042f-4bf6-b5ee-9fae394a5da1": {
"main": [
[
{
"node": "a7a1521e-1183-4518-9320-3ebc88192b1d",
"type": "main",
"index": 0
}
]
]
},
"61a264f4-781e-45c7-8514-a7d5ae7d1c2f": {
"main": [
[
{
"node": "d5842671-b64e-423a-85c4-7d3256b1422c",
"type": "main",
"index": 0
}
]
]
},
"a7a1521e-1183-4518-9320-3ebc88192b1d": {
"main": [
[
{
"node": "42018b6f-ca36-42bc-aa9b-7880592d6f17",
"type": "main",
"index": 0
}
]
]
},
"42018b6f-ca36-42bc-aa9b-7880592d6f17": {
"main": [
[
{
"node": "9f8552d4-131d-40e2-a1a7-6165310e5645",
"type": "main",
"index": 0
}
]
]
},
"9f8552d4-131d-40e2-a1a7-6165310e5645": {
"main": [
[
{
"node": "706d3a3b-057c-4def-8330-7c989968aa87",
"type": "main",
"index": 0
}
]
]
},
"2396728d-d58e-459b-b657-f2a11192a837": {
"main": [
[
{
"node": "8b09ed9a-d5c1-4a7c-97a2-39219e888576",
"type": "main",
"index": 0
}
],
[
{
"node": "f987c547-d915-420f-a03b-91d4b9bf7892",
"type": "main",
"index": 0
}
]
]
},
"706d3a3b-057c-4def-8330-7c989968aa87": {
"main": [
[
{
"node": "11b98779-6f2c-42ad-b051-41fa8aed3fc2",
"type": "main",
"index": 0
}
]
]
},
"3b6eab19-a13e-4779-80bb-8df6e55b1a32": {
"ai_languageModel": [
[
{
"node": "706d3a3b-057c-4def-8330-7c989968aa87",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"073edc5a-f56b-4b48-b7c1-3397c57eda5d": {
"main": [
[
{
"node": "2396728d-d58e-459b-b657-f2a11192a837",
"type": "main",
"index": 0
}
]
]
},
"bd674533-295d-4223-93ac-971b5a1157d2": {
"main": [
[
{
"node": "073edc5a-f56b-4b48-b7c1-3397c57eda5d",
"type": "main",
"index": 0
},
{
"node": "3be2a835-9ef2-47d3-a70b-5e8093178519",
"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é - Divers, Résumé IA, 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
Growth AI
@growthaiPartager ce workflow