AI 고객 지원 분류 및 요약 시스템
고급
이것은Ticket Management, AI Summarization분야의자동화 워크플로우로, 32개의 노드를 포함합니다.주로 If, Set, Code, Gmail, Slack 등의 노드를 사용하며. GPT-4o, Slack 및 CRM 통합을 사용한 고객 지원 자동 처리
사전 요구사항
- •Google 계정 및 Gmail API 인증 정보
- •Slack Bot Token 또는 Webhook URL
- •HTTP Webhook 엔드포인트(n8n이 자동으로 생성)
- •대상 API의 인증 정보가 필요할 수 있음
- •Google Sheets API 인증 정보
- •OpenAI API Key
사용된 노드 (32)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "wDPgvREnPGzo267x",
"meta": {
"instanceId": "f7efda6e0fb3e5b5aba58995b43b7c79234174dc1e6bcfb5578eff460018af38",
"templateCredsSetupCompleted": true
},
"name": "AI Customer Support Triage & Summarization System",
"tags": [],
"nodes": [
{
"id": "40bab90c-06e8-400e-ba35-d629ab529144",
"name": "수신 트리거 (이메일/폼/채팅)",
"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": "워크플로우 구성",
"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": "고객 데이터 추출",
"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": "AI 분류 및 요약 에이전트",
"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 채팅 모델",
"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": "구조화된 출력 파서",
"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": "분류별 라우팅",
"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": "기술 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": "청구 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": "일반 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": "긴급 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": "CRM 작업 생성 (기술)",
"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": "CRM 작업 생성 (청구)",
"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": "CRM 작업 생성 (일반)",
"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": "CRM 작업 생성 (긴급)",
"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": "Google Sheets에 기록 (기술)",
"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": "Google Sheets에 기록 (청구)",
"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": "Google Sheets에 기록 (일반)",
"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": "Google Sheets에 기록 (긴급)",
"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": "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": "오류 처리기 - 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": "참조 번호 생성",
"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": "자동 응답 이메일 데이터 준비",
"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": "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": "자동 응답 재시도 (시도 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": "자동 응답 재시도 (시도 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": "실패한 자동 응답을 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": "스티키 노트",
"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": "스티키 노트1",
"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": "스티키 노트2",
"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": "스티키 노트3",
"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": "스티키 노트4",
"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
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 티켓 관리, AI 요약
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
AI 기반 API 오류 디렉토리 구축: GitHub에서 Airtable, Notion, Slack으로
GPT-4o를 사용하여 GitHub API 오류를 Airtable, Notion, Slack에 자동 감지 및 분류
If
Set
Code
+
If
Set
Code
30 노드Rahul Joshi
티켓 관리
리드 생성 및 이메일 워크플로
Google 지도, SendGrid 및 AI를 사용한 B2B 잠재 고객 개발 및 이메일 마케팅 자동화
If
Set
Code
+
If
Set
Code
141 노드Ezema Kingsley Chibuzo
리드 생성
Twitter 모니터링 워크플로우
OpenAI, Google Sheets 및 Slack 알림을 사용한 Twitter 감정 분석 자동화
If
Set
Slack
+
If
Set
Slack
15 노드InfyOm Technologies
시장 조사
매일 WhatsApp 그룹 지능형 분석: GPT-4.1 분석 및 음성 메시지 변환
매일 WhatsApp 그룹 지능 분석: GPT-4.1 분석 및 음성 메시지 트랜스크립션
If
Set
Code
+
If
Set
Code
52 노드Daniel Lianes
기타
AI 분류, Gmail 초안 작성 및 Slack 알림이 가능한 스마트 이메일 어시스턴트
OpenAI 분류, Gmail 초안 및 Slack 알림을 사용한 이메일 관리 자동화
Set
Code
Gmail
+
Set
Code
Gmail
16 노드Fabian ZNTL
티켓 관리
🎧 IT 음성 지원 자동화 봇 – Telegram 음성 메시지를 JIRA 티켓으로 전환 (OpenAI Whisper 사용)
Whisper 및 GPT-4.1 Mini를 통한 Telegram 음성 메시지 자동 JIRA 티켓 변환
If
Set
Code
+
If
Set
Code
25 노드Trung Tran
티켓 관리
워크플로우 정보
난이도
고급
노드 수32
카테고리2
노드 유형13
저자
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.
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유