Collecteur automatique d'actualités → Google Sheets
Ceci est unAI Summarization, Multimodal AIworkflow d'automatisation du domainecontenant 19 nœuds.Utilise principalement des nœuds comme If, Set, Code, Merge, HttpRequest. Collecter et résumer des actualités multilingues avec NewsAPI, OpenAI et Google Sheets
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
- •Informations d'identification Google Sheets API
- •Clé API OpenAI
Nœuds utilisés (19)
Catégorie
{
"id": "5NjNI3YAZnLdY5c7",
"meta": {
"instanceId": "ad59d09d8e026d0e92690243618d86d51b0293b236148394ca356eae1d1ea59b"
},
"name": "News Auto Collector → Google Sheets",
"tags": [],
"nodes": [
{
"id": "9aaf1c30-f25e-4a12-9de8-5fd8b129e707",
"name": "Déclencheur programmé",
"type": "n8n-nodes-base.scheduleTrigger",
"notes": "Runs daily at 13:00. Change schedule here if needed.",
"position": [
-560,
144
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 13
}
]
}
},
"notesInFlow": true,
"typeVersion": 1.2
},
{
"id": "ed496364-3115-46b2-9ef4-b90761a133c3",
"name": "Obtenir les lignes de la feuille",
"type": "n8n-nodes-base.googleSheets",
"notes": "Read keywords from your Google Sheet.\nRequired columns: Keyword, SearchRequired (values: Yes / No).",
"position": [
-336,
144
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "YOUR_INPUT_SHEET_NAME_OR_GID"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_SHEET_ID_HERE"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "1rA9hHryjFoOeyM0",
"name": "Google Sheets account"
}
},
"notesInFlow": true,
"typeVersion": 4.7
},
{
"id": "ab48f5cb-6d00-4129-b4e6-cb62202b4a68",
"name": "Si recherche requise",
"type": "n8n-nodes-base.if",
"notes": "Continue only if SearchRequired === Yes.",
"position": [
-112,
144
],
"parameters": {
"options": {},
"conditions": {
"combinator": "and",
"conditions": [
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json['SearchRequired'] }}",
"rightValue": "Yes"
}
]
}
},
"notesInFlow": true,
"typeVersion": 2.2
},
{
"id": "22d44aea-7fee-4341-9b8c-de5434735c1a",
"name": "HTTP Request (EN)",
"type": "n8n-nodes-base.httpRequest",
"notes": "NewsAPI call (English). Insert your own NewsAPI key in query param `apiKey`.",
"position": [
112,
48
],
"parameters": {
"url": "=https://newsapi.org/v2/everything",
"options": {},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "q",
"value": "={{ $json['Keyword'] }}"
},
{
"name": "language",
"value": "en"
},
{
"name": "pageSize",
"value": "5"
},
{
"name": "apiKey",
"value": "YOUR_API_KEY_HERE"
}
]
}
},
"notesInFlow": true,
"typeVersion": 4.2
},
{
"id": "68ae47ba-bb06-4fac-b6b8-ce1fec4297a6",
"name": "HTTP Request (JP)",
"type": "n8n-nodes-base.httpRequest",
"notes": "NewsAPI call (Japanese sources). Insert your own NewsAPI key in query param `apiKey`.",
"position": [
112,
240
],
"parameters": {
"url": "=https://newsapi.org/v2/everything",
"options": {},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "q",
"value": "={{ $json['Keyword'] }}"
},
{
"name": "domains",
"value": "nhk.or.jp,asahi.com,nikkei.com,news.yahoo.co.jp,itmedia.co.jp,impress.co.jp,ascii.jp,prtimes.jp"
},
{
"name": "sortBy",
"value": "publishedAt"
},
{
"name": "pageSize",
"value": "5"
},
{
"name": "apiKey",
"value": "YOUR_API_KEY_HERE"
}
]
}
},
"notesInFlow": true,
"typeVersion": 4.2
},
{
"id": "b68aa0df-1b9f-407c-941e-421039031439",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
0
],
"parameters": {
"height": 300,
"content": "## Collect both English and Japanese news articles"
},
"typeVersion": 1
},
{
"id": "e3fc1ce3-da2d-4555-bffd-cf1010b815d5",
"name": "Note adhésive1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-640,
32
],
"parameters": {
"height": 240,
"content": "## Runs daily at 13:00 (change in Schedule Trigger)"
},
"typeVersion": 1
},
{
"id": "a17355f0-963d-497e-b4a5-99bb8ef9639d",
"name": "Fusionner les articles",
"type": "n8n-nodes-base.merge",
"notes": "Merge both article streams before summarization.",
"position": [
704,
160
],
"parameters": {},
"notesInFlow": true,
"typeVersion": 3.2
},
{
"id": "92fe30b8-4d8b-4386-9dba-9d76d9415087",
"name": "Résumer avec OpenAI",
"type": "@n8n/n8n-nodes-langchain.openAi",
"notes": "Connect your own OpenAI credentials. Charges apply to your account.",
"position": [
912,
144
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {},
"messages": {
"values": [
{
"role": "system",
"content": "You are an editor summarizing news articles into concise Japanese sentences (~50 characters). No opinions, no emojis."
},
{
"content": "=Summarize the following article (~50 characters in Japanese).\nTitle: {{$json[\"title\"]}}\nContent: {{$json[\"description\"] || $json[\"content\"] || \"No content\"}}"
}
]
}
},
"credentials": {
"openAiApi": {
"id": "xWUO0jq5mcmikNzw",
"name": "OpenAi account"
}
},
"notesInFlow": true,
"typeVersion": 1.8
},
{
"id": "0b666902-6e4d-4f46-b520-33e1c88ad933",
"name": "Ajouter des lignes à la feuille",
"type": "n8n-nodes-base.googleSheets",
"notes": "Append summarized results to your Google Sheet. Set Spreadsheet ID and output sheet name.",
"position": [
1488,
144
],
"parameters": {
"columns": {
"value": {
"URL": "={{ $('Merge Articles').item.json.url }}",
"Date": "={{ $('HTTP Request (EN)').item.json.articles[0].publishedAt }}",
"Keyword": "={{ $('Get rows from sheet').item.json['Keyword'] }}",
"Summary": "={{ $json.summary }}"
},
"mappingMode": "defineBelow"
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "YOUR_OUTPUT_SHEET_NAME_OR_GID"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_SHEET_ID_HERE"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "1rA9hHryjFoOeyM0",
"name": "Google Sheets account"
}
},
"notesInFlow": true,
"typeVersion": 4.7
},
{
"id": "f400b87f-1cfb-4a15-9631-89d585375c3c",
"name": "Diviser les articles (EN)",
"type": "n8n-nodes-base.code",
"position": [
336,
48
],
"parameters": {
"jsCode": "// Flatten articles array so that 1 item = 1 article\nconst arr = $json.articles ?? [];\nreturn arr.map(a => ({ json: a }));"
},
"typeVersion": 2
},
{
"id": "921fc188-9097-48e0-b4fb-c4f2cd6bd7b6",
"name": "Diviser les articles (JP)",
"type": "n8n-nodes-base.code",
"position": [
336,
240
],
"parameters": {
"jsCode": "// Flatten articles array so that 1 item = 1 article\nconst arr = $json.articles ?? [];\nreturn arr.map(a => ({ json: a }));"
},
"typeVersion": 2
},
{
"id": "d2b09870-fe3e-4804-bc50-12b633fc55f9",
"name": "Préparer les champs",
"type": "n8n-nodes-base.set",
"notes": "Prepare fields (Date, Keyword, Summary, URL) for appending to Google Sheets.",
"position": [
1264,
144
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"name": "summary",
"type": "string",
"value": "={{$json[\"message\"]?.[\"content\"]}}"
},
{
"name": "link",
"type": "string",
"value": "={{$node[\"Merge Articles\"].json[\"url\"]}}"
}
]
},
"includeOtherFields": true
},
"notesInFlow": true,
"typeVersion": 3.4
},
{
"id": "ee847bc9-1489-405a-86f6-7616cbd0b31c",
"name": "Note adhésive2",
"type": "n8n-nodes-base.stickyNote",
"position": [
336,
0
],
"parameters": {
"height": 240,
"content": "## 1 item = 1 article"
},
"typeVersion": 1
},
{
"id": "c906f8fa-043f-48f8-881b-36a8f5dde4b0",
"name": "Note adhésive3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-752,
336
],
"parameters": {
"height": 200,
"content": "## Set your own Google Sheet (enter Spreadsheet ID & Sheet name)"
},
"typeVersion": 1
},
{
"id": "3155f915-3ccb-43c4-995b-fb46e49ba915",
"name": "Note adhésive4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-384,
336
],
"parameters": {
"width": 192,
"height": 208,
"content": "Prepare your own Google Spreadsheet with the following structure:\n\nSpreadsheet title (example):\n\"News Auto Collector (Demo)\"\n\nTabs:\n- 01_Input\n Columns: \n - Keyword (enter your search term here)\n - SearchRequired (Yes/No)\n Example rows:\n 1 | (e.g. OpenAI) | Yes\n 2 | (e.g. n8n) | No\n\n- 02_Output\n Columns: Date, Keyword, Summary, URL\n (Initially empty, rows will be appended automatically)"
},
"typeVersion": 1
},
{
"id": "7cba26a3-70b4-429d-a164-b89f2d66c0a6",
"name": "Note adhésive5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-16,
400
],
"parameters": {
"content": "## Insert your NewsAPI key here"
},
"typeVersion": 1
},
{
"id": "d3b0b79b-0387-4e5a-81d1-964342358d9a",
"name": "Note adhésive6",
"type": "n8n-nodes-base.stickyNote",
"position": [
896,
368
],
"parameters": {
"width": 272,
"height": 176,
"content": "## Connect your own OpenAI account here (or deactivate this node if not needed)"
},
"typeVersion": 1
},
{
"id": "340bc3d3-c75f-4f60-bbf1-bdde0a0f5722",
"name": "Note adhésive7",
"type": "n8n-nodes-base.stickyNote",
"position": [
1424,
352
],
"parameters": {
"width": 272,
"content": "## Output sheet must have columns: Date, Keyword, Summary, URL (empty at first)"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "7e465735-af5e-4ee3-acf1-8e61d9418420",
"connections": {
"a17355f0-963d-497e-b4a5-99bb8ef9639d": {
"main": [
[
{
"node": "92fe30b8-4d8b-4386-9dba-9d76d9415087",
"type": "main",
"index": 0
}
]
]
},
"d2b09870-fe3e-4804-bc50-12b633fc55f9": {
"main": [
[
{
"node": "0b666902-6e4d-4f46-b520-33e1c88ad933",
"type": "main",
"index": 0
}
]
]
},
"9aaf1c30-f25e-4a12-9de8-5fd8b129e707": {
"main": [
[
{
"node": "ed496364-3115-46b2-9ef4-b90761a133c3",
"type": "main",
"index": 0
}
]
]
},
"22d44aea-7fee-4341-9b8c-de5434735c1a": {
"main": [
[
{
"node": "f400b87f-1cfb-4a15-9631-89d585375c3c",
"type": "main",
"index": 0
}
]
]
},
"68ae47ba-bb06-4fac-b6b8-ce1fec4297a6": {
"main": [
[
{
"node": "921fc188-9097-48e0-b4fb-c4f2cd6bd7b6",
"type": "main",
"index": 0
}
]
]
},
"ab48f5cb-6d00-4129-b4e6-cb62202b4a68": {
"main": [
[
{
"node": "22d44aea-7fee-4341-9b8c-de5434735c1a",
"type": "main",
"index": 0
},
{
"node": "68ae47ba-bb06-4fac-b6b8-ce1fec4297a6",
"type": "main",
"index": 0
}
]
]
},
"ed496364-3115-46b2-9ef4-b90761a133c3": {
"main": [
[
{
"node": "ab48f5cb-6d00-4129-b4e6-cb62202b4a68",
"type": "main",
"index": 0
}
]
]
},
"f400b87f-1cfb-4a15-9631-89d585375c3c": {
"main": [
[
{
"node": "a17355f0-963d-497e-b4a5-99bb8ef9639d",
"type": "main",
"index": 0
}
]
]
},
"921fc188-9097-48e0-b4fb-c4f2cd6bd7b6": {
"main": [
[
{
"node": "a17355f0-963d-497e-b4a5-99bb8ef9639d",
"type": "main",
"index": 1
}
]
]
},
"92fe30b8-4d8b-4386-9dba-9d76d9415087": {
"main": [
[
{
"node": "d2b09870-fe3e-4804-bc50-12b633fc55f9",
"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é - 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
Supira Inc.
@supiraPartager ce workflow