Surveillance de l'actualité par IA (Linkup, Airtable et notifications Slack)

Avancé

Ceci est unMarket Research, AI Summarizationworkflow d'automatisation du domainecontenant 16 nœuds.Utilise principalement des nœuds comme Set, Wait, Slack, Airtable, SplitOut. Surveillance de l'actualité basée sur l'IA (Linkup, Airtable et notifications Slack)

Prérequis
  • Token Bot Slack ou URL Webhook
  • Clé API Airtable
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
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
{
  "nodes": [
    {
      "id": "bf4f2727-7759-455b-a6a1-4b175e0626b2",
      "name": "Boucler sur les éléments",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -160,
        272
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "7ac9b3b7-d793-4b5b-9918-ccec99f52860",
      "name": "Attendre",
      "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": "Déclencheur programmé",
      "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": "Interroger Linkup pour l'actualité",
      "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": "Définir les paramètres d'actualité",
      "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": "Stocker une actualité",
      "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": "Notifier dans Slack",
      "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": "Agréger en 1 élément",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        160,
        -32
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "5edfe681-f14b-4498-96c7-50107637e674",
      "name": "Séparer les actualités",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -384,
        272
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "news"
      },
      "typeVersion": 1
    },
    {
      "id": "16bda7f5-d7bc-4ac1-886b-9b405a33a627",
      "name": "Note autocollante",
      "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": "Note autocollante 1",
      "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": "Note autocollante 2",
      "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": "Note autocollante 3",
      "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": "Note autocollante 4",
      "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": "Note autocollante 5",
      "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": "Note autocollante 6",
      "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
          }
        ]
      ]
    }
  }
}
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.

Workflows recommandés

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

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

Auteur
Guillaume Duvernay

Guillaume Duvernay

@duv

AI and automation expert

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34