AI驱动cliente反馈análisis与路由,integraciónGmail、Zendesk、SlackyPipedrive

Avanzado

Este es unautomatización que contiene 23 nodos.Utiliza principalmente nodos como Set, GmailTool, SlackTool, NotionTool, ZendeskTool. AI驱动cliente反馈análisis与路由,integraciónGmail、Zendesk、SlackyPipedrive

Requisitos previos
  • Cuenta de Google y credenciales de API de Gmail
  • Bot Token de Slack o URL de Webhook
  • Clave de API de Notion
  • Clave de API de OpenAI

Categoría

-
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "nodes": [
    {
      "id": "60256706-eabb-4ff1-abf0-78b5a9ca0869",
      "name": "Disparador Manual: Iniciar Análisis VOC",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        48,
        368
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "be859333-a941-4a71-951f-eeb6adcd0e4f",
      "name": "Set: Parámetros Iniciales",
      "type": "n8n-nodes-base.set",
      "position": [
        320,
        368
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "d69bdbe2-f51a-4956-9d5d-bfe3a82ec82d",
              "name": "CSM email",
              "type": "string",
              "value": "your-email@example.com"
            },
            {
              "id": "3efe4a59-2983-4f07-8e5c-130a5aad6fdb",
              "name": "slack_billing_channel",
              "type": "string",
              "value": "#billing-feedback"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c263ec19-9bdb-46fb-afde-4a17da961d3c",
      "name": "Config: Establecer LLM para Agentes",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1552,
        928
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {
          "temperature": 0
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "bf4488bd-0e20-4827-b370-77396415f7c8",
      "name": "Config: Establecer Memoria del Agente",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        432,
        592
      ],
      "parameters": {
        "sessionKey": "1",
        "sessionIdType": "customKey"
      },
      "typeVersion": 1.3
    },
    {
      "id": "8f128774-c198-4a13-8d19-8cf5ac19c8b8",
      "name": "Agente de IA: Recopilar Comentarios de Clientes",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        736,
        368
      ],
      "parameters": {
        "text": "=- Get **ALL** the mails sent after {{Date.now() - 7 * 24 * 60 * 60 * 1000}} from the user {{ $('Set: Initial Parameters').item.json['CSM email'] }}. Return only the Subject and the snippet.\n- Get **ALL** the messages from Slack return the user ID as customerId.\n- Get **ALL** the notes from Pipedrive. Use person_id as the customerId\n- Get **ALL** the tickets from Zendesk. Use requester_id as customerId",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "6b70f528-bd39-4758-9d04-6b3ff93af6ff",
      "name": "IA: Estructurar Datos de Comentarios",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1184,
        592
      ],
      "parameters": {
        "autoFix": true,
        "jsonSchemaExample": "\n  [{\n  \"source\": \"Zendesk | Gmail | Slack | Pipedrive\",\n  \"customerId\": \"...\",\n  \"messageId\": \"\",\n  \"subject\": \"...\",\n  \"text\": \"...\"\n}]\n\n"
      },
      "typeVersion": 1.3
    },
    {
      "id": "7c5791aa-2842-47af-818b-004af9685455",
      "name": "Herramienta: Obtener Mensajes de Gmail",
      "type": "n8n-nodes-base.gmailTool",
      "position": [
        576,
        592
      ],
      "webhookId": "d4a1dd6b-781c-4c44-b6a6-2d84a5542281",
      "parameters": {
        "filters": {
          "sender": "=",
          "receivedAfter": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Received_After', ``, 'string') }}"
        },
        "operation": "getAll",
        "returnAll": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Return_All', ``, 'boolean') }}"
      },
      "typeVersion": 2.1
    },
    {
      "id": "fbca39a8-6593-4cdb-a582-3bb81d18cb3a",
      "name": "Herramienta: Obtener Notas de Pipedrive",
      "type": "n8n-nodes-base.pipedriveTool",
      "position": [
        736,
        592
      ],
      "parameters": {
        "resource": "note",
        "operation": "getAll",
        "additionalFields": {}
      },
      "typeVersion": 1
    },
    {
      "id": "a833e7b4-6510-44a5-934a-9d3b46289717",
      "name": "Herramienta: Obtener Tickets de Zendesk",
      "type": "n8n-nodes-base.zendeskTool",
      "position": [
        880,
        592
      ],
      "parameters": {
        "options": {},
        "operation": "getAll"
      },
      "typeVersion": 1
    },
    {
      "id": "28a49bba-62fa-4896-8604-098903b84450",
      "name": "Herramienta: Buscar Mensajes de Slack Exportar a Sheets",
      "type": "n8n-nodes-base.slackTool",
      "position": [
        1024,
        592
      ],
      "webhookId": "cfa05622-054d-4981-8b27-79a0c88bfaea",
      "parameters": {
        "query": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Search_Query', ``, 'string') }}",
        "options": {
          "searchChannel": ""
        },
        "operation": "search",
        "authentication": "oAuth2"
      },
      "typeVersion": 2.3
    },
    {
      "id": "b9212f35-c028-481e-908b-12aa3324ac25",
      "name": "Cadena de IA: Extraer Señales Clave",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1552,
        368
      ],
      "parameters": {
        "text": "=Prompt:\nYou are analyzing raw customer feedback from multiple sources (Gmail, Slack, Pipedrive, Zendesk).\nYour task: compress the \"text\" of each feedback into a concise signal (1–2 sentences max) that captures the core issue, request, or sentiment without losing meaning.\n\nRules:\n\t•\tStrip away greetings, signatures, and filler.\n\t•\tKeep specific product terms, error codes, or feature names if present.\n\t•\tNeutral, factual tone (don’t add assumptions).\n\t•\tIf the text is vague, summarize it at the same level of vagueness.\n\t•\tOutput only the summary text, no extra commentary.\n\nExample:\n\t•\tInput: “Hi team, I’ve tried three times to update my billing info but the system keeps failing with error 502. Can someone help?”\n\t•\tOutput: Customer unable to update billing info due to repeated error 502. \n\nHere is the content:\n{{ JSON.stringify($json.output) }}",
        "batching": {
          "batchSize": 5
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.7
    },
    {
      "id": "7ec417ac-bc65-4c9e-a1f7-dc3d295403e0",
      "name": "IA: Estructurar Señales Clave",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1696,
        592
      ],
      "parameters": {
        "jsonSchemaExample": "[\n\t{\"original_text\": \"\",\n\t\"signals\": [\"\", \"\"]\n}]"
      },
      "typeVersion": 1.3
    },
    {
      "id": "09797f66-2ce6-4392-afb4-a646ba733799",
      "name": "Cadena de IA: Agrupar Señales en Temas",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1904,
        368
      ],
      "parameters": {
        "text": "=Prompt:\nYou will receive a set of short customer feedback signals.\nYour task: group them by shared topic or problem and assign each group a clear, human-readable label.\n\nRules:\n\t•\tLabels should be broad enough to cover all items in the group, but still actionable (e.g. Billing, Onboarding, Performance, Feature Requests).\n\t•\tAvoid vague labels like General Feedback unless no pattern exists.\n\t•\tEach cluster must include:\n\t•\tLabel\n\t•\tCount of items\n\t•\tRepresentative examples (1–3 feedback snippets).\n\n {{ JSON.stringify($json.output) }}",
        "batching": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.7
    },
    {
      "id": "d31b8993-f7c4-496f-9515-ae2e39e84f17",
      "name": "IA: Estructurar Temas Agrupados Exportar a Sheets",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        2048,
        592
      ],
      "parameters": {
        "jsonSchemaExample": "[\n  {\n    \"label\": \"Billing\",\n    \"count\": 8,\n    \"examples\": [\n      \"Unable to update billing info due to error 502\",\n      \"Invoice shows wrong amount\"\n    ]\n  }\n]"
      },
      "typeVersion": 1.3
    },
    {
      "id": "b26017dd-99f0-4033-9fb4-cfcf3be03c14",
      "name": "Agente de IA: Enrutar Temas a Acciones",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2320,
        368
      ],
      "parameters": {
        "text": "=Prompt:\nYou will receive a list of feedback clusters, each with a label, count, and examples.\nFirst you will send the processed input to \"{{ $('Set: Initial Parameters').item.json['CSM email'] }}\" with the subject \"Weekly digest\"\nYour task: decide the correct destination action for each cluster based on the label and the count if it is superior to 1. Each message will have the examples in it.\n\n## Routing Rules:\n### Performance / Feature gaps → Product\n    - Create a zendesk ticket with the label as the title and the examples as the description\n### Billing / Contract issues → Finance or Sales Ops\n  - Post message to Slack channel {{ $('Set: Initial Parameters').item.json.slack_billing_channel }} with the examples as the text\n### Onboarding / Training → CS Enablement\n  - Create Notion task with the label as the title and the examples as the content\n### High-risk sentiment / VIP account → CS Manager\n  - Send direct email to cs Manager \"{{ $('Set: Initial Parameters').item.json['CSM email'] }}\" with tzhe subject \"Problem with the software\" and the examples as the text\n### Sales and customer engagement\n  -  Send direct email to cs Manager \"{{ $('Set: Initial Parameters').item.json['CSM email'] }}\" with the subject \"Customer engagement\" and the examples as the text\n\n### Client Management and Proposals\n    -  Send direct email to cs Manager \"{{ $('Set: Initial Parameters').item.json['CSM email'] }}\" with the subject \"Client Management and Proposals\" with the examples as the text\n  \nIf the cluster doesn’t fit above, mark as \"unassigned\" but keep it in the output.\nThe input:\n {{ JSON.stringify($json.output) }}",
        "options": {},
        "promptType": "=define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "ebefbd63-8ea6-49e3-be48-4aaf1b4f7011",
      "name": "Herramienta: Crear Ticket en Zendesk",
      "type": "n8n-nodes-base.zendeskTool",
      "position": [
        2320,
        592
      ],
      "parameters": {
        "description": "Ticket generated by n8n",
        "jsonParameters": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('JSON_Parameters', ``, 'boolean') }}",
        "additionalFields": {}
      },
      "typeVersion": 1
    },
    {
      "id": "2b0c3dc2-cf60-4d2b-8127-4141d34e7bee",
      "name": "Herramienta: Enviar Alerta por Correo",
      "type": "n8n-nodes-base.gmailTool",
      "position": [
        2464,
        592
      ],
      "webhookId": "127092c9-48cd-40be-9d99-afd264bd95fb",
      "parameters": {
        "sendTo": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('To', ``, 'string') }}",
        "message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
        "options": {},
        "subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Subject', ``, 'string') }}",
        "emailType": "text"
      },
      "typeVersion": 2.1
    },
    {
      "id": "b47fc28d-72f5-42f9-a661-254a392ae443",
      "name": "Herramienta: Crear Página en Notion",
      "type": "n8n-nodes-base.notionTool",
      "position": [
        2608,
        592
      ],
      "parameters": {
        "title": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Title', ``, 'string') }}",
        "simple": false,
        "options": {},
        "resource": "databasePage",
        "databaseId": {
          "__rl": true,
          "mode": "id",
          "value": ""
        },
        "propertiesUi": {
          "propertyValues": [
            {
              "key": "Content|rich_text",
              "textContent": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('propertyValues0_Text', ``, 'string') }}"
            }
          ]
        }
      },
      "notesInFlow": false,
      "typeVersion": 2.2
    },
    {
      "id": "fdac92b0-5b36-4fdc-a384-93c2d6c20cc6",
      "name": "Nota: Recopilación de Datos",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        704,
        176
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 128,
        "content": "### Data Gathering Agent\nThis AI Agent's job is to collect all recent customer interactions.\nIt uses its tools (Gmail, Pipedrive, Zendesk, Slack) to fetch the raw data based on the initial prompt."
      },
      "typeVersion": 1
    },
    {
      "id": "ab1edac7-c359-433a-bad5-70c876d9cfb1",
      "name": "Nota: Cadena de Análisis",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1616,
        160
      ],
      "parameters": {
        "color": 7,
        "width": 476,
        "height": 152,
        "content": "### AI Analysis Chain\nThis chain processes the raw data in two steps:\n1.  **Signal Extraction:** The first LLM Chain reads all the raw text and compresses it into concise 'signals'.\n2.  **Clustering:** The second LLM Chain takes these signals and groups them into actionable topics (e.g., 'Billing', 'Performance')."
      },
      "typeVersion": 1
    },
    {
      "id": "0e500b93-135e-4a03-91e8-2159cc58718b",
      "name": "Nota: Agente de Acción",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2224,
        160
      ],
      "parameters": {
        "color": 7,
        "width": 412,
        "height": 152,
        "content": "### Action & Routing Agent\nThis final AI Agent acts as a dispatcher. It analyzes the clustered topics and follows a set of 'Routing Rules' in its prompt to decide which action to take.\nIt then uses its tools to send the information to the correct destination (Zendesk, Slack, Notion, or Email)."
      },
      "typeVersion": 1
    },
    {
      "id": "0642f4ae-f111-4446-9e9a-c9bb0c1e609c",
      "name": "Documentación del Flujo de Trabajo",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        16,
        -320
      ],
      "parameters": {
        "color": 4,
        "width": 980,
        "height": 392,
        "content": "### **Voice of Customer AI Analysis & Routing**\nThis workflow automates the process of gathering customer feedback from multiple sources, using a chain of AI agents to analyze, summarize, and categorize it, and finally routing the insights to the appropriate teams for action.\n\n**How it Works:**\n1.  **Gathers Data:** An AI Agent uses tools to collect recent messages from Gmail, Pipedrive, Zendesk, and Slack.\n2.  **Analyzes & Summarizes:** An AI Chain processes the raw text, first extracting key 'signals' and then clustering those signals into topics (e.g., 'Billing', 'Feature Request').\n3.  **Routes for Action:** A final AI Agent analyzes the topics and uses tools to create Zendesk tickets, send Slack messages, create Notion pages, or send email alerts based on a set of rules.\n\n### 🚀 **How to Set Up**\n1.  **Configure Credentials:** Add your credentials for all the 'Tool' nodes and the `Config: Set LLM for Agents` node.\n2.  **Set Initial Parameters:** In the `Set: Initial Parameters` node, update the placeholder email address and the Slack channel name for billing alerts.\n3.  **Update Slack Search Channel:** In the `Tool: Search Slack Messages` node, set the channel you want the agent to search for feedback in.\n4.  **Activate Workflow:** Once configured, activate the workflow."
      },
      "typeVersion": 1
    },
    {
      "id": "eff608be-8f8d-4379-a9f0-5ab1beb26b3d",
      "name": "Nota Adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        32,
        960
      ],
      "parameters": {
        "color": 6,
        "width": 432,
        "height": 176,
        "content": "## Contact me\n- If you need any modification to this workflow\n- if you need some help with this workflow\n- Or if you need any workflow in n8n, Make, or Langchain / Langgraph\n\nWrite to me: [thomas@pollup.net](<mailto:thomas@pollup.net>)"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "2b0c3dc2-cf60-4d2b-8127-4141d34e7bee": {
      "ai_tool": [
        [
          {
            "node": "b26017dd-99f0-4033-9fb4-cfcf3be03c14",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "be859333-a941-4a71-951f-eeb6adcd0e4f": {
      "main": [
        [
          {
            "node": "8f128774-c198-4a13-8d19-8cf5ac19c8b8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bf4488bd-0e20-4827-b370-77396415f7c8": {
      "ai_memory": [
        [
          {
            "node": "8f128774-c198-4a13-8d19-8cf5ac19c8b8",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "b47fc28d-72f5-42f9-a661-254a392ae443": {
      "ai_tool": [
        [
          {
            "node": "b26017dd-99f0-4033-9fb4-cfcf3be03c14",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "7c5791aa-2842-47af-818b-004af9685455": {
      "ai_tool": [
        [
          {
            "node": "8f128774-c198-4a13-8d19-8cf5ac19c8b8",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "7ec417ac-bc65-4c9e-a1f7-dc3d295403e0": {
      "ai_outputParser": [
        [
          {
            "node": "b9212f35-c028-481e-908b-12aa3324ac25",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "fbca39a8-6593-4cdb-a582-3bb81d18cb3a": {
      "ai_tool": [
        [
          {
            "node": "8f128774-c198-4a13-8d19-8cf5ac19c8b8",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "a833e7b4-6510-44a5-934a-9d3b46289717": {
      "ai_tool": [
        [
          {
            "node": "8f128774-c198-4a13-8d19-8cf5ac19c8b8",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "c263ec19-9bdb-46fb-afde-4a17da961d3c": {
      "ai_languageModel": [
        [
          {
            "node": "6b70f528-bd39-4758-9d04-6b3ff93af6ff",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "8f128774-c198-4a13-8d19-8cf5ac19c8b8",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "b9212f35-c028-481e-908b-12aa3324ac25",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "09797f66-2ce6-4392-afb4-a646ba733799",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "b26017dd-99f0-4033-9fb4-cfcf3be03c14",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "6b70f528-bd39-4758-9d04-6b3ff93af6ff": {
      "ai_outputParser": [
        [
          {
            "node": "8f128774-c198-4a13-8d19-8cf5ac19c8b8",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "ebefbd63-8ea6-49e3-be48-4aaf1b4f7011": {
      "ai_tool": [
        [
          {
            "node": "b26017dd-99f0-4033-9fb4-cfcf3be03c14",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "b9212f35-c028-481e-908b-12aa3324ac25": {
      "main": [
        [
          {
            "node": "09797f66-2ce6-4392-afb4-a646ba733799",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8f128774-c198-4a13-8d19-8cf5ac19c8b8": {
      "main": [
        [
          {
            "node": "b9212f35-c028-481e-908b-12aa3324ac25",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "60256706-eabb-4ff1-abf0-78b5a9ca0869": {
      "main": [
        [
          {
            "node": "be859333-a941-4a71-951f-eeb6adcd0e4f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "09797f66-2ce6-4392-afb4-a646ba733799": {
      "main": [
        [
          {
            "node": "b26017dd-99f0-4033-9fb4-cfcf3be03c14",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "28a49bba-62fa-4896-8604-098903b84450": {
      "ai_tool": [
        [
          {
            "node": "8f128774-c198-4a13-8d19-8cf5ac19c8b8",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "d31b8993-f7c4-496f-9515-ae2e39e84f17": {
      "ai_outputParser": [
        [
          {
            "node": "09797f66-2ce6-4392-afb4-a646ba733799",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿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

¿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.

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos23
Categoría-
Tipos de nodos13
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Autor
PollupAI

PollupAI

@zeerobug

We create bespoke AI solutions, automations and agents that help your business as it scales.

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34