KI-basiertes News-Monitoring (Linkup, Airtable, Slack-Benachrichtigungen)

Experte

Dies ist ein Market Research, AI Summarization-Bereich Automatisierungsworkflow mit 16 Nodes. Hauptsächlich werden Set, Wait, Slack, Airtable, SplitOut und andere Nodes verwendet. KI-gestützte News-Überwachung (Linkup, Airtable und Slack-Benachrichtigungen)

Voraussetzungen
  • Slack Bot Token oder Webhook URL
  • Airtable API Key
  • Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "nodes": [
    {
      "id": "bf4f2727-7759-455b-a6a1-4b175e0626b2",
      "name": "Elemente durchlaufen",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -160,
        272
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "7ac9b3b7-d793-4b5b-9918-ccec99f52860",
      "name": "Warten",
      "type": "n8n-nodes-base.wait",
      "position": [
        528,
        688
      ],
      "webhookId": "37096805-17ce-43b0-8818-ddea6494fcaf",
      "parameters": {
        "amount": 2
      },
      "typeVersion": 1.1
    },
    {
      "id": "f4746549-88aa-405e-82e2-027b010ef491",
      "name": "Zeitplan-Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -1072,
        272
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "daysInterval": 7,
              "triggerAtHour": 17,
              "triggerAtMinute": 30
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "1b1443b3-cd20-438a-b6e3-5da5962a03fe",
      "name": "Linkup nach News abfragen",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -608,
        272
      ],
      "parameters": {
        "url": "https://api.linkup.so/v1/search",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "q",
              "value": "=Find news related to \"{{ $json['News topic(s)'] }}\".\nOnly pick news, no opinion or evergreen articles.\nIdeally between 10 and 15 news."
            },
            {
              "name": "depth",
              "value": "standard"
            },
            {
              "name": "outputType",
              "value": "structured"
            },
            {
              "name": "structuredOutputSchema",
              "value": "={\n    \"type\": \"object\",\n    \"properties\": {\n        \"news\": {\n            \"type\": \"array\",\n            \"description\": \"A list of news articles\",\n            \"items\": {\n                \"type\": \"object\",\n                \"properties\": {\n                    \"title\": {\n                        \"type\": \"string\",\n                        \"description\": \"Title of the news article\"\n                    },\n                    \"url\": {\n                        \"type\": \"string\",\n                        \"description\": \"URL of the news article\"\n                    },\n                    \"content\": {\n                        \"type\": \"string\",\n                        \"description\": \"A summary of the news in a few sentences\"\n                    },\n                    \"date\": {\n                        \"type\": \"string\",\n                        \"format\": \"date-time\",\n                        \"description\": \"Publication date of the news article in ISO 8601 format (e.g., 2025-07-18T14:30:00Z) - really extract the publication date of the article, not a specific date mentioned in the news content\"\n                    }\n                },\n                \"required\": [\"title\", \"url\", \"content\", \"date\"]\n            }\n        }\n    },\n    \"required\": [\"news\"]\n}"
            },
            {
              "name": "fromDate",
              "value": "={{ \n  $now\n    .minus($json['News from last x days'], 'days')\n    .startOf('day')\n    .toISO()\n}}"
            },
            {
              "name": "includeImages",
              "value": "false"
            }
          ]
        },
        "genericAuthType": "httpBearerAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "id": "W7AgeoVOv60DlvyS",
          "name": "Linkup - web search AI"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "6fe2c597-8212-47f4-b208-ff41889b93ae",
      "name": "News-Parameter setzen",
      "type": "n8n-nodes-base.set",
      "position": [
        -832,
        272
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "8a140389-83bd-4b60-9b16-07bf8a7d8511",
              "name": "News topic(s)",
              "type": "string",
              "value": "=decarbonisation, net-zero and corporate sustainability"
            },
            {
              "id": "1dbad32c-de95-4c01-9edf-1c8118c07778",
              "name": "News from last x days",
              "type": "number",
              "value": 7
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "a5e80f86-317a-42c8-b3cd-6272e3e23739",
      "name": "Eine News speichern",
      "type": "n8n-nodes-base.airtable",
      "position": [
        160,
        304
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "app5DnGDQDIE9YZkV",
          "cachedResultUrl": "https://airtable.com/app5DnGDQDIE9YZkV",
          "cachedResultName": "News monitoring (N8N template)"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblzZNOaLwby3lV5S",
          "cachedResultUrl": "https://airtable.com/app5DnGDQDIE9YZkV/tblzZNOaLwby3lV5S",
          "cachedResultName": "News"
        },
        "columns": {
          "value": {
            "URL": "={{ $json.url }}",
            "Date": "={{ $json.date }}",
            "Title": "={{ $json.title }}",
            "Status": "new",
            "Summary": "={{ $json.content }}"
          },
          "schema": [
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Date",
              "type": "dateTime",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Summary",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "new",
                  "value": "new"
                },
                {
                  "name": "reviewed",
                  "value": "reviewed"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {
          "typecast": true
        },
        "operation": "create"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "xSf8osMIdIhLSt91",
          "name": "Duv Airtable"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "c951dc15-33db-4416-94ac-937cc701ca00",
      "name": "In Slack benachrichtigen",
      "type": "n8n-nodes-base.slack",
      "position": [
        448,
        -32
      ],
      "webhookId": "99313eea-8dd4-4c94-8a01-369fa3b4f94b",
      "parameters": {
        "text": "=The News of the past {{ $('Set news parameters').item.json['News from last x days'] }} days are ready for review!\n\n{{ $json.data.length }} news were found!",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "C025KLW3MQS",
          "cachedResultName": "général"
        },
        "otherOptions": {
          "includeLinkToWorkflow": false
        }
      },
      "credentials": {
        "slackApi": {
          "id": "EkDmLiXskPXRqVW4",
          "name": "Slack account"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "f3756483-bc07-4ed8-b605-b0a29552cd13",
      "name": "In 1 Element aggregieren",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        160,
        -32
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "5edfe681-f14b-4498-96c7-50107637e674",
      "name": "News aufteilen",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -384,
        272
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "news"
      },
      "typeVersion": 1
    },
    {
      "id": "16bda7f5-d7bc-4ac1-886b-9b405a33a627",
      "name": "Haftnotiz",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1696,
        96
      ],
      "parameters": {
        "width": 512,
        "height": 608,
        "content": "## **Automated News Monitoring System**\n\nThis workflow automatically finds recent news articles about topics you define, saves them to Airtable, and notifies you on Slack.\n\n### **How it works**\n\n1.  Runs on a schedule you set.\n2.  Uses **Linkup's AI** to search the web for news on your topics.\n3.  Extracts the **title, summary, date, and URL** for each article.\n4.  Saves each article as a new record in **Airtable**.\n5.  Sends a **Slack notification** when the process is complete.\n\n### **How to use**\n\n1.  **Set your schedule:** Configure the **Schedule Trigger** to run when you want. Default is every 7 days.\n2.  **Define your topics:** In the **Set news parameters** node, enter the keywords you want to monitor.\n3.  **Connect your accounts:**\n    * Add your **Linkup API key** to the \"Query Linkup for news\" node.\n    * Connect your **Airtable** account in the \"Store one news\" node.\n    * Connect your **Slack** account in the \"Notify in Slack\" node.\n4.  **Activate the workflow.** Your news digest is now automated!"
      },
      "typeVersion": 1
    },
    {
      "id": "eafe476f-8052-4e37-953c-dd1984a5066f",
      "name": "Haftnotiz1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -880,
        432
      ],
      "parameters": {
        "color": 7,
        "width": 192,
        "height": 288,
        "content": "### Edit this node to set the topic and freshness\n\n* In **News topic(s)**, write the specific keywords you'd like to find news about.\n* In **News from last x days**, set the same number of days as your schedule trigger"
      },
      "typeVersion": 1
    },
    {
      "id": "294dcd45-2719-4429-886b-8623c7084d5f",
      "name": "Haftnotiz2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -656,
        432
      ],
      "parameters": {
        "color": 7,
        "width": 192,
        "height": 144,
        "content": "### Connect your Linkup credential\n\nGet a free API key at: https://www.linkup.so/"
      },
      "typeVersion": 1
    },
    {
      "id": "f9bab16a-ce44-4a4b-aaa2-1ec8796e73c7",
      "name": "Haftnotiz3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        112,
        464
      ],
      "parameters": {
        "color": 7,
        "width": 192,
        "height": 272,
        "content": "### Connect your Airtable credential\n\nCreate a table that contains the fields:\n- Title\n- Date\n- Summary\n- URL\n- Status\nWhere the news will be stored\n"
      },
      "typeVersion": 1
    },
    {
      "id": "9aa4a05c-0e7f-4a89-b0d0-fb11365be5f9",
      "name": "Haftnotiz4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        528,
        544
      ],
      "parameters": {
        "color": 7,
        "width": 192,
        "height": 128,
        "content": "### We pause for a bit to let the Airtable API breathe... and avoid hitting rate limits per second!"
      },
      "typeVersion": 1
    },
    {
      "id": "da0eeb66-2d6d-41e9-a833-339c3d18c5b6",
      "name": "Haftnotiz5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        384,
        128
      ],
      "parameters": {
        "color": 7,
        "width": 192,
        "height": 128,
        "content": "### Connect the Slack channel where you'd like to receive the notification once it's ready!"
      },
      "typeVersion": 1
    },
    {
      "id": "bece4bad-fee2-472a-972d-27d12a690b89",
      "name": "Haftnotiz6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1120,
        432
      ],
      "parameters": {
        "color": 7,
        "width": 192,
        "height": 144,
        "content": "### Set the schedule frequence that you like!"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {
    "Schedule Trigger": [
      {
        "Hour": "05",
        "Year": "2025",
        "Month": "July",
        "Minute": "20",
        "Second": "28",
        "Timezone": "America/New_York (UTC-04:00)",
        "timestamp": "2025-07-18T05:20:28.857-04:00",
        "Day of week": "Friday",
        "Day of month": "18",
        "Readable date": "July 18th 2025, 5:20:28 am",
        "Readable time": "5:20:28 am"
      }
    ]
  },
  "connections": {
    "7ac9b3b7-d793-4b5b-9918-ccec99f52860": {
      "main": [
        [
          {
            "node": "bf4f2727-7759-455b-a6a1-4b175e0626b2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5edfe681-f14b-4498-96c7-50107637e674": {
      "main": [
        [
          {
            "node": "bf4f2727-7759-455b-a6a1-4b175e0626b2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a5e80f86-317a-42c8-b3cd-6272e3e23739": {
      "main": [
        [
          {
            "node": "7ac9b3b7-d793-4b5b-9918-ccec99f52860",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bf4f2727-7759-455b-a6a1-4b175e0626b2": {
      "main": [
        [
          {
            "node": "f3756483-bc07-4ed8-b605-b0a29552cd13",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "a5e80f86-317a-42c8-b3cd-6272e3e23739",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f4746549-88aa-405e-82e2-027b010ef491": {
      "main": [
        [
          {
            "node": "6fe2c597-8212-47f4-b208-ff41889b93ae",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f3756483-bc07-4ed8-b605-b0a29552cd13": {
      "main": [
        [
          {
            "node": "c951dc15-33db-4416-94ac-937cc701ca00",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6fe2c597-8212-47f4-b208-ff41889b93ae": {
      "main": [
        [
          {
            "node": "1b1443b3-cd20-438a-b6e3-5da5962a03fe",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1b1443b3-cd20-438a-b6e3-5da5962a03fe": {
      "main": [
        [
          {
            "node": "5edfe681-f14b-4498-96c7-50107637e674",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

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 - Marktforschung, KI-Zusammenfassung

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.

Workflow-Informationen
Schwierigkeitsgrad
Experte
Anzahl der Nodes16
Kategorie2
Node-Typen10
Schwierigkeitsbeschreibung

Für fortgeschrittene Benutzer, komplexe Workflows mit 16+ Nodes

Autor
Guillaume Duvernay

Guillaume Duvernay

@duv

AI and automation expert

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34