Automatisierte Reddit-Markenüberwachung und -antwort mit GPT-4o-mini, Tabellen und Slack
Dies ist ein Social Media, Multimodal AI-Bereich Automatisierungsworkflow mit 20 Nodes. Hauptsächlich werden If, Code, Slack, Reddit, GoogleSheets und andere Nodes verwendet. Automatisierung der Reddit-Markenüberwachung und -Antworten mit GPT-4o-mini, Tabellen und Slack
- •Slack Bot Token oder Webhook URL
- •Google Sheets API-Anmeldedaten
- •OpenAI API Key
Verwendete Nodes (20)
Kategorie
{
"meta": {
"instanceId": "db30e8ae4100235addbd4638770997b7ef11878d049073c888ba440ca84c55fc"
},
"nodes": [
{
"id": "947d8563-99c3-40bb-9fef-13f482cb8567",
"name": "Tägliche Marketing-Prüfung",
"type": "n8n-nodes-base.scheduleTrigger",
"notes": "Runs every 24 hours to scan Reddit for brand mentions and engagement opportunities",
"position": [
-1456,
32
],
"parameters": {
"rule": {
"interval": [
{
"field": "hours",
"hoursInterval": 24
}
]
}
},
"typeVersion": 1.2
},
{
"id": "70d74090-8308-4ff8-995a-afa2b3e53448",
"name": "Markenerwähnungen suchen",
"type": "n8n-nodes-base.reddit",
"notes": "Searches Reddit for posts mentioning your brand, products, or relevant keywords",
"position": [
-1008,
32
],
"parameters": {
"limit": 50,
"keyword": "={{ $json.brandKeyword }}",
"location": "allReddit",
"operation": "search",
"additionalFields": {
"sort": "new"
}
},
"typeVersion": 1
},
{
"id": "958f4ae4-caf9-46ee-9ab5-e7a5f7cf9da9",
"name": "Marken-Keywords Konfiguration",
"type": "n8n-nodes-base.code",
"notes": "Configure your brand name and relevant keywords to monitor",
"position": [
-1232,
32
],
"parameters": {
"jsCode": "// Configure your brand monitoring keywords\nconst brandKeywords = [\n \"YourBrandName\",\n \"your-product-name\",\n \"industry-keyword\"\n];\n\n// Return array of keywords to search\nreturn brandKeywords.map(keyword => ({\n json: {\n brandKeyword: keyword\n }\n}));"
},
"typeVersion": 2
},
{
"id": "f9fda183-58fe-4b81-a7b3-7ddecaba3ba7",
"name": "KI-Beitragsanalyse",
"type": "@n8n/n8n-nodes-langchain.openAi",
"notes": "Uses AI to analyze sentiment, relevance, and generate contextual responses",
"position": [
-800,
32
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": ""
},
"options": {
"temperature": 0.7
},
"messages": {
"values": [
{}
]
}
},
"typeVersion": 1.4
},
{
"id": "95982fd8-f412-475e-b4a5-6aaa69ec3b58",
"name": "Interessante Beiträge filtern",
"type": "n8n-nodes-base.if",
"notes": "Only engages with posts that are relevant, high-quality, and appropriate",
"position": [
-576,
32
],
"parameters": {
"options": {},
"conditions": {
"options": {
"combineOperation": "all"
},
"conditions": [
{
"id": "condition-relevant",
"operator": {
"type": "boolean",
"operation": "true"
},
"leftValue": "={{ $json.isRelevant }}",
"rightValue": true
},
{
"id": "condition-score",
"operator": {
"type": "number",
"operation": "gt"
},
"leftValue": "={{ $json.engagementScore }}",
"rightValue": 60
},
{
"id": "condition-type",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $json.responseType }}",
"rightValue": "pass"
}
]
}
},
"typeVersion": 2
},
{
"id": "71b6a70e-fe6a-4f6e-a5c9-c90181696e56",
"name": "Durch Beiträge schleifen",
"type": "n8n-nodes-base.splitInBatches",
"notes": "Process each post one at a time to avoid rate limits",
"position": [
-352,
-48
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "1e154007-38ff-4201-8576-972c99bb9197",
"name": "Hilfreichen Kommentar posten",
"type": "n8n-nodes-base.reddit",
"notes": "Posts AI-generated helpful comment to engage with the community",
"position": [
-128,
-48
],
"parameters": {
"postId": "={{ $('Search Brand Mentions').item.json.data.id }}",
"resource": "postComment",
"commentText": "={{ $('AI Post Analysis').item.json.suggestedResponse }}"
},
"typeVersion": 1
},
{
"id": "dcfe45e5-64ec-4d91-abd2-3472b45fb4dc",
"name": "In Google Sheets protokollieren",
"type": "n8n-nodes-base.googleSheets",
"notes": "Tracks all Reddit interactions in a Google Sheet for analysis",
"position": [
96,
-48
],
"parameters": {
"columns": {
"value": {
"postId": "={{ $('Search Brand Mentions').item.json.data.id }}",
"postUrl": "=https://reddit.com{{ $('Search Brand Mentions').item.json.data.permalink }}",
"postTitle": "={{ $('Search Brand Mentions').item.json.data.title }}",
"reasoning": "={{ $('AI Post Analysis').item.json.reasoning }}",
"sentiment": "={{ $('AI Post Analysis').item.json.sentiment }}",
"subreddit": "={{ $('Search Brand Mentions').item.json.data.subreddit }}",
"timestamp": "={{ $now.toISO() }}",
"responseType": "={{ $('AI Post Analysis').item.json.responseType }}",
"commentPosted": "={{ $json.success ? 'Yes' : 'Failed' }}",
"engagementScore": "={{ $('AI Post Analysis').item.json.engagementScore }}"
},
"schema": [
{
"id": "timestamp",
"type": "string",
"display": true,
"required": false,
"displayName": "timestamp",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "postId",
"type": "string",
"display": true,
"required": false,
"displayName": "postId",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "postTitle",
"type": "string",
"display": true,
"required": false,
"displayName": "postTitle",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "subreddit",
"type": "string",
"display": true,
"required": false,
"displayName": "subreddit",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "postUrl",
"type": "string",
"display": true,
"required": false,
"displayName": "postUrl",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "sentiment",
"type": "string",
"display": true,
"required": false,
"displayName": "sentiment",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "engagementScore",
"type": "number",
"display": true,
"required": false,
"displayName": "engagementScore",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "responseType",
"type": "string",
"display": true,
"required": false,
"displayName": "responseType",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "commentPosted",
"type": "string",
"display": true,
"required": false,
"displayName": "commentPosted",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "reasoning",
"type": "string",
"display": true,
"required": false,
"displayName": "reasoning",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": []
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "YOUR_SHEET_ID"
}
},
"typeVersion": 4.5
},
{
"id": "0c7a75ed-891c-45dd-95fc-c86c0e07862e",
"name": "Tägliche Zusammenfassung generieren",
"type": "n8n-nodes-base.code",
"notes": "Aggregates all data into a comprehensive daily report",
"position": [
320,
32
],
"parameters": {
"jsCode": "// Aggregate all processed items\nconst items = $input.all();\n\nconst totalPosts = items.length;\nconst postsEngaged = items.filter(i => i.json.commentPosted === 'Yes').length;\nconst sentimentBreakdown = items.reduce((acc, item) => {\n const sentiment = item.json.sentiment || 'unknown';\n acc[sentiment] = (acc[sentiment] || 0) + 1;\n return acc;\n}, {});\n\nconst avgScore = items.reduce((sum, item) => sum + (item.json.engagementScore || 0), 0) / totalPosts;\n\nconst topPosts = items\n .sort((a, b) => (b.json.engagementScore || 0) - (a.json.engagementScore || 0))\n .slice(0, 5)\n .map(item => ({\n title: item.json.postTitle,\n subreddit: item.json.subreddit,\n score: item.json.engagementScore,\n url: item.json.postUrl\n }));\n\nreturn [{\n json: {\n summary: {\n totalPosts,\n postsEngaged,\n engagementRate: `${((postsEngaged / totalPosts) * 100).toFixed(1)}%`,\n avgEngagementScore: avgScore.toFixed(1),\n sentimentBreakdown,\n topPosts,\n reportDate: new Date().toISOString().split('T')[0]\n }\n }\n}];"
},
"typeVersion": 2
},
{
"id": "59090839-871e-4fd1-bd07-251104e4115f",
"name": "Slack Bericht senden",
"type": "n8n-nodes-base.slack",
"notes": "Sends comprehensive daily report to Slack with metrics and top opportunities",
"position": [
528,
32
],
"webhookId": "671ce43f-0973-4fc1-96ce-d0df355db33b",
"parameters": {
"text": "=📊 *Reddit Brand Marketing Daily Report*\n\n*Date:* {{ $json.summary.reportDate }}\n\n*Overall Performance:*\n• Posts Analyzed: {{ $json.summary.totalPosts }}\n• Comments Posted: {{ $json.summary.postsEngaged }}\n• Engagement Rate: {{ $json.summary.engagementRate }}\n• Avg Engagement Score: {{ $json.summary.avgEngagementScore }}/100\n\n*Sentiment Breakdown:*\n{{ Object.entries($json.summary.sentimentBreakdown).map(([k,v]) => `• ${k}: ${v} posts`).join('\\n') }}\n\n*Top 5 Engagement Opportunities:*\n{{ $json.summary.topPosts.map((post, i) => `${i+1}. ${post.title}\\n 📍 r/${post.subreddit} | Score: ${post.score}\\n 🔗 ${post.url}`).join('\\n\\n') }}\n\n✅ All interactions logged to Google Sheets",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": "YOUR_CHANNEL_ID"
},
"otherOptions": {}
},
"typeVersion": 2.2
},
{
"id": "6b53e5f2-79c8-41f9-b779-5efbe6aeaf37",
"name": "Notizzettel",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1904,
-112
],
"parameters": {
"color": 4,
"width": 347,
"height": 469,
"content": "## Reddit Brand Marketing Workflow\n\n**Purpose:** Automate Reddit monitoring and engagement for brand marketing\n\n**Features:**\n- Daily automated scans\n- AI-powered sentiment analysis\n- Smart comment generation\n- Engagement tracking\n- Daily Slack reports\n\n**Setup Required:**\n1. Reddit OAuth credentials\n2. OpenAI API key\n3. Google Sheets document\n4. Slack channel\n5. Configure brand keywords in Code node"
},
"typeVersion": 1
},
{
"id": "4b1cf549-13f1-4acb-bc92-226fc8275380",
"name": "Notizzettel1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1488,
-112
],
"parameters": {
"width": 176,
"height": 112,
"content": "Schedule trigger runs workflow every 24 hours automatically daily\n"
},
"typeVersion": 1
},
{
"id": "61e35218-b58c-42b7-a369-71b42c4d64ef",
"name": "Notizzettel2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1264,
-112
],
"parameters": {
"width": 176,
"height": 112,
"content": "JavaScript code node defining brand keywords to monitor Reddit\n"
},
"typeVersion": 1
},
{
"id": "b9a32a51-137c-48e1-83aa-82d64001e52f",
"name": "Notizzettel3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1040,
-112
],
"parameters": {
"width": 176,
"height": 112,
"content": "Reddit node searches all subreddits for brand keyword mentions\n"
},
"typeVersion": 1
},
{
"id": "9ca8ec09-cd5d-440b-ba21-3f4c69b62a73",
"name": "Notizzettel4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-800,
-112
],
"parameters": {
"width": 320,
"height": 112,
"content": "OpenAI analyzes sentiment, relevance, generates contextual helpful comment responses + Conditional node filters only high-quality relevant posts worth engaging\n"
},
"typeVersion": 1
},
{
"id": "b1e5a451-6954-479c-a225-d9c3bfddc55e",
"name": "Notizzettel5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-384,
-192
],
"parameters": {
"width": 176,
"height": 112,
"content": "Split in batches processes each post individually respecting limits"
},
"typeVersion": 1
},
{
"id": "dafc1ea5-66a4-4bc0-a6e5-9c954295071b",
"name": "Notizzettel6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-160,
-192
],
"parameters": {
"width": 176,
"height": 112,
"content": "Reddit node posts AI-generated comment to worthy Reddit discussions"
},
"typeVersion": 1
},
{
"id": "2e85a5e7-61df-4969-8012-ddb4a1336178",
"name": "Notizzettel7",
"type": "n8n-nodes-base.stickyNote",
"position": [
64,
-192
],
"parameters": {
"width": 176,
"height": 112,
"content": "Appends all interaction data to spreadsheet for permanent tracking\n"
},
"typeVersion": 1
},
{
"id": "4529d6c8-87ca-4d11-a609-6463cfe6d236",
"name": "Notizzettel8",
"type": "n8n-nodes-base.stickyNote",
"position": [
288,
-112
],
"parameters": {
"width": 176,
"height": 112,
"content": "JavaScript aggregates metrics, sentiment breakdown, generates comprehensive daily report"
},
"typeVersion": 1
},
{
"id": "ee43aa3b-6acd-40bf-982c-0a667797b886",
"name": "Notizzettel9",
"type": "n8n-nodes-base.stickyNote",
"position": [
496,
-112
],
"parameters": {
"width": 176,
"height": 112,
"content": "Posts formatted daily summary with metrics to team Slack channel"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"f9fda183-58fe-4b81-a7b3-7ddecaba3ba7": {
"main": [
[
{
"node": "95982fd8-f412-475e-b4a5-6aaa69ec3b58",
"type": "main",
"index": 0
}
]
]
},
"71b6a70e-fe6a-4f6e-a5c9-c90181696e56": {
"main": [
[
{
"node": "1e154007-38ff-4201-8576-972c99bb9197",
"type": "main",
"index": 0
}
],
[
{
"node": "0c7a75ed-891c-45dd-95fc-c86c0e07862e",
"type": "main",
"index": 0
}
]
]
},
"dcfe45e5-64ec-4d91-abd2-3472b45fb4dc": {
"main": [
[
{
"node": "71b6a70e-fe6a-4f6e-a5c9-c90181696e56",
"type": "main",
"index": 0
}
]
]
},
"1e154007-38ff-4201-8576-972c99bb9197": {
"main": [
[
{
"node": "dcfe45e5-64ec-4d91-abd2-3472b45fb4dc",
"type": "main",
"index": 0
}
]
]
},
"958f4ae4-caf9-46ee-9ab5-e7a5f7cf9da9": {
"main": [
[
{
"node": "70d74090-8308-4ff8-995a-afa2b3e53448",
"type": "main",
"index": 0
}
]
]
},
"947d8563-99c3-40bb-9fef-13f482cb8567": {
"main": [
[
{
"node": "958f4ae4-caf9-46ee-9ab5-e7a5f7cf9da9",
"type": "main",
"index": 0
}
]
]
},
"70d74090-8308-4ff8-995a-afa2b3e53448": {
"main": [
[
{
"node": "f9fda183-58fe-4b81-a7b3-7ddecaba3ba7",
"type": "main",
"index": 0
}
]
]
},
"0c7a75ed-891c-45dd-95fc-c86c0e07862e": {
"main": [
[
{
"node": "59090839-871e-4fd1-bd07-251104e4115f",
"type": "main",
"index": 0
}
]
]
},
"95982fd8-f412-475e-b4a5-6aaa69ec3b58": {
"main": [
[
{
"node": "71b6a70e-fe6a-4f6e-a5c9-c90181696e56",
"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?
Experte - Soziale Medien, Multimodales KI
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
Daniel Shashko
@tomaxAI automation specialist and a marketing enthusiast. More than 6 years of experience in SEO/GEO. Senior SEO at Bright Data.
Diesen Workflow teilen