Collecteur automatique d'actualités → Google Sheets

Avancé

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

Prérequis
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
  • Informations d'identification Google Sheets API
  • 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": "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
          }
        ]
      ]
    }
  }
}
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é - 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.

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

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

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34