Recolector de evaluaciones post-servicio
Este es unCRM, Multimodal AIflujo de automatización del dominio deautomatización que contiene 20 nodos.Utiliza principalmente nodos como If, Wait, Gmail, Slack, HighLevel. Recopilación de reseñas de clientes y análisis de sentimiento: HighLevel, GPT-4o, Gmail y Slack
- •Cuenta de Google y credenciales de API de Gmail
- •Bot Token de Slack o URL de Webhook
- •Credenciales de API de Google Sheets
- •Clave de API de OpenAI
Nodos utilizados (20)
Categoría
{
"id": "HpfD2OfzgRMPn3Jf",
"meta": {
"instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
"templateCredsSetupCompleted": true
},
"name": "Post-Service Review Collector",
"tags": [],
"nodes": [
{
"id": "5ad55032-d22a-4bf5-8107-0de7a4b18d57",
"name": "Al hacer clic en 'Ejecutar flujo de trabajo'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-576,
-96
],
"parameters": {},
"typeVersion": 1
},
{
"id": "d3590ccb-048d-45a7-b3df-fb0d73c58206",
"name": "Validar Éxito de Obtención de Acuerdo",
"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": "Registrar Errores en Hojas Google",
"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": "Obtener Todos los Acuerdos Ganados de HighLevel",
"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": "Generar Correo Personalizado de Solicitud de Reseña (IA)",
"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": "Configurar Modelo GPT-4o",
"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": "Enviar Correo de Solicitud de Reseña al Cliente",
"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": "Recuperar Hilo de Correo para Respuesta",
"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": "Configurar Modelo GPT-4o1",
"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": "Esperar 24 Horas Antes de la Siguiente Acción",
"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": "Resumir Comentarios del Cliente (IA)",
"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": "Anunciar Resumen de Reseña en Slack",
"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": "Nota Adhesiva",
"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": "Nota Adhesiva1",
"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": "Nota Adhesiva2",
"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": "Nota Adhesiva3",
"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": "Nota Adhesiva4",
"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": "Nota Adhesiva5",
"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": "Nota Adhesiva6",
"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": "Nota Adhesiva7",
"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
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Avanzado - CRM, IA Multimodal
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
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.
Compartir este flujo de trabajo