AutomationFlowsAI & RAG › Auto-Classify & Respond to User Inquiries

Auto-Classify & Respond to User Inquiries

Original n8n title: 유저 문의 자동 분류/응대 (if Node)

유저 문의 자동 분류/응대 (IF Node). Uses openAi, googleTranslate, googleSheets, readBinaryFile. Webhook trigger; 19 nodes.

Webhook trigger★★★★☆ complexityAI-powered19 nodesOpenAIGoogle TranslateGoogle SheetsRead Binary FileEmail Send
AI & RAG Trigger: Webhook Nodes: 19 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Emailsend → Google Sheets recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "\uc720\uc800 \ubb38\uc758 \uc790\ub3d9 \ubd84\ub958/\uc751\ub300 (IF Node)",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "inquiry",
        "responseMode": "responseNode",
        "options": {}
      },
      "id": "1",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1.1,
      "position": [
        240,
        400
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "user",
              "name": "user",
              "value": "={{ $json.body.user || $json.user || 'unknown@example.com' }}",
              "type": "string"
            },
            {
              "id": "content",
              "name": "content",
              "value": "={{ $json.body.content || $json.content || '' }}",
              "type": "string"
            },
            {
              "id": "type",
              "name": "type",
              "value": "={{ ($json.body.type || $json.type || 'general').toLowerCase() }}",
              "type": "string"
            },
            {
              "id": "is_repeat",
              "name": "is_repeat",
              "value": "={{ $json.body.is_repeat || $json.is_repeat || false }}",
              "type": "boolean"
            },
            {
              "id": "received_at",
              "name": "received_at",
              "value": "={{ $now.toISO() }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "id": "2",
      "name": "Set (Norm)",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.3,
      "position": [
        460,
        400
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict"
          },
          "conditions": [
            {
              "id": "cond1",
              "leftValue": "={{ $json.type }}",
              "rightValue": "payment",
              "operator": {
                "type": "string",
                "operation": "equals"
              }
            },
            {
              "id": "cond2",
              "leftValue": "={{ $json.type }}",
              "rightValue": "subscription",
              "operator": {
                "type": "string",
                "operation": "equals"
              }
            },
            {
              "id": "cond3",
              "leftValue": "={{ $json.is_repeat }}",
              "rightValue": true,
              "operator": {
                "type": "boolean",
                "operation": "equals"
              }
            }
          ],
          "combinator": "or"
        },
        "options": {}
      },
      "id": "3",
      "name": "IF (Critical Check)",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        680,
        300
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "level",
              "name": "level",
              "value": "critical",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "id": "4",
      "name": "Set (Set_Crit)",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.3,
      "position": [
        900,
        200
      ]
    },
    {
      "parameters": {
        "resource": "text",
        "model": {
          "__rl": true,
          "value": "gpt-5-mini",
          "mode": "list",
          "cachedResultName": "gpt-5-mini"
        },
        "prompt": {
          "__rl": true,
          "value": "=\ub2f9\uc2e0\uc740 \uace0\uac1d \ubb38\uc758\uc758 \uc911\uc694\ub3c4\ub97c \ud310\ub2e8\ud558\ub294 \uc804\ubb38\uac00\uc785\ub2c8\ub2e4.\n\n\ub2e4\uc74c \ubb38\uc758\ub97c \ubd84\uc11d\ud558\uc5ec \uc801\uc808\ud55c \ub808\ubca8\uc744 \ud310\uc815\ud558\uc138\uc694:\n\n**\ubb38\uc758 \uc720\ud615**: {{ $json.type }}\n**\ubb38\uc758 \ub0b4\uc6a9**: {{ $json.content }}\n\n\ub808\ubca8 \uae30\uc900:\n- critical: \uc989\uac01 \ub300\uc751 \ud544\uc694 (\uc11c\ube44\uc2a4 \uc911\ub2e8, \ub370\uc774\ud130 \uc190\uc2e4, \ubcf4\uc548 \ubb38\uc81c)\n- error: \uc8fc\uc694 \uae30\ub2a5 \uc624\ub958 (\ud575\uc2ec \uae30\ub2a5 \ubd88\uac00, \ubc18\ubcf5 \uc624\ub958)\n- warning: \ubd80\ubd84 \uc81c\ud55c (\uc77c\ubd80 \uae30\ub2a5 \ubb38\uc81c, \uc131\ub2a5 \uc800\ud558)\n- info: \uc77c\ubc18 \ubb38\uc758 (\uc0ac\uc6a9\ubc95, \uae30\ub2a5 \uc694\uccad, \uc9c8\ubb38)\n\nJSON \ud615\uc2dd\uc73c\ub85c \uc751\ub2f5:\n{\"level\": \"critical|error|warning|info\"}",
          "mode": "id"
        },
        "options": {
          "temperature": 0.3,
          "responseFormat": "json_object"
        }
      },
      "id": "5",
      "name": "AI Agent (AI_Level)",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.4,
      "position": [
        900,
        400
      ],
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 1000
    },
    {
      "parameters": {
        "resource": "text",
        "model": {
          "__rl": true,
          "value": "gpt-5-mini",
          "mode": "list",
          "cachedResultName": "gpt-5-mini"
        },
        "prompt": {
          "__rl": true,
          "value": "=\ub2e4\uc74c \uace0\uac1d \ubb38\uc758\ub97c 40\uc790 \uc774\ub0b4\ub85c \uc694\uc57d\ud558\uc138\uc694:\n\n{{ $json.content }}\n\n\uc694\uc57d \uc6d0\uce59:\n- \ud575\uc2ec \ubb38\uc81c\ub9cc \uac04\uacb0\ud558\uac8c\n- \ubb38\uc758 \uc5b8\uc5b4 \uadf8\ub300\ub85c \uc0ac\uc6a9\n- 40\uc790 \uc5c4\uc218\n\nJSON \ud615\uc2dd:\n{\"summary\": \"\uc694\uc57d \ub0b4\uc6a9\"}",
          "mode": "id"
        },
        "options": {
          "temperature": 0.5,
          "responseFormat": "json_object"
        }
      },
      "id": "6",
      "name": "AI Agent (AI_Sum)",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.4,
      "position": [
        680,
        500
      ],
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 1000
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict"
          },
          "conditions": [
            {
              "id": "len1",
              "leftValue": "={{ ($json.content || '').length }}",
              "rightValue": 200,
              "operator": {
                "type": "number",
                "operation": "smallerEqual"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "id": "17",
      "name": "IF (Translate Length <=200)",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        680,
        620
      ]
    },
    {
      "parameters": {
        "authentication": "serviceAccount",
        "operation": "translateText",
        "text": "={{ $json.content }}",
        "translateTo": "ko",
        "options": {}
      },
      "id": "7",
      "name": "Google Translate (Trans)",
      "type": "n8n-nodes-base.googleTranslate",
      "typeVersion": 1,
      "position": [
        680,
        700
      ],
      "credentials": {
        "googleApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "resource": "text",
        "model": {
          "__rl": true,
          "value": "gpt-5-mini",
          "mode": "list",
          "cachedResultName": "gpt-5-mini"
        },
        "prompt": {
          "__rl": true,
          "value": "=\ub2f9\uc2e0\uc740 \ubc88\uc5ed \uc804\ubb38\uac00\uc785\ub2c8\ub2e4.\n\n\uc544\ub798 \uace0\uac1d \ubb38\uc758 \ub0b4\uc6a9\uc744 **\ud55c\uad6d\uc5b4\ub85c \ubc88\uc5ed**\ud558\uace0, \uc6d0\ubb38\uc758 \uc5b8\uc5b4\ub97c ISO \ucf54\ub4dc(\uac00\ub2a5\ud558\uba74 2\uae00\uc790, \ud544\uc694 \uc2dc \uc9c0\uc5ed \ud3ec\ud568 \uc608: zh-cn)\ub85c \ucd94\uc815\ud558\uc138\uc694.\n\n\ubb38\uc758 \ub0b4\uc6a9:\n{{ $json.content }}\n\nJSON \ud615\uc2dd\uc73c\ub85c\ub9cc \uc751\ub2f5:\n{\"translatedText\": \"\ubc88\uc5ed\ubb38\", \"detectedSourceLanguage\": \"en|ko|ja|zh-cn|...\"}",
          "mode": "id"
        },
        "options": {
          "temperature": 0.2,
          "responseFormat": "json_object"
        }
      },
      "id": "18",
      "name": "AI Agent (AI_Trans)",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.4,
      "position": [
        900,
        840
      ],
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 1000
    },
    {
      "parameters": {
        "jsCode": "// OpenAI \ubc88\uc5ed \uacb0\uacfc\ub97c Google Translate \ucd9c\ub825 \ud615\ud0dc\ub85c \uc815\uaddc\ud654\n// \uae30\ub300 \uc785\ub825: $json.message.content = {\"translatedText\":..., \"detectedSourceLanguage\":...}\n\nlet translatedText = '';\nlet detectedSourceLanguage = '';\n\nif ($json?.message?.content) {\n  try {\n    const parsed = JSON.parse($json.message.content);\n    translatedText = parsed.translatedText || parsed.translation || '';\n    detectedSourceLanguage = parsed.detectedSourceLanguage || parsed.language || '';\n  } catch (e) {\n    // JSON \ud30c\uc2f1 \uc2e4\ud328 \uc2dc \uc6d0\ubb38(\uace0\uac1d \ubb38\uc758 \ub0b4\uc6a9)\uc744 \uadf8\ub300\ub85c \uc0ac\uc6a9\n    translatedText = $json.content || '';\n    detectedSourceLanguage = '';\n  }\n}\n\nreturn [{\n  json: {\n    translatedText: translatedText,\n    detectedSourceLanguage: detectedSourceLanguage\n  }\n}];"
      },
      "id": "19",
      "name": "Code (Trans Normalize)",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1120,
        840
      ]
    },
    {
      "parameters": {
        "jsCode": "// Track A: \uc6d0\ubcf8 \ub370\uc774\ud130 + level \ucd94\uac00\nconst original = $('Set (Norm)').first().json;\nconst level = $json.level || ($json.message?.content ? JSON.parse($json.message.content).level : 'info');\n\nreturn [{\n  json: {\n    ...original,\n    level: level\n  }\n}];"
      },
      "id": "8",
      "name": "Code (Combine A)",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1120,
        300
      ]
    },
    {
      "parameters": {
        "jsCode": "// Track B: \uc6d0\ubcf8 \ub370\uc774\ud130 + summary \ucd94\uac00\nconst original = $('Set (Norm)').first().json;\nconst summary = $json.message?.content ? JSON.parse($json.message.content).summary : '';\n\nreturn [{\n  json: {\n    ...original,\n    summary: summary\n  }\n}];"
      },
      "id": "9",
      "name": "Code (Combine B)",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        900,
        500
      ]
    },
    {
      "parameters": {
        "jsCode": "// Track C: \uc6d0\ubcf8 \ub370\uc774\ud130 + \ubc88\uc5ed \uc815\ubcf4 \ucd94\uac00\nconst original = $('Set (Norm)').first().json;\n\nreturn [{\n  json: {\n    ...original,\n    translatedText: $json.translatedText || original.content,\n    detectedSourceLanguage: $json.detectedSourceLanguage || 'en'\n  }\n}];"
      },
      "id": "10",
      "name": "Code (Combine C)",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        900,
        700
      ]
    },
    {
      "parameters": {
        "jsCode": "// 3\uac1c \ud2b8\ub799\uc758 \uacb0\uacfc\ub97c \ud558\ub098\ub85c \ubcd1\ud569\nconst trackA = $('Code (Combine A)').first().json;\nconst trackB = $('Code (Combine B)').first().json;\nconst trackC = $('Code (Combine C)').first().json;\n\nreturn [{\n  json: {\n    ...trackA,\n    ...trackB,\n    ...trackC\n  }\n}];"
      },
      "id": "11",
      "name": "Code (Final Merge)",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1340,
        500
      ]
    },
    {
      "parameters": {
        "authentication": "serviceAccount",
        "operation": "append",
        "sheetId": {
          "__rl": true,
          "value": "inquiry-log",
          "mode": "name"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "received_at": "={{ $json.received_at || $now.toISO() }}",
            "user": "={{ $json.user }}",
            "type": "={{ $json.type }}",
            "is_repeat": "={{ $json.is_repeat }}",
            "level": "={{ $json.level || 'info' }}",
            "summary": "={{ $json.summary || '' }}",
            "language": "={{ $json.detectedSourceLanguage || 'en' }}",
            "content": "={{ $json.content }}",
            "translated_text": "={{ $json.translatedText || $json.content }}"
          }
        },
        "options": {}
      },
      "id": "12",
      "name": "Google Sheets (Log)",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.4,
      "position": [
        1560,
        260
      ],
      "credentials": {
        "googleSheetsApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "filePath": "=/home/node/.n8n/guides/{{ $json.type }}.md",
        "options": {}
      },
      "id": "13",
      "name": "Read Binary File (Load_File)",
      "type": "n8n-nodes-base.readBinaryFile",
      "typeVersion": 1,
      "position": [
        1560,
        540
      ]
    },
    {
      "parameters": {
        "resource": "text",
        "model": {
          "__rl": true,
          "value": "gpt-5-mini",
          "mode": "list",
          "cachedResultName": "gpt-5-mini"
        },
        "prompt": {
          "__rl": true,
          "value": "=\ub2f9\uc2e0\uc740 \uce5c\uc808\ud55c \uace0\uac1d \uc9c0\uc6d0 \ub2f4\ub2f9\uc790\uc785\ub2c8\ub2e4.\n\n**\uace0\uac1d \uc815\ubcf4**:\n- \uc0ac\uc6a9\uc790: {{ $('Code (Final Merge)').item.json.user }}\n- \uc5b8\uc5b4: {{ $('Code (Final Merge)').item.json.detectedSourceLanguage || 'en' }}\n\n**\ubb38\uc758 \uc815\ubcf4**:\n- \uc720\ud615: {{ $('Code (Final Merge)').item.json.type }}\n- \ub808\ubca8: {{ $('Code (Final Merge)').item.json.level || 'info' }}\n- \ubc18\ubcf5: {{ $('Code (Final Merge)').item.json.is_repeat ? '\uc608' : '\uc544\ub2c8\uc624' }}\n\n**\ubb38\uc758 \ub0b4\uc6a9**:\n{{ $('Code (Final Merge)').item.json.content }}\n\n**\uac00\uc774\ub4dc \ubb38\uc11c**:\n{{ $binary.data ? Buffer.from($binary.data.data).toString('utf8') : '\uac00\uc774\ub4dc \uc5c6\uc74c' }}\n\n\uc704 \uac00\uc774\ub4dc\ub97c \ucc38\uace0\ud558\uc5ec \uace0\uac1d\uc5d0\uac8c \ubcf4\ub0bc \ub2f5\ubcc0\uc744 \uc791\uc131\ud558\uc138\uc694.\n\n\ub2f5\ubcc0 \uc6d0\uce59:\n1. \uace0\uac1d \uc5b8\uc5b4\ub85c \uc791\uc131\n2. \uce5c\uc808\ud558\uace0 \uba85\ud655\ud558\uac8c\n3. \uac00\uc774\ub4dc \uc815\ucc45 \uc900\uc218\n4. \uad6c\uccb4\uc801\uc778 \ud574\uacb0 \ubc29\ubc95 \uc81c\uc2dc\n{{ $('Code (Final Merge)').item.json.is_repeat ? '5. \ubc18\ubcf5 \ubb38\uc758\uc784\uc744 \uc5b8\uae09\ud558\uace0 \ucd94\uac00 \ud655\uc778 \ud544\uc694\ud568\uc744 \uc548\ub0b4' : '' }}\n\nJSON \ud615\uc2dd:\n{\"response\": \"\ub2f5\ubcc0 \uc804\ubb38\"}",
          "mode": "id"
        },
        "options": {
          "temperature": 0.7,
          "responseFormat": "json_object"
        }
      },
      "id": "14",
      "name": "AI Agent (AI_Draft)",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.4,
      "position": [
        1780,
        540
      ],
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 1000
    },
    {
      "parameters": {
        "jsCode": "// 30+ \uad6d\uac00 \uc5b8\uc5b4\ubcc4 \ub2f4\ub2f9\uc790 \uc774\uba54\uc77c \ub9e4\ud551\nconst languageToEmail = {\n  'ko': 'cs.kr@company.com',\n  'ja': 'cs.jp@company.com',\n  'zh': 'cs.cn@company.com',\n  'zh-cn': 'cs.cn@company.com',\n  'zh-tw': 'cs.tw@company.com',\n  'zh-hk': 'cs.hk@company.com',\n  'th': 'cs.th@company.com',\n  'vi': 'cs.vn@company.com',\n  'id': 'cs.id@company.com',\n  'ms': 'cs.my@company.com',\n  'fil': 'cs.ph@company.com',\n  'tl': 'cs.ph@company.com',\n  'hi': 'cs.in@company.com',\n  'en': 'cs.us@company.com',\n  'en-us': 'cs.us@company.com',\n  'en-gb': 'cs.uk@company.com',\n  'de': 'cs.de@company.com',\n  'fr': 'cs.fr@company.com',\n  'es': 'cs.es@company.com',\n  'it': 'cs.it@company.com',\n  'pt': 'cs.pt@company.com',\n  'pt-br': 'cs.br@company.com',\n  'nl': 'cs.nl@company.com',\n  'pl': 'cs.pl@company.com',\n  'ru': 'cs.ru@company.com',\n  'tr': 'cs.tr@company.com',\n  'sv': 'cs.se@company.com',\n  'no': 'cs.no@company.com',\n  'da': 'cs.dk@company.com',\n  'fi': 'cs.fi@company.com',\n  'en-ca': 'cs.ca@company.com',\n  'es-mx': 'cs.mx@company.com',\n  'ar': 'cs.ae@company.com',\n  'he': 'cs.il@company.com',\n  'en-au': 'cs.au@company.com'\n};\n\nconst defaultEmail = 'cs@company.com';\n\nconst items = $input.all();\nconst result = [];\n\nfor (const item of items) {\n  const language = (item.json.detectedSourceLanguage || item.json.language || 'en').toLowerCase();\n  const level = item.json.level || 'info';\n  \n  // \uc5b8\uc5b4\ubcc4 \uc774\uba54\uc77c \ub9e4\ud551\n  let managerEmail = languageToEmail[language];\n  \n  // \uae30\ubcf8 \uc5b8\uc5b4 fallback\n  if (!managerEmail && language.includes('-')) {\n    const baseLang = language.split('-')[0];\n    managerEmail = languageToEmail[baseLang];\n  }\n  \n  if (!managerEmail) {\n    managerEmail = defaultEmail;\n  }\n  \n  // AI \ub2f5\ubcc0 \ud30c\uc2f1\n  let expectedResponse = '';\n  if (item.json.message && item.json.message.content) {\n    try {\n      expectedResponse = JSON.parse(item.json.message.content).response || '';\n    } catch (e) {\n      expectedResponse = item.json.message.content || '';\n    }\n  }\n  \n  result.push({\n    json: {\n      ...item.json,\n      manager_email: managerEmail,\n      expected_response: expectedResponse\n    }\n  });\n}\n\nreturn result;"
      },
      "id": "15",
      "name": "Code (Map_Address)",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        2000,
        540
      ]
    },
    {
      "parameters": {
        "fromEmail": "noreply@company.com",
        "toEmail": "={{ $json.manager_email }}",
        "subject": "={{ '[' + ($json.level || 'info').toUpperCase() + '][' + $json.type.toUpperCase() + '] ' + ($json.summary || '\uace0\uac1d \ubb38\uc758') }}",
        "emailType": "html",
        "message": "=<h2>\uace0\uac1d \ubb38\uc758</h2>\n<p><strong>\ubb38\uc758 \uc2dc\uac01:</strong> {{ $json.received_at }}</p>\n<p><strong>\uace0\uac1d:</strong> {{ $json.user }}</p>\n<p><strong>\uc720\ud615:</strong> {{ $json.type }}</p>\n<p><strong>\ub808\ubca8:</strong> {{ $json.level || 'info' }}</p>\n<p><strong>\ubc18\ubcf5 \ubb38\uc758:</strong> {{ $json.is_repeat ? '\uc608' : '\uc544\ub2c8\uc624' }}</p>\n\n<h3>\ubb38\uc758 \ub0b4\uc6a9</h3>\n<p>{{ $json.content }}</p>\n\n<h3>\ud55c\uad6d\uc5b4 \ubc88\uc5ed</h3>\n<p>{{ $json.translatedText || $json.content }}</p>\n\n<h3>AI \ub2f5\ubcc0 \ucd08\uc548</h3>\n<p>{{ $json.expected_response }}</p>\n\n<hr>\n<p style=\"font-size: 12px; color: #666;\">\uc790\ub3d9 \uc0dd\uc131\ub41c \uc774\uba54\uc77c\uc785\ub2c8\ub2e4.</p>",
        "options": {}
      },
      "id": "16",
      "name": "Email (Mail_Send)",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2.1,
      "position": [
        2220,
        540
      ],
      "credentials": {
        "smtp": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Set (Norm)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set (Norm)": {
      "main": [
        [
          {
            "node": "IF (Critical Check)",
            "type": "main",
            "index": 0
          },
          {
            "node": "AI Agent (AI_Sum)",
            "type": "main",
            "index": 0
          },
          {
            "node": "IF (Translate Length <=200)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF (Translate Length <=200)": {
      "main": [
        [
          {
            "node": "Google Translate (Trans)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "AI Agent (AI_Trans)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent (AI_Trans)": {
      "main": [
        [
          {
            "node": "Code (Trans Normalize)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code (Trans Normalize)": {
      "main": [
        [
          {
            "node": "Code (Combine C)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF (Critical Check)": {
      "main": [
        [
          {
            "node": "Set (Set_Crit)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "AI Agent (AI_Level)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set (Set_Crit)": {
      "main": [
        [
          {
            "node": "Code (Combine A)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent (AI_Level)": {
      "main": [
        [
          {
            "node": "Code (Combine A)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent (AI_Sum)": {
      "main": [
        [
          {
            "node": "Code (Combine B)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Translate (Trans)": {
      "main": [
        [
          {
            "node": "Code (Combine C)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code (Combine A)": {
      "main": [
        [
          {
            "node": "Code (Final Merge)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code (Combine B)": {
      "main": [
        [
          {
            "node": "Code (Final Merge)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code (Combine C)": {
      "main": [
        [
          {
            "node": "Code (Final Merge)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code (Final Merge)": {
      "main": [
        [
          {
            "node": "Google Sheets (Log)",
            "type": "main",
            "index": 0
          },
          {
            "node": "Read Binary File (Load_File)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Binary File (Load_File)": {
      "main": [
        [
          {
            "node": "AI Agent (AI_Draft)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent (AI_Draft)": {
      "main": [
        [
          {
            "node": "Code (Map_Address)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code (Map_Address)": {
      "main": [
        [
          {
            "node": "Email (Mail_Send)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": null,
  "tags": [],
  "triggerCount": 1,
  "updatedAt": "2026-01-17T19:20:00.000Z",
  "versionId": "final-if-node"
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

유저 문의 자동 분류/응대 (IF Node). Uses openAi, googleTranslate, googleSheets, readBinaryFile. Webhook trigger; 19 nodes.

Source: https://github.com/letsescape/shop-clone-n8n/blob/fe153456020b0f4d480135b0183bf2a69d02596b/n8n_data/workflows/inquiry.json — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Watch on Youtube▶️

HTTP Request, Email Send, Google Sheets +3
AI & RAG

This workflow helps solar sales teams reactivate cold leads automatically using value-first SMS follow-ups, AI-powered sentiment detection, real-time alerts, and CRM tracking.

Google Sheets, Twilio, Email Send +1
AI & RAG

Property managers and operations teams who want better visibility into unresolved maintenance requests.

OpenAI, Google Sheets, Slack +1
AI & RAG

Consulting firms in strategy, management, or IT who want to automate client onboarding and internal task assignment.

OpenAI, Google Sheets, Slack +3
AI & RAG

Property management teams handling leases, IDs, and compliance documents.

Google Drive, OpenAI, Google Sheets +2