Alertes de géopolitique pour les actualités soudaines

Avancé

Ceci est unMarket Research, AI Summarizationworkflow d'automatisation du domainecontenant 30 nœuds.Utilise principalement des nœuds comme If, Code, Merge, Telegram, DataTable. utilisationAI评分etTelegram警报过滤地缘政治突发新闻

Prérequis
  • Token Bot Telegram
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
  • Clé API OpenAI
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "id": "lShjTFAvAhSAuAA6",
  "meta": {
    "instanceId": "083ea1756bbf8db2f276e993d532dc5e33f75383025a15da854248b05c1849de"
  },
  "name": "Geopolitics Breaking News Alert",
  "tags": [],
  "nodes": [
    {
      "id": "7bc7ba9e-31e0-4196-8d00-9f71ff966444",
      "name": "Toutes les 30 minutes",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -592,
        384
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes",
              "minutesInterval": 30
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "46266983-54ba-4977-b6af-dabc6ee1ed4a",
      "name": "Flux RSS NYT",
      "type": "n8n-nodes-base.rssFeedRead",
      "position": [
        0,
        112
      ],
      "parameters": {
        "url": "https://rss.nytimes.com/services/xml/rss/nyt/World.xml",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "05342734-972c-49d1-82d7-3622f96f42f1",
      "name": "Flux RSS TOI",
      "type": "n8n-nodes-base.rssFeedRead",
      "position": [
        0,
        240
      ],
      "parameters": {
        "url": "https://timesofindia.indiatimes.com/rssfeedstopstories.cms",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "2f195f01-5e2e-439b-9954-a25f902f399f",
      "name": "Flux RSS Al Jazeera",
      "type": "n8n-nodes-base.rssFeedRead",
      "position": [
        0,
        368
      ],
      "parameters": {
        "url": "https://www.aljazeera.com/xml/rss/all.xml",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "13811cd7-80cb-43cf-a18d-ecebfb56eea9",
      "name": "Flux RSS BBC",
      "type": "n8n-nodes-base.rssFeedRead",
      "position": [
        0,
        528
      ],
      "parameters": {
        "url": "http://feeds.bbci.co.uk/news/world/rss.xml",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "e29a459e-5fbf-4703-bcfc-e389b36d7b89",
      "name": "Filtre Dynamique",
      "type": "n8n-nodes-base.code",
      "position": [
        640,
        368
      ],
      "parameters": {
        "jsCode": "// Dynamic Filter Node - Config-Driven Filtering\n  const config = $('Load Config from Google Drive').first().json;\n\n  const primaryKeywords = config.primary_keywords;\n  const secondaryKeywords = config.secondary_keywords;\n\n  const filtered = [];\n\n  for (const item of $input.all()) {\n    const text = `${item.json.title} ${item.json.contentSnippet}`.toLowerCase();\n\n    // Must mention at least one primary keyword\n    const hasPrimary = primaryKeywords.some(kw => text.includes(kw.toLowerCase()));\n\n    // Must mention at least one secondary keyword\n    const hasSecondary = secondaryKeywords.some(kw => text.includes(kw.toLowerCase()));\n\n    if (hasPrimary && hasSecondary) {\n      filtered.push({\n        json: {\n          ...item.json,\n          config: config\n        }\n      });\n    }\n  }\n\n  return filtered;"
      },
      "typeVersion": 2
    },
    {
      "id": "4e7b8918-071d-43da-b39a-68f09d1aa720",
      "name": "Envoyer une Alerte d'Actualité",
      "type": "n8n-nodes-base.telegram",
      "position": [
        2032,
        576
      ],
      "webhookId": "271ae674-a0c3-4b7f-a986-e8709bcd6d2d",
      "parameters": {
        "text": "=={{ $json.message }}",
        "chatId": "={{ $json.config.telegram_chat_id }}",
        "additionalFields": {
          "parse_mode": "HTML"
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "TlRyprl4PMViOx6S",
          "name": "Telegram account 2"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ba46bf0d-81a8-4ea5-8973-79452159ed0a",
      "name": "Analyseur d'Actualités",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1136,
        368
      ],
      "parameters": {
        "text": "={{ \"Analyze this article:\\n\\nTitle: \" + $json.title + \"\\n\\nContent: \" + $json.contentSnippet + \"\\n\\nLink: \" +\n  $json.link + \"\\n\\nSource: \" + $json.source + \"\\n\\nPublished: \" + $json.pubDate }}",
        "options": {
          "systemMessage": "={{ $json.systemPrompt }}"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "2fd4e417-8ac3-42eb-9a30-c7b9a1346317",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1104,
        576
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "gpt-4o-mini"
        },
        "options": {
          "temperature": 0.3
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "7os4DH2Wu3pY84Oy",
          "name": "N8N Key"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "01953c30-52e2-46cd-8255-ec7373d1ff40",
      "name": "Analyseur de Sortie Structurée",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1312,
        560
      ],
      "parameters": {
        "jsonSchemaExample": "{\n    \"score\": 8,\n    \"category\": \"Trade Policy\",\n    \"alert_topic\": \"India announces new tariffs on Chinese imports\",\n    \"alert_description\": \"Government unveils comprehensive tariff structure affecting electronics and manufacturing sectors\",\n    \"impact\": \"Significant escalation in trade tensions, potential retaliation expected\",\n    \"source\": \"Times of India\",\n    \"timestamp\": \"2025-10-25T20:30:00+05:30\",\n    \"link\": \"https://timesofindia.indiatimes.com/article/12345\",\n    \"should_alert\": true\n  }"
      },
      "typeVersion": 1.3
    },
    {
      "id": "5c161610-bfa8-4da1-a82a-23666d185de6",
      "name": "Condition Si",
      "type": "n8n-nodes-base.if",
      "position": [
        1664,
        592
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "8d463a8b-52db-4065-80cd-b6f6ff5ed5ec",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.output.should_alert }}",
              "rightValue": {}
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "edda078a-b0be-4ee3-845f-88aa6851416a",
      "name": "Flux RSS SCMP",
      "type": "n8n-nodes-base.rssFeedRead",
      "position": [
        0,
        704
      ],
      "parameters": {
        "url": "https://www.scmp.com/rss/3/feed",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "95b00893-33a7-4b6c-b365-11c317760351",
      "name": "Flux RSS NDTV",
      "type": "n8n-nodes-base.rssFeedRead",
      "position": [
        0,
        880
      ],
      "parameters": {
        "url": "https://feeds.feedburner.com/ndtvnews-top-stories",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "393a1952-9bb8-416b-8096-09c8d5b81ff0",
      "name": "Vérifier les Doublons",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        800,
        368
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyName": "article_link",
              "keyValue": "=={{ $json.link }}"
            }
          ]
        },
        "matchType": "allConditions",
        "operation": "rowNotExists",
        "dataTableId": {
          "__rl": true,
          "mode": "list",
          "value": "pYQedxIAvf9PQdAF",
          "cachedResultUrl": "/projects/5Iw2tLn8DOp3x4nk/datatables/pYQedxIAvf9PQdAF",
          "cachedResultName": "analyzed_articles"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "92a6bdd3-bc80-46e7-b0a3-3b806ef3bdc1",
      "name": "Enregistrer l'Article Analysé",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        1504,
        272
      ],
      "parameters": {
        "columns": {
          "value": {
            "score": "={{ $json.output.score }}",
            "title": "=={{ $json.output.alert_topic }}",
            "analyzed_at": "={{ $now.toISO() }}",
            "article_link": "=={{ $json.output.link }}"
          },
          "schema": [
            {
              "id": "article_link",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "article_link",
              "defaultMatch": false
            },
            {
              "id": "title",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "title",
              "defaultMatch": false
            },
            {
              "id": "analyzed_at",
              "type": "dateTime",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "analyzed_at",
              "defaultMatch": false
            },
            {
              "id": "score",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "score",
              "defaultMatch": false
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "dataTableId": {
          "__rl": true,
          "mode": "list",
          "value": "pYQedxIAvf9PQdAF",
          "cachedResultUrl": "/projects/5Iw2tLn8DOp3x4nk/datatables/pYQedxIAvf9PQdAF",
          "cachedResultName": "analyzed_articles"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4ff7d6dc-8421-439d-a98a-3e8233dbedd3",
      "name": "Nettoyer les Anciens Enregistrements",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        1744,
        272
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyName": "analyzed_at",
              "keyValue": "={{ $now.minus({days: 7}).toISO() }}",
              "condition": "lt"
            }
          ]
        },
        "options": {},
        "operation": "deleteRows",
        "dataTableId": {
          "__rl": true,
          "mode": "list",
          "value": "pYQedxIAvf9PQdAF",
          "cachedResultUrl": "/projects/5Iw2tLn8DOp3x4nk/datatables/pYQedxIAvf9PQdAF",
          "cachedResultName": "analyzed_articles"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d339eb01-08c7-4d8b-9ed4-bfb88816f915",
      "name": "Fusionner",
      "type": "n8n-nodes-base.merge",
      "position": [
        288,
        304
      ],
      "parameters": {
        "numberInputs": 6
      },
      "typeVersion": 3.2
    },
    {
      "id": "54527b07-b8c7-4744-80c8-257bad8bafb6",
      "name": "Agréger les Alertes",
      "type": "n8n-nodes-base.code",
      "position": [
        1856,
        576
      ],
      "parameters": {
        "jsCode": "// Aggregate all alerts into a single message\n  const items = $input.all();\n\n  if (items.length === 0) {\n    return [];\n  }\n\n  // Get config from first item\n  const config = items[0].json.output.config || items[0].json.config;\n\n  // Build consolidated message\n  let message = `🚨 BREAKING NEWS ALERTS (${items.length} items)\\n\\n`;\n\n  items.forEach((item, index) => {\n    const output = item.json.output;\n\n    message += `━━━━━━━━━━━━━━━━━━━━\\n`;\n    message += `${index + 1}. BREAKING: ${output.category}\\n\\n`;\n    message += `📰 Source: ${output.source}\\n`;\n    message += `💥 Impact: ${output.impact}\\n\\n`;\n    message += `📌 ${output.alert_topic}\\n\\n`;\n    message += `📄 ${output.alert_description}\\n\\n`;\n    message += `🔗 Read More: ${output.link}\\n\\n`;\n    message += `⏰ Alert Time: ${output.timestamp}\\n`;\n    message += `Score: ${output.score}\\n\\n`;\n  });\n\n  // Return single item with consolidated message AND config\n  return [{\n    json: {\n      message: message,\n      config: config\n    }\n  }];"
      },
      "typeVersion": 2
    },
    {
      "id": "cd47ab51-4722-497e-874a-7b6f727c0616",
      "name": "Générateur d'Invite IA Dynamique",
      "type": "n8n-nodes-base.code",
      "position": [
        976,
        368
      ],
      "parameters": {
        "jsCode": "// Dynamic AI Prompt Generator\n  const items = $input.all();\n  const results = [];\n\n  for (const item of items) {\n    // Get config from item or Google Drive HTTP Request node\n    const config = item.json.config || $('Load Config from Google Drive').first().json;\n\n    // Build scoring criteria text\n    let criteriaText = '';\n    for (const rule of config.scoring_criteria) {\n      criteriaText += `  • ${rule.category} (${rule.score_min}-${rule.score_max}): ${rule.description}\\n`;\n    }\n\n    // Generate dynamic system prompt\n    const systemPrompt = `You are a ${config.ai_role}. Analyze RSS articles for breaking news urgency.\n\n  BREAKING NEWS CRITERIA:\n  ${criteriaText}\n  NOT BREAKING (1-4): Routine updates, opinion pieces\n\n  INSTRUCTIONS:\n  You receive: title, contentSnippet, link, source, pubDate\n\n  1. Analyze urgency score (1-10)\n  2. If score < ${config.alert_threshold}: Set should_alert = false\n  3. If score >= ${config.alert_threshold}: Set should_alert = true\n\n  Always return ALL these fields:\n  - score: [1-10 based on breaking news urgency]\n  - category: [Category name matching the score range]\n  - alert_topic: [use the article title]\n  - alert_description: [use contentSnippet]\n  - impact: [your one-sentence impact analysis]\n  - source: [use source field]\n  - timestamp: [use pubDate]\n  - link: [use link field]\n  - should_alert: [false if score < ${config.alert_threshold}, true if score >= ${config.alert_threshold}]`;\n\n    // Add systemPrompt to item\n    results.push({\n      json: {\n        ...item.json,\n        systemPrompt: systemPrompt,\n        config: config\n      }\n    });\n  }\n\n  return results;"
      },
      "typeVersion": 2
    },
    {
      "id": "1fa522e9-1f26-4b4f-98a6-f9815d31c9e4",
      "name": "Nœud de Nettoyage RSS",
      "type": "n8n-nodes-base.code",
      "position": [
        448,
        368
      ],
      "parameters": {
        "jsCode": " // Strip HTML tags helper function\n  const stripHTML = (html) => {\n    if (!html) return '';\n    return html.replace(/<[^>]*>/g, '').trim();\n  };\n\n  // Process all items and normalize to required fields only\n  const cleanedItems = [];\n\n  for (const item of $input.all()) {\n    const json = item.json;\n\n    // Extract source (try multiple fields with fallback chain)\n    const source = json.creator || json['dc:creator'] || json.author || 'Unknown';\n\n    // Handle empty contentSnippet - fallback to content and strip HTML\n    const contentSnippet = json.contentSnippet || stripHTML(json.content) || '';\n\n    // Use isoDate for consistency (standardized ISO 8601 format)\n    const pubDate = json.isoDate || json.pubDate;\n\n    // Build clean item with ONLY required fields\n    cleanedItems.push({\n      json: {\n        // CRITICAL fields (order matters for readability)\n        link: json.link,                    // Unique identifier\n        title: json.title,                  // Article headline\n        contentSnippet: contentSnippet,     // Clean summary text\n        pubDate: pubDate,                   // Timestamp\n        source: source                      // Source attribution\n      }\n    });\n  }\n\n  return cleanedItems;"
      },
      "typeVersion": 2
    },
    {
      "id": "ad0208aa-904a-40fa-8f76-bd0f67e705cd",
      "name": "Charger la Configuration depuis Google Drive",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -336,
        384
      ],
      "parameters": {
        "url": "https://drive.usercontent.google.com/download?id=15tO_RUnFTDkANVocx0es7k9PZ-VxFLgc&export=download",
        "options": {
          "response": {
            "response": {
              "responseFormat": "json"
            }
          }
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "c8910a76-d742-44ae-bf4b-50fa3ca4bf44",
      "name": "Réattacher la Configuration",
      "type": "n8n-nodes-base.code",
      "position": [
        1504,
        592
      ],
      "parameters": {
        "jsCode": "// Re-attach config that was stripped by AI Agent\n  const items = $input.all();\n  const results = [];\n\n  for (const item of items) {\n    // Get config from earlier in the flow\n    const config = $('Load Config from Google Drive').first().json;\n\n    results.push({\n      json: {\n        ...item.json,\n        config: config\n      }\n    });\n  }\n\n  return results;"
      },
      "typeVersion": 2
    },
    {
      "id": "81d824f6-74e3-49bf-b460-fa8b700a778f",
      "name": "Note Adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1264,
        64
      ],
      "parameters": {
        "width": 528,
        "height": 768,
        "content": "# Geopolitics Breaking News Alert System\n\n**Smart filtering + AI scoring for cost-efficient geopolitical monitoring**\n\nThis workflow filters 200+ daily articles down to critical breaking news alerts using keyword filtering and AI urgency scoring.\n\n## 🎯 Use Case\nMonitor any geopolitical region (India, China, Middle East, Russia-Ukraine) for breaking news. Smart dual-layer filtering reduces AI costs by 80-90%. AI scores urgency (1-10) to distinguish breaking news from routine coverage. Real-time Telegram alerts for high-priority events only.\n\n## 🔧 How it Works\n1. Schedule Trigger runs every 30min (configurable)\n2. Load Config from Google Drive (keywords, scoring rules)\n3. Fetch RSS from 6 international news sources (~200 articles)\n4. Dynamic Filter applies primary + secondary keyword logic (~5 relevant articles)\n5. Check Duplicates to skip already-analyzed articles\n6. AI Analyzer scores geopolitical urgency (1-10 scale)\n7. Send Telegram Alert for consolidated breaking news (score >= threshold)\n\n**Entire documentation available in [Github Repo](https://github.com/devdutta/n8n-geopolitics-breaking-news-alert/tree/master)**\n#. [N8N Workflow Architecture](https://github.com/devdutta/n8n-geopolitics-breaking-news-alert/blob/master/ARCHITECTURE.md)\n#. [Config Files](https://github.com/devdutta/n8n-geopolitics-breaking-news-alert/tree/master/configs)\n#. [Set Up Guide](https://github.com/devdutta/n8n-geopolitics-breaking-news-alert/blob/master/SETUP_GUIDE.md)\n#. [Different Use Cases](https://github.com/devdutta/n8n-geopolitics-breaking-news-alert/blob/master/USE_CASES.md)"
      },
      "typeVersion": 1
    },
    {
      "id": "43e604e7-36b8-4ef9-a413-d13303419394",
      "name": "Note Adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -688,
        288
      ],
      "parameters": {
        "width": 288,
        "height": 416,
        "content": "## Scheduling Node\ncurrently set at 30 mins interval but change it as per your requirements"
      },
      "typeVersion": 1
    },
    {
      "id": "761c0e99-29a2-42d1-8d77-8b050e2c5438",
      "name": "Note Adhésive2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -384,
        288
      ],
      "parameters": {
        "width": 256,
        "height": 416,
        "content": "## [Loading Config Info.](https://github.com/devdutta/n8n-geopolitics-breaking-news-alert/blob/master/ARCHITECTURE.md)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n[1) Link to different config json files](https://github.com/devdutta/n8n-geopolitics-breaking-news-alert/tree/master/configs)\n[2). Explanation about different config use cases](https://github.com/devdutta/n8n-geopolitics-breaking-news-alert/blob/master/USE_CASES.md)"
      },
      "typeVersion": 1
    },
    {
      "id": "085d279a-499c-4b4a-b1ae-b8dbc6596d21",
      "name": "Note Adhésive3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        224,
        64
      ],
      "parameters": {
        "width": 864,
        "height": 672,
        "content": "## [Pre-Processing Nodes](https://github.com/devdutta/n8n-geopolitics-breaking-news-alert/blob/master/ARCHITECTURE.md)\n1. Merge Data coming from various RSS Feeds\n2. Clean up info. not required for processing\n3. Use the Primary and Secondary Filters from the Load Config File\n4. Check for Duplicate Articles (i.e articles already triggered in previous runs) \n5. Create the Dynamic Prompt Generator for use in Breaking News Analyzer Node\n"
      },
      "typeVersion": 1
    },
    {
      "id": "6a57e769-e103-4da1-bb49-1997b2594334",
      "name": "Note Adhésive4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1104,
        64
      ],
      "parameters": {
        "width": 320,
        "height": 672,
        "content": "## Breaking News Analyzer\n1. Used to [Score Articles](https://github.com/devdutta/n8n-geopolitics-breaking-news-alert/blob/master/USE_CASES.md#customizing-scoring-mechanism) for different Alert Levels via the Dynamic System Prompt Generator using Scoring Rules coming from Config Files\n2. Uses AI Agent with Open AI Chat Model running gpt-4o-mini (with temperature set at 0.3 for consistent results)"
      },
      "typeVersion": 1
    },
    {
      "id": "44db6207-6985-44a7-b86b-4cdfcf267b62",
      "name": "Note Adhésive5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -112,
        64
      ],
      "parameters": {
        "width": 320,
        "height": 960,
        "content": "## Uses 6 RSS News Feeds"
      },
      "typeVersion": 1
    },
    {
      "id": "4e0237b2-ec6b-4494-9b0d-ce3fb7b831d3",
      "name": "Note Adhésive6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1456,
        64
      ],
      "parameters": {
        "width": 752,
        "height": 352,
        "content": "## Data Insertion and Clean Up Nodes\n1. Inserts all articles into the \"analyzed_articles\" n8n Data Table so that duplicate article checks can be done on next runs\n2. Clean Up Node - removes articles from \"analyzed_articles\" N8N Data Table for articles which are more than 7 days old"
      },
      "typeVersion": 1
    },
    {
      "id": "4ac931f5-7399-4b3c-b731-21a42aeaf52f",
      "name": "Note Adhésive7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1456,
        432
      ],
      "parameters": {
        "width": 752,
        "height": 304,
        "content": "## Post-Processing Nodes\n1. Re-attach Config - To bring the \"alert_threshold\" (Scoring Threshold) value from the upstream Config Files\n2. If Node - Only pass the Articles >6 score to the True Branch (alert_threshold is set to 6)\n3. Aggregate Alerts- Aggregates All Alerts passing the threshold\n4. Telegram Message Node - Send the aggregated messages to Telegram Chat Node using the Telegram Chat Id again referenced from the Config Files"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "d1251d3e-6269-4e02-a2cc-2a6322d81169",
  "connections": {
    "5c161610-bfa8-4da1-a82a-23666d185de6": {
      "main": [
        [
          {
            "node": "54527b07-b8c7-4744-80c8-257bad8bafb6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d339eb01-08c7-4d8b-9ed4-bfb88816f915": {
      "main": [
        [
          {
            "node": "1fa522e9-1f26-4b4f-98a6-f9815d31c9e4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "13811cd7-80cb-43cf-a18d-ecebfb56eea9": {
      "main": [
        [
          {
            "node": "d339eb01-08c7-4d8b-9ed4-bfb88816f915",
            "type": "main",
            "index": 3
          }
        ]
      ]
    },
    "46266983-54ba-4977-b6af-dabc6ee1ed4a": {
      "main": [
        [
          {
            "node": "d339eb01-08c7-4d8b-9ed4-bfb88816f915",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "05342734-972c-49d1-82d7-3622f96f42f1": {
      "main": [
        [
          {
            "node": "d339eb01-08c7-4d8b-9ed4-bfb88816f915",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "95b00893-33a7-4b6c-b365-11c317760351": {
      "main": [
        [
          {
            "node": "d339eb01-08c7-4d8b-9ed4-bfb88816f915",
            "type": "main",
            "index": 5
          }
        ]
      ]
    },
    "edda078a-b0be-4ee3-845f-88aa6851416a": {
      "main": [
        [
          {
            "node": "d339eb01-08c7-4d8b-9ed4-bfb88816f915",
            "type": "main",
            "index": 4
          }
        ]
      ]
    },
    "e29a459e-5fbf-4703-bcfc-e389b36d7b89": {
      "main": [
        [
          {
            "node": "393a1952-9bb8-416b-8096-09c8d5b81ff0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "54527b07-b8c7-4744-80c8-257bad8bafb6": {
      "main": [
        [
          {
            "node": "4e7b8918-071d-43da-b39a-68f09d1aa720",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7bc7ba9e-31e0-4196-8d00-9f71ff966444": {
      "main": [
        [
          {
            "node": "ad0208aa-904a-40fa-8f76-bd0f67e705cd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1fa522e9-1f26-4b4f-98a6-f9815d31c9e4": {
      "main": [
        [
          {
            "node": "e29a459e-5fbf-4703-bcfc-e389b36d7b89",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c8910a76-d742-44ae-bf4b-50fa3ca4bf44": {
      "main": [
        [
          {
            "node": "5c161610-bfa8-4da1-a82a-23666d185de6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2fd4e417-8ac3-42eb-9a30-c7b9a1346317": {
      "ai_languageModel": [
        [
          {
            "node": "ba46bf0d-81a8-4ea5-8973-79452159ed0a",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "2f195f01-5e2e-439b-9954-a25f902f399f": {
      "main": [
        [
          {
            "node": "d339eb01-08c7-4d8b-9ed4-bfb88816f915",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "393a1952-9bb8-416b-8096-09c8d5b81ff0": {
      "main": [
        [
          {
            "node": "cd47ab51-4722-497e-874a-7b6f727c0616",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter India Keywords": {
      "main": [
        [
          {
            "node": "393a1952-9bb8-416b-8096-09c8d5b81ff0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ba46bf0d-81a8-4ea5-8973-79452159ed0a": {
      "main": [
        [
          {
            "node": "c8910a76-d742-44ae-bf4b-50fa3ca4bf44",
            "type": "main",
            "index": 0
          },
          {
            "node": "92a6bdd3-bc80-46e7-b0a3-3b806ef3bdc1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "92a6bdd3-bc80-46e7-b0a3-3b806ef3bdc1": {
      "main": [
        [
          {
            "node": "4ff7d6dc-8421-439d-a98a-3e8233dbedd3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "01953c30-52e2-46cd-8255-ec7373d1ff40": {
      "ai_outputParser": [
        [
          {
            "node": "ba46bf0d-81a8-4ea5-8973-79452159ed0a",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "cd47ab51-4722-497e-874a-7b6f727c0616": {
      "main": [
        [
          {
            "node": "ba46bf0d-81a8-4ea5-8973-79452159ed0a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ad0208aa-904a-40fa-8f76-bd0f67e705cd": {
      "main": [
        [
          {
            "node": "46266983-54ba-4977-b6af-dabc6ee1ed4a",
            "type": "main",
            "index": 0
          },
          {
            "node": "05342734-972c-49d1-82d7-3622f96f42f1",
            "type": "main",
            "index": 0
          },
          {
            "node": "2f195f01-5e2e-439b-9954-a25f902f399f",
            "type": "main",
            "index": 0
          },
          {
            "node": "13811cd7-80cb-43cf-a18d-ecebfb56eea9",
            "type": "main",
            "index": 0
          },
          {
            "node": "edda078a-b0be-4ee3-845f-88aa6851416a",
            "type": "main",
            "index": 0
          },
          {
            "node": "95b00893-33a7-4b6c-b365-11c317760351",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

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é - Étude de marché, Résumé IA

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.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds30
Catégorie2
Types de nœuds12
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur
Dev Dutta

Dev Dutta

@devdutta

Data and Product Analytics| Business Intelligence| Data Governance| Tech. Strategy| Driving Digital Transformation Programs| Process Automation | Agentic AI

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34