Automatisierte Stimmungsanalyse von Kundenrezensionen mit Google Sheets
Dies ist ein Market Research, AI Summarization-Bereich Automatisierungsworkflow mit 6 Nodes. Hauptsächlich werden Code, GoogleSheets, GoogleSheetsTrigger und andere Nodes verwendet. Automatisierte Analyse der Kundenrezensionenstimmung mit Google Sheets
- •Google Sheets API-Anmeldedaten
Verwendete Nodes (6)
Kategorie
{
"meta": {
"instanceId": "2000c64071c20843606b95c63795bb0797c41036047055a6586498e855b96efc",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "46064753-85fe-4f8e-aba1-0e3ba9b994b6",
"name": "Stimmung analysieren",
"type": "n8n-nodes-base.code",
"position": [
272,
48
],
"parameters": {
"jsCode": "const reviewText = $input.first().json['Review Text'];\nconst reviewId = $input.first().json['Review ID'];\n\nlet sentiment = 'Neutral';\nconst positiveKeywords = ['great', 'excellent', 'amazing', 'happy', 'love', 'satisfied', 'good', 'fantastic', 'awesome', 'recommend'];\nconst negativeKeywords = ['bad', 'poor', 'disappointed', 'problem', 'unhappy', 'frustrating', 'issue', 'terrible', 'worst'];\n\nconst lowerCaseReview = reviewText.toLowerCase();\n\nlet positiveCount = 0;\npositiveKeywords.forEach(keyword => {\n if (lowerCaseReview.includes(keyword)) {\n positiveCount++;\n }\n});\n\nlet negativeCount = 0;\nnegativeKeywords.forEach(keyword => {\n if (lowerCaseReview.includes(keyword)) {\n negativeCount++;\n }\n});\n\nif (positiveCount > negativeCount) {\n sentiment = 'Positive';\n} else if (negativeCount > positiveCount) {\n sentiment = 'Negative';\n} else if (positiveCount > 0 && negativeCount > 0) {\n sentiment = 'Mixed'; // For cases with both positive and negative keywords\n}\n\nreturn [{ json: { sentiment: sentiment, reviewId: reviewId } }];"
},
"typeVersion": 2
},
{
"id": "c2830312-8cdc-446a-a0ea-cfecabca7e5e",
"name": "Google Sheet mit Stimmung aktualisieren",
"type": "n8n-nodes-base.googleSheets",
"position": [
496,
48
],
"parameters": {
"columns": {
"value": {
"Review ID": "={{ $json.reviewId }}",
"row_number": 0
},
"schema": [
{
"id": "Timestamp",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Timestamp",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Customer Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Customer Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Review Text",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Review Text",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Sentiment",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Sentiment",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Review ID",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Review ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": false,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Review ID"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 789150459,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1SOxZwhOEI8XQNu-0wQ3TiWsf01aLEKu48IAgtbEt2CE/edit#gid=789150459",
"cachedResultName": "customer_reviews_template"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1SOxZwhOEI8XQNu-0wQ3TiWsf01aLEKu48IAgtbEt2CE",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1SOxZwhOEI8XQNu-0wQ3TiWsf01aLEKu48IAgtbEt2CE/edit?usp=drivesdk",
"cachedResultName": "Customer Review "
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "vL25dYTf9oT1CSvl",
"name": "Google Sheets account 2"
}
},
"typeVersion": 4.6
},
{
"id": "40bedf02-1897-4b02-b2c6-00e24d3352ff",
"name": "Google Tabellen Trigger",
"type": "n8n-nodes-base.googleSheetsTrigger",
"position": [
-224,
48
],
"parameters": {
"event": "rowAdded",
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 789150459,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1SOxZwhOEI8XQNu-0wQ3TiWsf01aLEKu48IAgtbEt2CE/edit#gid=789150459",
"cachedResultName": "customer_reviews_template"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1SOxZwhOEI8XQNu-0wQ3TiWsf01aLEKu48IAgtbEt2CE",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1SOxZwhOEI8XQNu-0wQ3TiWsf01aLEKu48IAgtbEt2CE/edit?usp=drivesdk",
"cachedResultName": "Customer Review "
}
},
"credentials": {
"googleSheetsTriggerOAuth2Api": {
"id": "Ummd8YuUEDil2T3f",
"name": "Google Sheets Trigger account 2"
}
},
"typeVersion": 1
},
{
"id": "41b7911b-7086-45a7-8b8d-dbf75b0351ec",
"name": "Haftnotiz",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
-176
],
"parameters": {
"width": 320,
"height": 400,
"content": "## Customer Review Sentiment Analyzer (Google Sheets)\n**Author: David Olusola**\n\nThis workflow watches for new rows in a Google Sheet (e.g., where you manually log customer reviews) and uses a Code node to perform a simple sentiment analysis, then updates the same row with the detected sentiment.\n\nUse Case: Quickly gauge customer satisfaction, identify positive/negative trends, and prioritize follow-ups based on sentiment."
},
"typeVersion": 1
},
{
"id": "31fc4a2f-03c4-4cff-a766-c4b22d614a59",
"name": "Haftnotiz1",
"type": "n8n-nodes-base.stickyNote",
"position": [
672,
-208
],
"parameters": {
"height": 512,
"content": "## Setup Steps\n\nTo get this workflow up and running, follow these instructions:\n\nStep 1: Create Google Sheets Credentials in n8n\n\nIn your n8n instance, click on Credentials in the left sidebar.\n\nClick New Credential.\n\nSearch for and select \"Google Sheets OAuth2 API\" and follow the authentication steps with your Google account. Save it.\n\nMake note of the Credential Name (e.g., \"My Google Sheets Account\").\n\nStep 2: Make a copy of the Google Sheet [Customer Review](https://docs.google.com/spreadsheets/d/1XmyKfySCUAgyTgnAU3p0bz22D_ofAPoTAUw2HuBezrM/edit?usp=sharing)"
},
"typeVersion": 1
},
{
"id": "86cd2976-fe14-4238-a2a6-0400eb3f2cde",
"name": "Haftnotiz2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
-192
],
"parameters": {
"height": 464,
"content": "## Activate and Test the Workflow\n\n\nClick the \"Activate\" toggle button in the top right corner of the n8n workflow editor.\n\nGo to your Google Sheet and manually add a new row with a \"Review Text\" (e.g., \"This product is great, I love it!\"). Leave the \"Sentiment\" column empty.\n\nThe workflow should trigger automatically (it polls every minute by default), analyze the sentiment, and update the \"Sentiment\" column in your Google Sheet. You can also manually \"Execute Workflow\" to test immediately."
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"46064753-85fe-4f8e-aba1-0e3ba9b994b6": {
"main": [
[
{
"node": "c2830312-8cdc-446a-a0ea-cfecabca7e5e",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets Trigger": {
"main": [
[
{
"node": "46064753-85fe-4f8e-aba1-0e3ba9b994b6",
"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 - Marktforschung, KI-Zusammenfassung
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
David Olusola
@dae221I help ambitious businesses eliminate operational bottlenecks and scale faster with AI automation. My clients typically see 40-60% efficiency gains within 90 days. Currently accepting 3 new projects this quarter - david@daexai.com
Diesen Workflow teilen