Nach dem Service Bewertungssammler
Dies ist ein CRM, Multimodal AI-Bereich Automatisierungsworkflow mit 20 Nodes. Hauptsächlich werden If, Wait, Gmail, Slack, HighLevel und andere Nodes verwendet. Kundenbewertungssammlung und Sentiment-Analyse: HighLevel, GPT-4o, Gmail und Slack
- •Google-Konto + Gmail API-Anmeldedaten
- •Slack Bot Token oder Webhook URL
- •Google Sheets API-Anmeldedaten
- •OpenAI API Key
Verwendete Nodes (20)
{
"id": "HpfD2OfzgRMPn3Jf",
"meta": {
"instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
"templateCredsSetupCompleted": true
},
"name": "Post-Service Review Collector",
"tags": [],
"nodes": [
{
"id": "5ad55032-d22a-4bf5-8107-0de7a4b18d57",
"name": "Bei Klick auf 'Workflow ausführen'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-576,
-96
],
"parameters": {},
"typeVersion": 1
},
{
"id": "d3590ccb-048d-45a7-b3df-fb0d73c58206",
"name": "Erfolg des Deal-Abrufs validieren",
"type": "n8n-nodes-base.if",
"position": [
48,
-96
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e2adb005-2b3c-4d1e-8445-442df1fe925a",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.id }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "f7322a5c-5d60-491d-8bf2-f9c86cdf6a08",
"name": "Fehler in Google Sheets protokollieren",
"type": "n8n-nodes-base.googleSheets",
"position": [
368,
480
],
"parameters": {
"columns": {
"value": {},
"schema": [
{
"id": "error_id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "error_id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "error",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "error",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"error_id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1338537721,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Uldk_4BxWbdZTDZxFUeohIfeBmGHHqVEl9Ogb0l6R8Y/edit#gid=1338537721",
"cachedResultName": "error log sheet"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1Uldk_4BxWbdZTDZxFUeohIfeBmGHHqVEl9Ogb0l6R8Y",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Uldk_4BxWbdZTDZxFUeohIfeBmGHHqVEl9Ogb0l6R8Y/edit?usp=drivesdk",
"cachedResultName": "Interviewer Brief Pack "
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "kpPEOLCGn963qpoh",
"name": "automations@techdome.ai"
}
},
"typeVersion": 4.6
},
{
"id": "9ba98d72-ea5f-48f3-a68b-51e888202b77",
"name": "Alle gewonnenen Deals von HighLevel abrufen",
"type": "n8n-nodes-base.highLevel",
"position": [
-224,
-96
],
"parameters": {
"filters": {
"status": "won"
},
"resource": "opportunity",
"operation": "getAll",
"requestOptions": {}
},
"credentials": {
"highLevelOAuth2Api": {
"id": "5QWHSi134dLIBEsC",
"name": "HighLevel account"
}
},
"typeVersion": 2
},
{
"id": "f1c517f9-a54d-4691-ac3f-e7815fe4378b",
"name": "Personalisierte Bewertungsanfrage-E-Mail generieren (KI)",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
448,
-112
],
"parameters": {
"text": "=Generate an HTML-formatted review-request email for a client who has just completed a project with our agency. \nUse the following deal data to personalize the message:\n{{JSON.stringify($json)}}\n\nThe email should:\n1. Address the client by name. \n2. Thank them for working with our agency. \n3. Politely ask for their feedback and a quick public review. \n4. Include two call-to-action buttons:\n - One leading to the Google Review page: https://share.google/W3i4ulISiqRONADvO \n - Another leading to the internal Google Form: https://docs.google.com/forms/d/e/1FAIpQLScot2dbxFrx7jS8oTbQa3HZy9SSUtuB0iYch5U83UNNEwB9_g/viewform?usp=publish-editor \n5. End with a warm closing line from the Techdome team. \nKeep the tone professional, grateful, and concise. \nReturn only the HTML email body—no markdown or explanations.\n",
"options": {
"systemMessage": "=You are an AI email writer for a client-success automation system. \nYour task is to generate short, professional, visually clear HTML emails for clients after their project or service is completed. \nThe tone should be friendly and appreciative, encouraging them to share feedback and public reviews. \nAlways include clickable buttons styled with simple inline CSS (rounded corners, Techdome blue #1263ff). \nDo not use markdown, return only HTML output.\n"
},
"promptType": "define"
},
"typeVersion": 2.1
},
{
"id": "643e6cad-4045-45f6-833b-1571769bc48e",
"name": "GPT-4o-Modell konfigurieren",
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"position": [
448,
80
],
"parameters": {
"model": "gpt-4o",
"options": {}
},
"credentials": {
"azureOpenAiApi": {
"id": "C3WzT18XqF8OdVM6",
"name": "Azure Open AI account"
}
},
"typeVersion": 1
},
{
"id": "5f536653-7ba9-449e-a79c-31fefe83c811",
"name": "Bewertungsanfrage-E-Mail an Kunden senden",
"type": "n8n-nodes-base.gmail",
"position": [
848,
-112
],
"webhookId": "0c82c299-6938-42ed-bda6-5007d79af34f",
"parameters": {
"sendTo": "=newscctv22@gmail.com",
"message": "={{ $json.output }}",
"options": {},
"subject": "=Thank You for Working with Techdome .\n"
},
"credentials": {
"gmailOAuth2": {
"id": "RchiXdmY8WaQhOSJ",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "2c27e2a5-0daa-40a3-9a89-306166bb2e3f",
"name": "E-Mail-Thread für Antwort abrufen",
"type": "n8n-nodes-base.gmail",
"position": [
1312,
-112
],
"webhookId": "ffb3a844-8c8b-4f17-a6e9-98e0371f4214",
"parameters": {
"options": {},
"resource": "thread",
"threadId": "={{ $json.threadId }}",
"operation": "get"
},
"credentials": {
"gmailOAuth2": {
"id": "RchiXdmY8WaQhOSJ",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "c33cb722-a2ef-400e-b593-4322e9b7a946",
"name": "GPT-4o-Modell1 konfigurieren",
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"position": [
1568,
128
],
"parameters": {
"model": "gpt-4o",
"options": {}
},
"credentials": {
"azureOpenAiApi": {
"id": "C3WzT18XqF8OdVM6",
"name": "Azure Open AI account"
}
},
"typeVersion": 1
},
{
"id": "c9a7bf45-e0ba-4cb5-9374-a05098b89981",
"name": "24 Stunden vor nächster Aktion warten",
"type": "n8n-nodes-base.wait",
"position": [
1088,
-112
],
"webhookId": "7475fece-4562-46b3-a702-7a5c5fe88266",
"parameters": {
"amount": 24
},
"typeVersion": 1
},
{
"id": "4cfc001b-aa03-4a81-b7f4-e3d7ae01ad68",
"name": "Kundenfeedback zusammenfassen (KI)",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1568,
-112
],
"parameters": {
"text": "=You are an AI assistant that summarizes client feedback threads for internal Slack updates.\n\nGiven the following Gmail thread JSON:\n{{JSON.stringify($json)}}\n\nCreate a short Slack message in this format:\n\n---\n🎉 *New Client Review Received!*\n\n*Client:* {{ $('Fetch All Won Deals from HighLevel').item.json.name }}\n*Feedback:* {{ $json.messages[1].snippet }}\n*Sentiment:* {{positive/neutral/negative}} \n\n\n---\n\nKeep it concise, human-readable, and formatted for Slack (use Markdown formatting). Do not include HTML or JSON — return plain text formatted for Slack.\n",
"options": {
"systemMessage": "=You are a client-success AI summarizer. \nYour goal is to turn raw Gmail thread data (including “Thank you” replies) into short, clean, Slack-ready summaries. \nFocus on identifying who replied (client name), what they said, and the tone (positive/neutral/negative).\n"
},
"promptType": "define"
},
"typeVersion": 2.1
},
{
"id": "544bd495-5eb1-49e5-9a5f-b0d1a2ddf709",
"name": "Bewertungszusammenfassung in Slack bekanntgeben",
"type": "n8n-nodes-base.slack",
"position": [
1952,
-112
],
"webhookId": "ddaa7632-9e35-4bd3-82d6-572d5cae84cc",
"parameters": {
"text": "={{ $json.output }}",
"user": {
"__rl": true,
"mode": "list",
"value": "U09HMPVD466",
"cachedResultName": "newscctv22"
},
"select": "user",
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "rNqvWj9TfChPVRYY",
"name": "Slack account vivek"
}
},
"typeVersion": 2.3
},
{
"id": "12cf47f3-4f3a-4146-a898-e15971639c97",
"name": "Haftnotiz",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1136,
-912
],
"parameters": {
"width": 608,
"height": 576,
"content": "## How it works\nThis workflow automates the client-review process after a deal is marked as “Won” in HighLevel CRM. \nIt starts manually or on trigger, retrieves the latest won deals, validates them, and uses Azure OpenAI GPT-4o to create a personalized HTML review-request email. \nThe email thanks the client, includes links to leave a Google Review and fill an internal feedback form, and sends it automatically through Gmail. \nAfter 24 hours, the workflow checks the client’s reply thread, summarizes the feedback tone using GPT-4o, and posts a concise Slack update for the internal team. \nAny API or data errors are recorded in Google Sheets for transparency and debugging.\n\n## Setup steps\n1. Connect these credentials:\n - HighLevel API \n - Azure OpenAI (GPT-4o) \n - Gmail \n - Slack \n - Google Sheets \n2. Replace Sheet IDs and Slack user/channel references. \n3. Update email subject, sender, and review links if needed. \n4. Optionally schedule automatic triggers instead of manual runs. \n5. Test once with a dummy “Won” deal to verify end-to-end flow.\n"
},
"typeVersion": 1
},
{
"id": "3524ab6d-22b6-4abd-abfa-33073738457a",
"name": "Haftnotiz1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-336,
-304
],
"parameters": {
"color": 7,
"width": 624,
"height": 416,
"content": "## Deal Fetch & Validation\nFetches all deals with “Won” status from HighLevel and checks for valid data before proceeding. \nPrevents empty or incomplete deal entries from triggering the AI email generator.\n"
},
"typeVersion": 1
},
{
"id": "28f81e01-fbc4-4e12-aa3d-e343df9ef37e",
"name": "Haftnotiz2",
"type": "n8n-nodes-base.stickyNote",
"position": [
368,
-288
],
"parameters": {
"color": 7,
"width": 368,
"height": 512,
"content": "## AI-Powered Email Generation\nUses GPT-4o to craft a personalized, HTML review-request email. \nIncludes thank-you text, brand-styled buttons for Google Reviews and internal feedback, and a warm closing line.\n"
},
"typeVersion": 1
},
{
"id": "d3be7c5b-de2b-4b78-9adc-9ab36c1cde69",
"name": "Haftnotiz3",
"type": "n8n-nodes-base.stickyNote",
"position": [
768,
-336
],
"parameters": {
"color": 7,
"height": 544,
"content": "## Email Delivery\nSends the GPT-generated review-request email through Gmail to the client’s registered address. \nTracks the sent message for later thread retrieval and analysis.\n"
},
"typeVersion": 1
},
{
"id": "6976f94f-eade-4846-8723-5a2eba0e71ac",
"name": "Haftnotiz4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1040,
-320
],
"parameters": {
"color": 7,
"width": 432,
"height": 496,
"content": "## Waiting & Feedback Retrieval\nPauses for 24 hours to give clients time to reply, then fetches the full Gmail thread. \nEnsures the latest feedback message is available for sentiment analysis.\n"
},
"typeVersion": 1
},
{
"id": "31e6f968-061d-4796-863f-9f5617a64f2d",
"name": "Haftnotiz5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1504,
-352
],
"parameters": {
"color": 7,
"width": 368,
"height": 640,
"content": "## AI Feedback Summarization\nGPT-4o analyzes the client’s response and creates a short Slack-formatted summary. \nCaptures client name, key feedback, and overall sentiment (Positive/Neutral/Negative).\n"
},
"typeVersion": 1
},
{
"id": "0b0535cf-0afc-44bd-ac14-17ae2f83dd82",
"name": "Haftnotiz6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1888,
-352
],
"parameters": {
"color": 7,
"height": 464,
"content": "## Slack Announcement\nPosts the summarized client feedback in a Slack channel. \nNotifies the team in real time and helps track post-service satisfaction trends.\n"
},
"typeVersion": 1
},
{
"id": "4d6af1bd-b453-42ac-a491-eb8266b74ba4",
"name": "Haftnotiz7",
"type": "n8n-nodes-base.stickyNote",
"position": [
304,
304
],
"parameters": {
"color": 7,
"height": 416,
"content": "## Error Logging\nAppends any workflow or API issues to a shared Google Sheet. \nMaintains an audit trail for error resolution and workflow reliability checks.\n"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "a5d94f82-72ae-4824-9d7d-751ff361544f",
"connections": {
"643e6cad-4045-45f6-833b-1571769bc48e": {
"ai_languageModel": [
[
{
"node": "f1c517f9-a54d-4691-ac3f-e7815fe4378b",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"c33cb722-a2ef-400e-b593-4322e9b7a946": {
"ai_languageModel": [
[
{
"node": "4cfc001b-aa03-4a81-b7f4-e3d7ae01ad68",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"d3590ccb-048d-45a7-b3df-fb0d73c58206": {
"main": [
[
{
"node": "f1c517f9-a54d-4691-ac3f-e7815fe4378b",
"type": "main",
"index": 0
}
],
[
{
"node": "f7322a5c-5d60-491d-8bf2-f9c86cdf6a08",
"type": "main",
"index": 0
}
]
]
},
"4cfc001b-aa03-4a81-b7f4-e3d7ae01ad68": {
"main": [
[
{
"node": "544bd495-5eb1-49e5-9a5f-b0d1a2ddf709",
"type": "main",
"index": 0
}
]
]
},
"9ba98d72-ea5f-48f3-a68b-51e888202b77": {
"main": [
[
{
"node": "d3590ccb-048d-45a7-b3df-fb0d73c58206",
"type": "main",
"index": 0
}
]
]
},
"2c27e2a5-0daa-40a3-9a89-306166bb2e3f": {
"main": [
[
{
"node": "4cfc001b-aa03-4a81-b7f4-e3d7ae01ad68",
"type": "main",
"index": 0
}
]
]
},
"5f536653-7ba9-449e-a79c-31fefe83c811": {
"main": [
[
{
"node": "c9a7bf45-e0ba-4cb5-9374-a05098b89981",
"type": "main",
"index": 0
}
]
]
},
"5ad55032-d22a-4bf5-8107-0de7a4b18d57": {
"main": [
[
{
"node": "9ba98d72-ea5f-48f3-a68b-51e888202b77",
"type": "main",
"index": 0
}
]
]
},
"c9a7bf45-e0ba-4cb5-9374-a05098b89981": {
"main": [
[
{
"node": "2c27e2a5-0daa-40a3-9a89-306166bb2e3f",
"type": "main",
"index": 0
}
]
]
},
"f1c517f9-a54d-4691-ac3f-e7815fe4378b": {
"main": [
[
{
"node": "5f536653-7ba9-449e-a79c-31fefe83c811",
"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 - Kundenbeziehungsmanagement, 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
Rahul Joshi
@rahul08Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.
Diesen Workflow teilen