Sistema de derivación y resumen de soporte al cliente con IA

Avanzado

Este es unTicket Management, AI Summarizationflujo de automatización del dominio deautomatización que contiene 32 nodos.Utiliza principalmente nodos como If, Set, Code, Gmail, Slack. Procesamiento automático de soporte al cliente con GPT-4o, Slack e integración CRM

Requisitos previos
  • Cuenta de Google y credenciales de API de Gmail
  • Bot Token de Slack o URL de Webhook
  • Punto final de HTTP Webhook (n8n generará automáticamente)
  • Pueden requerirse credenciales de autenticación para la API de destino
  • Credenciales de API de Google Sheets
  • Clave de API de OpenAI
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
{
  "id": "wDPgvREnPGzo267x",
  "meta": {
    "instanceId": "f7efda6e0fb3e5b5aba58995b43b7c79234174dc1e6bcfb5578eff460018af38",
    "templateCredsSetupCompleted": true
  },
  "name": "AI Customer Support Triage & Summarization System",
  "tags": [],
  "nodes": [
    {
      "id": "40bab90c-06e8-400e-ba35-d629ab529144",
      "name": "Disparador de Entrada (Correo/Formulario/Chat)",
      "type": "n8n-nodes-base.webhook",
      "position": [
        928,
        1664
      ],
      "webhookId": "a5df9695-a412-414a-8684-8beae74f0dd4",
      "parameters": {
        "path": "support-intake",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "lastNode"
      },
      "typeVersion": 2.1
    },
    {
      "id": "94f25509-3536-4eaa-8e30-bb0d3d2bcb3a",
      "name": "Configuración del Flujo de Trabajo",
      "type": "n8n-nodes-base.set",
      "position": [
        1152,
        1664
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "technicalSlackChannel",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Technical Slack Channel ID__>"
            },
            {
              "id": "id-2",
              "name": "billingSlackChannel",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Billing Slack Channel ID__>"
            },
            {
              "id": "id-3",
              "name": "generalSlackChannel",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__General Slack Channel ID__>"
            },
            {
              "id": "id-4",
              "name": "urgentSlackChannel",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Urgent Slack Channel ID__>"
            },
            {
              "id": "id-5",
              "name": "crmApiUrl",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__CRM API Endpoint URL__>"
            },
            {
              "id": "id-6",
              "name": "googleSheetId",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Google Sheet ID__>"
            },
            {
              "id": "id-7",
              "name": "slaThresholdHours",
              "type": "number",
              "value": 24
            },
            {
              "id": "id-8",
              "name": "urgencyThreshold",
              "type": "number",
              "value": 4
            },
            {
              "id": "id-9",
              "name": "supportPortalUrl",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Support Portal URL__>"
            },
            {
              "id": "id-10",
              "name": "companyName",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Company Name__>"
            },
            {
              "id": "id-11",
              "name": "supportEmail",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Support Email Address__>"
            },
            {
              "id": "id-12",
              "name": "standardSlaHours",
              "type": "number",
              "value": 48
            },
            {
              "id": "id-13",
              "name": "prioritySlaHours",
              "type": "number",
              "value": 24
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "6df1111d-ada7-4877-8f7c-e8499e9138ee",
      "name": "Extraer Datos del Cliente",
      "type": "n8n-nodes-base.set",
      "position": [
        1376,
        1664
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "customerName",
              "type": "string",
              "value": "={{ $json.body.name || $json.body.from_name || 'Unknown' }}"
            },
            {
              "id": "id-2",
              "name": "customerEmail",
              "type": "string",
              "value": "={{ $json.body.email || $json.body.from_email || '' }}"
            },
            {
              "id": "id-3",
              "name": "product",
              "type": "string",
              "value": "={{ $json.body.product || $json.body.subject || '' }}"
            },
            {
              "id": "id-4",
              "name": "issueType",
              "type": "string",
              "value": "={{ $json.body.issue_type || $json.body.category || '' }}"
            },
            {
              "id": "id-5",
              "name": "rawMessage",
              "type": "string",
              "value": "={{ $json.body.message || $json.body.text || $json.body.content || '' }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "754686ef-a5a9-4158-9eee-be35c091b5f1",
      "name": "Agente de Derivación y Resumen con IA",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1600,
        1664
      ],
      "parameters": {
        "text": "=You are a customer support triage assistant. Analyze the customer inquiry and provide:\n\n1. A concise summary (max 200 words)\n2. Classification: technical, billing, general, or urgent\n3. Urgency score (1-5, where 5 is most urgent)\n4. Suggested next action\n\nCustomer Details:\nName: {{ $json.customerName }}\nEmail: {{ $json.customerEmail }}\nProduct: {{ $json.product }}\nIssue Type: {{ $json.issueType }}\nMessage: {{ $json.rawMessage }}\n\nProvide structured output with fields: summary, classification, urgency, nextAction",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "471ce97b-249c-4061-bdc1-be65d3d7e014",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1600,
        1888
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {},
      "typeVersion": 1.2
    },
    {
      "id": "097c80f5-3577-4b45-985e-ef073c3a55f3",
      "name": "Analizador de Salida Estructurada",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1728,
        1888
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\t\"summary\": \"Brief summary of the customer issue (max 200 words)\",\n\t\"classification\": \"technical\",\n\t\"urgency\": 3,\n\t\"nextAction\": \"Recommended next action for support team\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "b97cd4c8-8dbe-434b-b47b-4ca4c9608218",
      "name": "Enrutar por Clasificación",
      "type": "n8n-nodes-base.switch",
      "position": [
        1952,
        1632
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "technical",
              "conditions": {
                "options": {
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.classification }}",
                    "rightValue": "technical"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "billing",
              "conditions": {
                "options": {
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.classification }}",
                    "rightValue": "billing"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "general",
              "conditions": {
                "options": {
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.classification }}",
                    "rightValue": "general"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "urgent",
              "conditions": {
                "options": {
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.classification }}",
                    "rightValue": "urgent"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.3
    },
    {
      "id": "27af38f5-7f57-48b0-9933-2f14fb492ba1",
      "name": "Publicar en Canal Técnico de Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        2176,
        1376
      ],
      "webhookId": "5641deda-88ec-40e5-97f8-768edddd62ef",
      "parameters": {
        "text": "=*New Technical Support Ticket*\n\n*Customer:* {{ $json.customerName }} ({{ $json.customerEmail }})\n*Product:* {{ $json.product }}\n*Urgency:* {{ $json.urgency }}/5\n\n*Summary:*\n{{ $json.summary }}\n\n*Next Action:*\n{{ $json.nextAction }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Workflow Configuration').first().json.technicalSlackChannel }}"
        },
        "otherOptions": {}
      },
      "typeVersion": 2.3
    },
    {
      "id": "22546b0f-d5e9-4f7a-b569-612df6d66721",
      "name": "Publicar en Canal de Facturación de Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        2176,
        1568
      ],
      "webhookId": "d9fbfba9-8405-484b-9e12-3e76274d8a12",
      "parameters": {
        "text": "=*New Billing Support Ticket*\n\n*Customer:* {{ $json.customerName }} ({{ $json.customerEmail }})\n*Product:* {{ $json.product }}\n*Urgency:* {{ $json.urgency }}/5\n\n*Summary:*\n{{ $json.summary }}\n\n*Next Action:*\n{{ $json.nextAction }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Workflow Configuration').first().json.billingSlackChannel }}"
        },
        "otherOptions": {}
      },
      "typeVersion": 2.3
    },
    {
      "id": "397fc082-4440-47a2-a6a7-602471bf1485",
      "name": "Publicar en Canal General de Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        2176,
        1760
      ],
      "webhookId": "05e761b5-e77e-422a-86ee-8cb0fc907bfb",
      "parameters": {
        "text": "=*New General Support Ticket*\n\n*Customer:* {{ $json.customerName }} ({{ $json.customerEmail }})\n*Product:* {{ $json.product }}\n*Urgency:* {{ $json.urgency }}/5\n\n*Summary:*\n{{ $json.summary }}\n\n*Next Action:*\n{{ $json.nextAction }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Workflow Configuration').first().json.generalSlackChannel }}"
        },
        "otherOptions": {}
      },
      "typeVersion": 2.3
    },
    {
      "id": "96528838-d29c-497d-a221-b2b4c9025a5d",
      "name": "Publicar en Canal Urgente de Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        2176,
        1952
      ],
      "webhookId": "84244cb1-7ea0-4504-9617-d56b151fe9dc",
      "parameters": {
        "text": "=*🚨 URGENT Support Ticket 🚨*\n\n*Customer:* {{ $json.customerName }} ({{ $json.customerEmail }})\n*Product:* {{ $json.product }}\n*Urgency:* {{ $json.urgency }}/5\n\n*Summary:*\n{{ $json.summary }}\n\n*Next Action:*\n{{ $json.nextAction }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Workflow Configuration').first().json.urgentSlackChannel }}"
        },
        "otherOptions": {
          "includeLinkToWorkflow": true
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "b8aa6a61-7439-4af7-8dcd-00283d0684f8",
      "name": "Crear Tarea en CRM (Técnico)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2400,
        1376
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.crmApiUrl }}",
        "method": "POST",
        "options": {
          "response": {
            "response": {
              "neverError": true
            }
          }
        },
        "jsonBody": "={{ {\n  \"customer_name\": $json.customerName,\n  \"customer_email\": $json.customerEmail,\n  \"product\": $json.product,\n  \"classification\": \"technical\",\n  \"urgency\": $json.urgency,\n  \"summary\": $json.summary,\n  \"next_action\": $json.nextAction,\n  \"sla_hours\": $json.urgency >= $('Workflow Configuration').first().json.urgencyThreshold ? $('Workflow Configuration').first().json.slaThresholdHours : 48\n} }}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "ddb40ba2-945a-4f0f-ad46-ef46eb2d852a",
      "name": "Crear Tarea en CRM (Facturación)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2400,
        1568
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.crmApiUrl }}",
        "method": "POST",
        "options": {
          "response": {
            "response": {
              "neverError": true
            }
          }
        },
        "jsonBody": "={{ {\n  \"customer_name\": $json.customerName,\n  \"customer_email\": $json.customerEmail,\n  \"product\": $json.product,\n  \"classification\": \"billing\",\n  \"urgency\": $json.urgency,\n  \"summary\": $json.summary,\n  \"next_action\": $json.nextAction,\n  \"sla_hours\": $json.urgency >= $('Workflow Configuration').first().json.urgencyThreshold ? $('Workflow Configuration').first().json.slaThresholdHours : 48\n} }}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "8b8e2540-5dd7-4ec1-bc5d-d7e8d4c80ac7",
      "name": "Crear Tarea en CRM (General)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2400,
        1760
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.crmApiUrl }}",
        "method": "POST",
        "options": {
          "response": {
            "response": {
              "neverError": true
            }
          }
        },
        "jsonBody": "={{ {\n  \"customer_name\": $json.customerName,\n  \"customer_email\": $json.customerEmail,\n  \"product\": $json.product,\n  \"classification\": \"general\",\n  \"urgency\": $json.urgency,\n  \"summary\": $json.summary,\n  \"next_action\": $json.nextAction,\n  \"sla_hours\": $json.urgency >= $('Workflow Configuration').first().json.urgencyThreshold ? $('Workflow Configuration').first().json.slaThresholdHours : 48\n} }}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "8e57b175-aca0-4c67-82dc-10f2bfd245eb",
      "name": "Crear Tarea en CRM (Urgente)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2400,
        1952
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.crmApiUrl }}",
        "method": "POST",
        "options": {
          "response": {
            "response": {
              "neverError": true
            }
          }
        },
        "jsonBody": "={\n  \"customer_name\": \"{{ $json.customerName }}\",\n  \"customer_email\": \"{{ $json.customerEmail }}\",\n  \"product\": \"{{ $json.product }}\",\n  \"classification\": \"urgent\",\n  \"urgency\": {{ $json.urgency }},\n  \"summary\": \"{{ $json.summary }}\",\n  \"next_action\": \"{{ $json.nextAction }}\",\n  \"sla_hours\": {{ $('Workflow Configuration').first().json.slaThresholdHours }}\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "1fcfd918-bdb5-4ce3-b038-cab9cfa2c433",
      "name": "Registrar en Hojas de Google (Técnico)",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2624,
        1376
      ],
      "parameters": {
        "columns": {
          "value": {
            "Product": "={{ $json.product }}",
            "Summary": "={{ $json.summary }}",
            "Urgency": "={{ $json.urgency }}",
            "Timestamp": "={{ $now.toISO() }}",
            "Next Action": "={{ $json.nextAction }}",
            "Customer Name": "={{ $json.customerName }}",
            "Classification": "technical",
            "Customer Email": "={{ $json.customerEmail }}"
          },
          "schema": [
            {
              "id": "Timestamp",
              "required": false,
              "displayName": "Timestamp",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Customer Name",
              "required": false,
              "displayName": "Customer Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Customer Email",
              "required": false,
              "displayName": "Customer Email",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "Product",
              "required": false,
              "displayName": "Product",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Classification",
              "required": false,
              "displayName": "Classification",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Urgency",
              "required": false,
              "displayName": "Urgency",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Summary",
              "required": false,
              "displayName": "Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Next Action",
              "required": false,
              "displayName": "Next Action",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Customer Email"
          ]
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Support Tickets"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Workflow Configuration').first().json.googleSheetId }}"
        }
      },
      "credentials": {},
      "typeVersion": 4.7
    },
    {
      "id": "dfecf8ef-ce60-4fa0-b944-529a637ce06b",
      "name": "Registrar en Hojas de Google (Facturación)",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2624,
        1568
      ],
      "parameters": {
        "columns": {
          "value": {
            "Product": "={{ $json.product }}",
            "Summary": "={{ $json.summary }}",
            "Urgency": "={{ $json.urgency }}",
            "Timestamp": "={{ $now.toISO() }}",
            "Next Action": "={{ $json.nextAction }}",
            "Customer Name": "={{ $json.customerName }}",
            "Classification": "billing",
            "Customer Email": "={{ $json.customerEmail }}"
          },
          "schema": [
            {
              "id": "Timestamp",
              "required": false,
              "displayName": "Timestamp",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Customer Name",
              "required": false,
              "displayName": "Customer Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Customer Email",
              "required": false,
              "displayName": "Customer Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Product",
              "required": false,
              "displayName": "Product",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Classification",
              "required": false,
              "displayName": "Classification",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Urgency",
              "required": false,
              "displayName": "Urgency",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Summary",
              "required": false,
              "displayName": "Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Next Action",
              "required": false,
              "displayName": "Next Action",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Timestamp"
          ]
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Support Tickets"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Workflow Configuration').first().json.googleSheetId }}"
        }
      },
      "credentials": {},
      "typeVersion": 4.7
    },
    {
      "id": "c492c5b8-8caa-422a-b291-be06512b1810",
      "name": "Registrar en Hojas de Google (General)",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2624,
        1760
      ],
      "parameters": {
        "columns": {
          "value": {
            "Product": "={{ $json.product }}",
            "Summary": "={{ $json.summary }}",
            "Urgency": "={{ $json.urgency }}",
            "Timestamp": "={{ $now.toISO() }}",
            "Next Action": "={{ $json.nextAction }}",
            "Customer Name": "={{ $json.customerName }}",
            "Classification": "general",
            "Customer Email": "={{ $json.customerEmail }}"
          },
          "schema": [
            {
              "id": "Timestamp",
              "required": false,
              "displayName": "Timestamp",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Customer Name",
              "required": false,
              "displayName": "Customer Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Customer Email",
              "required": false,
              "displayName": "Customer Email",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "Product",
              "required": false,
              "displayName": "Product",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Classification",
              "required": false,
              "displayName": "Classification",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Urgency",
              "required": false,
              "displayName": "Urgency",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Summary",
              "required": false,
              "displayName": "Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Next Action",
              "required": false,
              "displayName": "Next Action",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Customer Email"
          ]
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Support Tickets"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Workflow Configuration').first().json.googleSheetId }}"
        }
      },
      "credentials": {},
      "typeVersion": 4.7
    },
    {
      "id": "472ccb11-7e70-419c-822f-c6154ea2abc8",
      "name": "Registrar en Hojas de Google (Urgente)",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2624,
        1952
      ],
      "parameters": {
        "columns": {
          "value": {
            "Product": "={{ $json.product }}",
            "Summary": "={{ $json.summary }}",
            "Urgency": "={{ $json.urgency }}",
            "Timestamp": "={{ $now.toISO() }}",
            "Next Action": "={{ $json.nextAction }}",
            "Customer Name": "={{ $json.customerName }}",
            "Classification": "urgent",
            "Customer Email": "={{ $json.customerEmail }}"
          },
          "schema": [
            {
              "id": "Timestamp",
              "required": false,
              "displayName": "Timestamp",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Customer Name",
              "required": false,
              "displayName": "Customer Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Customer Email",
              "required": false,
              "displayName": "Customer Email",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "Product",
              "required": false,
              "displayName": "Product",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Classification",
              "required": false,
              "displayName": "Classification",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Urgency",
              "required": false,
              "displayName": "Urgency",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Summary",
              "required": false,
              "displayName": "Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Next Action",
              "required": false,
              "displayName": "Next Action",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Customer Email"
          ]
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Support Tickets"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Workflow Configuration').first().json.googleSheetId }}"
        }
      },
      "credentials": {},
      "typeVersion": 4.7
    },
    {
      "id": "f74fcb3e-acc8-429a-a372-9b2cb23666ff",
      "name": "Verificar Urgencia para SLA",
      "type": "n8n-nodes-base.if",
      "position": [
        2848,
        1664
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": false,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "id-1",
              "operator": {
                "type": "number",
                "operation": "gte"
              },
              "leftValue": "={{ $json.urgency }}",
              "rightValue": "={{ $('Workflow Configuration').first().json.urgencyThreshold }}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "b8991d6c-954f-487b-8f11-829761a6d5e6",
      "name": "Manejador de Errores - Registrar en DLQ",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        928,
        2176
      ],
      "parameters": {
        "url": "<__PLACEHOLDER_VALUE__Dead Letter Queue API Endpoint__>",
        "method": "POST",
        "options": {},
        "jsonBody": "={{ { \"workflow\": \"AI Customer Support Triage\", \"error\": $json.error, \"timestamp\": $now.toISO(), \"data\": $json } }}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a6fe778b-d8de-4127-8bd6-1cfb0266d228",
      "name": "Generar Número de Referencia",
      "type": "n8n-nodes-base.code",
      "position": [
        3072,
        1664
      ],
      "parameters": {
        "jsCode": "const timestamp = Date.now();\nconst random = Math.random().toString(36).substring(2, 8).toUpperCase();\nconst referenceNumber = `SUP-${timestamp}-${random}`;\nconst urgency = items[0].json.urgency;\nconst urgencyThreshold = items[0].json.urgencyThreshold || 4;\nconst slaHours = urgency >= urgencyThreshold ? items[0].json.slaThresholdHours || 24 : 48;\nconst slaResponseTime = `${slaHours} hours`;\nreturn { json: { ...items[0].json, referenceNumber, slaHours, slaResponseTime } };"
      },
      "typeVersion": 2
    },
    {
      "id": "e3b53f01-39cf-40fa-b4b1-a16279d383fa",
      "name": "Preparar Datos para Respuesta Automática por Correo",
      "type": "n8n-nodes-base.set",
      "position": [
        3296,
        1664
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "emailSubject",
              "type": "string",
              "value": "=Your Support Request Received - Ref: {{ $json.referenceNumber }}"
            },
            {
              "id": "id-2",
              "name": "emailBody",
              "type": "string",
              "value": "=Dear {{ $json.customerName }},\n\nThank you for contacting {{ $('Workflow Configuration').first().json.companyName }} support. We have received your inquiry and our team is reviewing it.\n\n**Ticket Details:**\n• Reference Number: {{ $json.referenceNumber }}\n• Issue Summary: {{ $json.summary }}\n• Classification: {{ $json.classification }}\n• Priority Level: {{ $json.urgency }}/5\n• Expected Response Time: {{ $json.slaResponseTime }}\n\nOur support team will respond to your request within {{ $json.slaResponseTime }}. You can track the status of your ticket at:\n{{ $('Workflow Configuration').first().json.supportPortalUrl }}\n\nIf you have any additional information to add, please reply to this email with your reference number: {{ $json.referenceNumber }}\n\nBest regards,\n{{ $('Workflow Configuration').first().json.companyName }} Support Team\n{{ $('Workflow Configuration').first().json.supportEmail }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "113a0dee-5142-48ab-9b94-a1ef76407712",
      "name": "Enviar Respuesta Automática vía Gmail",
      "type": "n8n-nodes-base.gmail",
      "position": [
        3520,
        1664
      ],
      "webhookId": "6c090444-ecd0-486e-9e4d-5ef48968023d",
      "parameters": {
        "sendTo": "={{ $json.customerEmail }}",
        "message": "={{ $json.emailBody }}",
        "options": {},
        "subject": "={{ $json.emailSubject }}"
      },
      "credentials": {},
      "typeVersion": 2.1
    },
    {
      "id": "e92c40d8-b13e-4223-996e-ab9540592c46",
      "name": "Reintentar Respuesta Automática (Intento 1)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3744,
        1664
      ],
      "parameters": {
        "url": "<__PLACEHOLDER_VALUE__SMTP Fallback API Endpoint__>",
        "method": "POST",
        "options": {},
        "jsonBody": "={{ {\n  \"to\": $json.customerEmail,\n  \"subject\": $json.emailSubject,\n  \"body\": $json.emailBody,\n  \"referenceNumber\": $json.referenceNumber\n} }}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "d05dc36d-bb82-42d6-a631-5fbe16d3ab04",
      "name": "Reintentar Respuesta Automática (Intento 2)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3968,
        1664
      ],
      "parameters": {
        "url": "<__PLACEHOLDER_VALUE__SMTP Fallback API Endpoint (Backup)__>",
        "method": "POST",
        "options": {
          "response": {
            "response": {
              "neverError": true
            }
          }
        },
        "jsonBody": "={{ {\n  \"to\": $json.customerEmail,\n  \"subject\": $json.emailSubject,\n  \"body\": $json.emailBody,\n  \"referenceNumber\": $json.referenceNumber\n} }}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "bacdcf4a-d4ae-4436-bfaf-43954b53d832",
      "name": "Registrar Respuesta Automática Fallida en DLQ",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4192,
        1664
      ],
      "parameters": {
        "url": "<__PLACEHOLDER_VALUE__Dead Letter Queue API Endpoint__>",
        "method": "POST",
        "options": {},
        "jsonBody": "={{ { \"workflow\": \"AI Customer Support Auto-Reply\", \"error\": \"Failed to send auto-reply after 3 attempts\", \"timestamp\": $now.toISO(), \"customerEmail\": $json.customerEmail, \"referenceNumber\": $json.referenceNumber, \"data\": $json } }}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "1b09b649-cda1-4e24-aef7-dda7c3edede8",
      "name": "Nota Adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        432,
        496
      ],
      "parameters": {
        "color": 4,
        "width": 736,
        "height": 640,
        "content": "# 🟢 Setup & Intake\n\n## Configure your email or webhook trigger for new support tickets.  \n\n## Update the “Workflow Configuration” node:\n\n## Slack Channel IDs\n\n## CRM Type (HubSpot or Salesforce)\n\n## Google Sheet ID\n\n## SLA (Service Level Agreement) thresholds  \n\n## Connect credentials for OpenAI, Slack, Google Sheets, and Gmail before running.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "28b93a1c-529b-47b2-bea0-3b6c78ad215b",
      "name": "Nota Adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1264,
        512
      ],
      "parameters": {
        "color": 3,
        "width": 784,
        "height": 624,
        "content": "# 🤖 AI Triage\n\n## The AI Triage & Summarization node uses OpenAI to:\n## Summarize the message (<200 words)\n## Classify issue type (technical, billing, general, urgent)\n## Assign urgency (1–5)\n## Suggest next action  \n## Model: GPT 5 (editable).  \n## Output feeds into routing, logging, and auto-reply generation.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "2abd4593-c630-4bb0-96df-f5c592d489d2",
      "name": "Nota Adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2128,
        528
      ],
      "parameters": {
        "color": 5,
        "width": 784,
        "height": 608,
        "content": "# 🔀 Routing & Logging\n## Route by Classification directs tickets to Slack channels & CRM task queues.  \n## Each triaged ticket is logged to Google Sheets with:\n## Timestamp\n## Classification & urgency\n## AI summary & suggested action  \n## Failed or missing data goes to the DLQ tab for review.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "3482614e-7fe0-4e62-93dd-d15d43c83e60",
      "name": "Nota Adhesiva3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3040,
        544
      ],
      "parameters": {
        "width": 736,
        "height": 592,
        "content": "# ✉️ Auto-Reply & Error Handling\n## The “Auto-Reply Generator” node drafts a personalized acknowledgment email with:\n## Customer name\n##  Issue summary\n## Ticket ID & support SLA timeframe  \n## Email sent via Gmail or SMTP.  \n## Invalid or failed triage attempts are logged to the DLQ for auditing.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "5e3bc0f5-b4be-4b12-892c-d9f24a8ad2d3",
      "name": "Nota Adhesiva4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1200,
        2144
      ],
      "parameters": {
        "color": 2,
        "width": 496,
        "height": 320,
        "content": "# 🔴 Error Handler – Log to DLQ\n## Optional global error catcher for failed executions. Configure  with your Google Sheet DLQ tab or remove if handling errors elsewhere in the workflow.\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "cddc9402-f487-4610-8ff6-7b0a423840cc",
  "connections": {
    "471ce97b-249c-4061-bdc1-be65d3d7e014": {
      "ai_languageModel": [
        [
          {
            "node": "754686ef-a5a9-4158-9eee-be35c091b5f1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "96528838-d29c-497d-a221-b2b4c9025a5d": {
      "main": [
        [
          {
            "node": "8e57b175-aca0-4c67-82dc-10f2bfd245eb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f74fcb3e-acc8-429a-a372-9b2cb23666ff": {
      "main": [
        [
          {
            "node": "a6fe778b-d8de-4127-8bd6-1cfb0266d228",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6df1111d-ada7-4877-8f7c-e8499e9138ee": {
      "main": [
        [
          {
            "node": "754686ef-a5a9-4158-9eee-be35c091b5f1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "22546b0f-d5e9-4f7a-b569-612df6d66721": {
      "main": [
        [
          {
            "node": "ddb40ba2-945a-4f0f-ad46-ef46eb2d852a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "397fc082-4440-47a2-a6a7-602471bf1485": {
      "main": [
        [
          {
            "node": "8b8e2540-5dd7-4ec1-bc5d-d7e8d4c80ac7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "94f25509-3536-4eaa-8e30-bb0d3d2bcb3a": {
      "main": [
        [
          {
            "node": "6df1111d-ada7-4877-8f7c-e8499e9138ee",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "27af38f5-7f57-48b0-9933-2f14fb492ba1": {
      "main": [
        [
          {
            "node": "b8aa6a61-7439-4af7-8dcd-00283d0684f8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b97cd4c8-8dbe-434b-b47b-4ca4c9608218": {
      "main": [
        [
          {
            "node": "27af38f5-7f57-48b0-9933-2f14fb492ba1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "22546b0f-d5e9-4f7a-b569-612df6d66721",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "397fc082-4440-47a2-a6a7-602471bf1485",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "96528838-d29c-497d-a221-b2b4c9025a5d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8e57b175-aca0-4c67-82dc-10f2bfd245eb": {
      "main": [
        [
          {
            "node": "472ccb11-7e70-419c-822f-c6154ea2abc8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "097c80f5-3577-4b45-985e-ef073c3a55f3": {
      "ai_outputParser": [
        [
          {
            "node": "754686ef-a5a9-4158-9eee-be35c091b5f1",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "ddb40ba2-945a-4f0f-ad46-ef46eb2d852a": {
      "main": [
        [
          {
            "node": "dfecf8ef-ce60-4fa0-b944-529a637ce06b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8b8e2540-5dd7-4ec1-bc5d-d7e8d4c80ac7": {
      "main": [
        [
          {
            "node": "c492c5b8-8caa-422a-b291-be06512b1810",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a6fe778b-d8de-4127-8bd6-1cfb0266d228": {
      "main": [
        [
          {
            "node": "e3b53f01-39cf-40fa-b4b1-a16279d383fa",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "113a0dee-5142-48ab-9b94-a1ef76407712": {
      "main": [
        [
          {
            "node": "e92c40d8-b13e-4223-996e-ab9540592c46",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b8aa6a61-7439-4af7-8dcd-00283d0684f8": {
      "main": [
        [
          {
            "node": "1fcfd918-bdb5-4ce3-b038-cab9cfa2c433",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e92c40d8-b13e-4223-996e-ab9540592c46": {
      "main": [
        [
          {
            "node": "d05dc36d-bb82-42d6-a631-5fbe16d3ab04",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d05dc36d-bb82-42d6-a631-5fbe16d3ab04": {
      "main": [
        [
          {
            "node": "bacdcf4a-d4ae-4436-bfaf-43954b53d832",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "472ccb11-7e70-419c-822f-c6154ea2abc8": {
      "main": [
        [
          {
            "node": "f74fcb3e-acc8-429a-a372-9b2cb23666ff",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e3b53f01-39cf-40fa-b4b1-a16279d383fa": {
      "main": [
        [
          {
            "node": "113a0dee-5142-48ab-9b94-a1ef76407712",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dfecf8ef-ce60-4fa0-b944-529a637ce06b": {
      "main": [
        [
          {
            "node": "f74fcb3e-acc8-429a-a372-9b2cb23666ff",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c492c5b8-8caa-422a-b291-be06512b1810": {
      "main": [
        [
          {
            "node": "f74fcb3e-acc8-429a-a372-9b2cb23666ff",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "754686ef-a5a9-4158-9eee-be35c091b5f1": {
      "main": [
        [
          {
            "node": "b97cd4c8-8dbe-434b-b47b-4ca4c9608218",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1fcfd918-bdb5-4ce3-b038-cab9cfa2c433": {
      "main": [
        [
          {
            "node": "f74fcb3e-acc8-429a-a372-9b2cb23666ff",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "40bab90c-06e8-400e-ba35-d629ab529144": {
      "main": [
        [
          {
            "node": "94f25509-3536-4eaa-8e30-bb0d3d2bcb3a",
            "type": "main",
            "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 - Gestión de tickets, Resumen de IA

¿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

Construir un catálogo de errores de API basado en IA: de GitHub a Airtable, Notion y Slack
Detectar y clasificar automáticamente errores de la API de GitHub en Airtable, Notion y Slack usando GPT-4o
If
Set
Code
+
If
Set
Code
30 NodosRahul Joshi
Gestión de tickets
Desarrollo de leads y flujos de correo electrónico
Usar Google Maps, SendGrid e IA para automatizar el desarrollo de leads B2B y el marketing por correo electrónico
If
Set
Code
+
If
Set
Code
141 NodosEzema Kingsley Chibuzo
Generación de leads
Flujo de trabajo de monitoreo de Twitter
Automatizar el análisis de sentimiento en Twitter con OpenAI, Google Sheets y recordatorios de Slack
If
Set
Slack
+
If
Set
Slack
15 NodosInfyOm Technologies
Investigación de mercado
Análisis inteligente diario de grupos de WhatsApp: Análisis con GPT-4.1 y transcripción de mensajes de voz
Análisis inteligente diario de grupos de WhatsApp: análisis con GPT-4.1 y transcripción de mensajes de voz
If
Set
Code
+
If
Set
Code
52 NodosDaniel Lianes
Varios
Asistente de correo electrónico inteligente con clasificación de IA, borrador de Gmail y notificación de Slack
Automatización de la gestión de correos con clasificación de OpenAI, borradores de Gmail y recordatorios de Slack
Set
Code
Gmail
+
Set
Code
Gmail
16 NodosFabian ZNTL
Gestión de tickets
🎧 Robot de automatización de soporte de voz IT – conversión de mensajes de voz de Telegram a tickets de JIRA (usando OpenAI Whisper)
Convertir mensajes de voz de Telegram automáticamente en tickets JIRA con Whisper y GPT-4.1 Mini
If
Set
Code
+
If
Set
Code
25 NodosTrung Tran
Gestión de tickets
Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos32
Categoría2
Tipos de nodos13
Descripción de la dificultad

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

Autor
NodeAlchemy

NodeAlchemy

@robertsantini

🧠 NodeAlchemy turns ideas into powerful automations. I build modular n8n workflows for creators and businesses — from personal productivity tools to full-scale systems. ⚡ Explore ready-made templates or request a custom build.

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34