Bulletin d'actualités par mots-clés Bright Data avec résumé IA
Ceci est unAI, Marketingworkflow d'automatisation du domainecontenant 13 nœuds.Utilise principalement des nœuds comme If, Code, Wait, Markdown, EmailSend, combinant la technologie d'intelligence artificielle pour une automatisation intelligente. Bulletin de nouvelles par mots-clés et résumé IA pour les courriels avec Bright Data
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
- •Clé API Google Gemini
Nœuds utilisés (13)
Catégorie
{
"meta": {
"instanceId": "71eb5622cf8abac565805540c0900dbae437dddbda45bf1b87bf3bfeea26393c"
},
"nodes": [
{
"id": "78600483-749e-452c-a1e0-cde275f2656c",
"name": "Progression de l'instantané",
"type": "n8n-nodes-base.httpRequest",
"position": [
220,
0
],
"parameters": {
"url": "=https://api.brightdata.com/datasets/v3/progress/{{ $('HTTP Request- Post API call to Bright Data').item.json.snapshot_id }}",
"options": {},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer YOUR_API_KEY"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "2dbd6ad2-bcd7-4753-a150-6a4bff419d76",
"name": "HTTP Requête - Appel POST API vers Bright Data",
"type": "n8n-nodes-base.httpRequest",
"position": [
-280,
260
],
"parameters": {
"url": "https://api.brightdata.com/datasets/v3/trigger",
"method": "POST",
"options": {},
"sendBody": true,
"sendQuery": true,
"sendHeaders": true,
"bodyParameters": {
"parameters": [
{
"name": "keyword",
"value": "={{ $json[\"Keyword\"] }}"
},
{
"name": "sort",
"value": "relevance"
}
]
},
"queryParameters": {
"parameters": [
{
"name": "dataset_id",
"value": "gd_lyptx9h74wtlvpnfu"
},
{
"name": "type",
"value": "discover_new"
},
{
"name": "discover_by",
"value": "keyword"
},
{
"name": "include_errors",
"value": "true"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer YOUR_API_KEY"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "dfd7a841-be32-4ea4-954c-95e24b6bb46a",
"name": "Attente - Interrogation de Bright Data",
"type": "n8n-nodes-base.wait",
"position": [
0,
0
],
"webhookId": "8005a2b3-2195-479e-badb-d90e4240e699",
"parameters": {
"amount": 15
},
"executeOnce": false,
"typeVersion": 1.1
},
{
"id": "f9f032aa-5128-4705-94ab-af93965159fb",
"name": "Condition - Vérification du statut de l'instantané - si les données sont prêtes ou non",
"type": "n8n-nodes-base.if",
"position": [
440,
0
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "7932282b-71bb-4bbb-ab73-4978e554de7e",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "running"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "e5b658cd-c7df-4b17-ac1d-378cd58a1197",
"name": "HTTP Requête - Récupération des données depuis Bright Data",
"type": "n8n-nodes-base.httpRequest",
"position": [
660,
0
],
"parameters": {
"url": "=https://api.brightdata.com/datasets/v3/snapshot/{{ $json.snapshot_id }}",
"options": {},
"sendQuery": true,
"sendHeaders": true,
"queryParameters": {
"parameters": [
{
"name": "format",
"value": "json"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer YOUR_API_KEY"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "d2aa4201-f58c-4d63-81ae-ebb721297c31",
"name": "Quand l'utilisateur remplit le formulaire",
"type": "n8n-nodes-base.formTrigger",
"position": [
-500,
260
],
"webhookId": "41d0bffa-f5ca-4df7-b757-ca5a1e472b8a",
"parameters": {
"options": {
"ignoreBots": true
},
"formTitle": "Search from Reuters by keyword",
"formFields": {
"values": [
{
"fieldLabel": "Keyword",
"placeholder": "e.g. \"energy shutdown\"",
"requiredField": true
}
]
},
"responseMode": "lastNode",
"formDescription": "Provide a keyword to search and summarize relevant news"
},
"typeVersion": 2.2
},
{
"id": "f45da408-0497-45ad-ace6-bef91660f8b3",
"name": "Note autocollante",
"type": "n8n-nodes-base.stickyNote",
"position": [
-340,
440
],
"parameters": {
"height": 220,
"content": "## Note\nYou can customize the sorting filter to \"newest\" or \"oldest\" if you prefer. However, it's recommended to keep it set to \"relevance\" - the results will be sorted by the most recent founding dates in the next steps anyway."
},
"typeVersion": 1
},
{
"id": "9038d986-d23a-4f83-87c0-9ce213aa7021",
"name": "Code - Analyser et nettoyer les données JSON",
"type": "n8n-nodes-base.code",
"position": [
880,
0
],
"parameters": {
"language": "python",
"pythonCode": "from datetime import datetime\n\nall_news = _input.all()\n\nvalid_news = []\nfor item in all_news:\n news = item.json\n date_str = news.get(\"publication_date\")\n try:\n date = datetime.strptime(date_str, \"%Y-%m-%dT%H:%M:%S.%fZ\")\n valid_news.append((date, news))\n except (TypeError, ValueError):\n continue\n\nsorted_news = sorted(valid_news, key=lambda x: x[0], reverse=True)\n\ncleaned = []\nfor _, c in sorted_news[:10]:\n topics = c.get(\"topics\") or []\n\n cleaned.append({\n \"headline\": c.get(\"headline\"),\n \"url\": c.get(\"url\"),\n \"author\": c.get(\"author\"),\n \"publication_date\": c.get(\"publication_date\"),\n \"type\": c.get(\"type\"),\n \"content\": c.get(\"content\"),\n \"keyword\": c.get(\"keyword\"),\n \"topics\": \", \".join(topics)\n })\n\nreturn [{\n \"json\": {\n \"news\": cleaned\n }\n}]\n"
},
"typeVersion": 2,
"alwaysOutputData": true
},
{
"id": "21f43041-f540-4158-a23d-648921ac3cac",
"name": "Google Gemini Modèle de chat",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
660,
440
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.0-flash"
},
"typeVersion": 1
},
{
"id": "90b674c1-c8f4-4256-b27c-999ea1d93ee6",
"name": "Rapport par e-mail",
"type": "n8n-nodes-base.emailSend",
"position": [
1480,
260
],
"webhookId": "1e6e9588-2bc6-4f05-8531-2d7ca8348d0c",
"parameters": {
"html": "={{ $json.html }}",
"options": {},
"subject": "=Your N8N report about Reuters News by keyword: {{ $('When User Completes Form').first().json['Keyword']}}",
"toEmail": "your-mail@gmail.com",
"fromEmail": "n8n-mail@example.com"
},
"typeVersion": 2.1
},
{
"id": "53fc100e-a4ee-4d91-9b75-af96b6ba0fcd",
"name": "Markdown",
"type": "n8n-nodes-base.markdown",
"position": [
1040,
260
],
"parameters": {
"mode": "markdownToHtml",
"options": {},
"markdown": "={{ $json.text }}",
"destinationKey": "html"
},
"typeVersion": 1
},
{
"id": "ba02c4c2-5b52-409b-9d83-d69ab9d762fd",
"name": "Code - Construire le HTML",
"type": "n8n-nodes-base.code",
"position": [
1260,
260
],
"parameters": {
"jsCode": "const rawHtml = $json.html;\n\nreturn [{\n json: {\n html: `\n <html>\n <head>\n <style>\n body { font-family: Arial, sans-serif; line-height: 1.5; font-size: 15px; }\n h1, h2, h3 { color: #333; }\n a { color: #1a73e8; text-decoration: none; }\n ul { padding-left: 20px; }\n li { margin-bottom: 6px; }\n </style>\n </head>\n <body>\n ${rawHtml}\n </body>\n </html>\n `\n }\n}];"
},
"typeVersion": 2
},
{
"id": "a3241735-79ca-49ca-aebb-8b17b3ef9ad4",
"name": "Google Gemini - Analyse de résumé",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
660,
260
],
"parameters": {
"text": "={{$json}}",
"messages": {
"messageValues": [
{
"message": "=You are tasked with creating a news briefing. I will supply latest news articles about [keyword] which is interesting to user.\n\nYour goal is to produce a consolidated summary that captures the essence of these reports. Focus on:\n- What are the most important events, announcements, or findings?\n- Are there any recurring themes or common threads across the articles?\n- What is the overall sentiment or implication, if discernible from the facts presented?\n\nBe sure that every news article you are analyzing is closely related to [keyword]. Otherwise, skip it.\nProvide a brief, integrated summary.\nAlways include date range (from - to) about these news and use source links when mention exact news topics.\nThe [keyword] user requested initially: {{ $('When User Completes Form').first().json['Keyword']}}.\nDon't start your answer with 'Okay'."
}
]
},
"promptType": "define"
},
"typeVersion": 1.6
}
],
"pinData": {},
"connections": {
"53fc100e-a4ee-4d91-9b75-af96b6ba0fcd": {
"main": [
[
{
"node": "ba02c4c2-5b52-409b-9d83-d69ab9d762fd",
"type": "main",
"index": 0
}
]
]
},
"ba02c4c2-5b52-409b-9d83-d69ab9d762fd": {
"main": [
[
{
"node": "90b674c1-c8f4-4256-b27c-999ea1d93ee6",
"type": "main",
"index": 0
}
]
]
},
"78600483-749e-452c-a1e0-cde275f2656c": {
"main": [
[
{
"node": "f9f032aa-5128-4705-94ab-af93965159fb",
"type": "main",
"index": 0
}
]
]
},
"21f43041-f540-4158-a23d-648921ac3cac": {
"ai_languageModel": [
[
{
"node": "a3241735-79ca-49ca-aebb-8b17b3ef9ad4",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"d2aa4201-f58c-4d63-81ae-ebb721297c31": {
"main": [
[
{
"node": "2dbd6ad2-bcd7-4753-a150-6a4bff419d76",
"type": "main",
"index": 0
}
]
]
},
"dfd7a841-be32-4ea4-954c-95e24b6bb46a": {
"main": [
[
{
"node": "78600483-749e-452c-a1e0-cde275f2656c",
"type": "main",
"index": 0
}
]
]
},
"9038d986-d23a-4f83-87c0-9ce213aa7021": {
"main": [
[
{
"node": "a3241735-79ca-49ca-aebb-8b17b3ef9ad4",
"type": "main",
"index": 0
}
]
]
},
"a3241735-79ca-49ca-aebb-8b17b3ef9ad4": {
"main": [
[
{
"node": "53fc100e-a4ee-4d91-9b75-af96b6ba0fcd",
"type": "main",
"index": 0
}
]
]
},
"2dbd6ad2-bcd7-4753-a150-6a4bff419d76": {
"main": [
[
{
"node": "dfd7a841-be32-4ea4-954c-95e24b6bb46a",
"type": "main",
"index": 0
}
]
]
},
"e5b658cd-c7df-4b17-ac1d-378cd58a1197": {
"main": [
[
{
"node": "9038d986-d23a-4f83-87c0-9ce213aa7021",
"type": "main",
"index": 0
}
]
]
},
"f9f032aa-5128-4705-94ab-af93965159fb": {
"main": [
[
{
"node": "dfd7a841-be32-4ea4-954c-95e24b6bb46a",
"type": "main",
"index": 0
}
],
[
{
"node": "e5b658cd-c7df-4b17-ac1d-378cd58a1197",
"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é ?
Intermédiaire - Intelligence Artificielle, Marketing
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
Gleb D
@glebdPartager ce workflow