Bright Data Keyword-E-Mail-Newsletter mit KI-Zusammenfassung
Dies ist ein AI, Marketing-Bereich Automatisierungsworkflow mit 13 Nodes. Hauptsächlich werden If, Code, Wait, Markdown, EmailSend und andere Nodes verwendet, kombiniert mit KI-Technologie für intelligente Automatisierung. Bright Data-Keywords-E-Mail-Newsletter mit KI-Zusammenfassung
- •Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
- •Google Gemini API Key
Verwendete Nodes (13)
Kategorie
{
"meta": {
"instanceId": "71eb5622cf8abac565805540c0900dbae437dddbda45bf1b87bf3bfeea26393c"
},
"nodes": [
{
"id": "78600483-749e-452c-a1e0-cde275f2656c",
"name": "Snapshot-Fortschritt",
"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 Request - POST API Aufruf an 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": "Warten - Abfrage von 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": "If - Prüfung des Snapshot-Status - ob Daten bereit sind oder nicht",
"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 Request - Daten von Bright Data abrufen",
"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": "Wenn Benutzer Formular abschließt",
"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": "Haftnotiz",
"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 - JSON Daten parsen und bereinigen",
"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 Chat Model",
"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": "E-Mail-Bericht",
"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 - HTML erstellen",
"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 - Zusammenfassungsanalyse",
"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
}
]
]
}
}
}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?
Fortgeschritten - Künstliche Intelligenz, Marketing
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.
Verwandte Workflows
Gleb D
@glebdDiesen Workflow teilen