AutomationFlowsAI & RAG › AI-Powered Inquiry Auto-Reply Workflow

AI-Powered Inquiry Auto-Reply Workflow

Original n8n title: Workflow Ver1

Workflow-Ver1. Uses googleSheetsTrigger, openAi, gmail, googleSheets. Event-driven trigger; 12 nodes.

Event trigger★★★★☆ complexityAI-powered12 nodesGoogle Sheets TriggerOpenAIGmailGoogle SheetsSlack
AI & RAG Trigger: Event Nodes: 12 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Gmail → 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
{
  "id": "5CmV0koXuemjbEmB",
  "nodes": [
    {
      "parameters": {
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "1V6cIC3_5s3w6xq-ZjVZnEQ65rXXbTY56UwxNcoACFUQ"
        },
        "sheetName": {
          "__rl": true,
          "value": "gid=0",
          "mode": "list",
          "cachedResultName": "\uace0\uac1d\ubb38\uc758_\ud3fc",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1V6cIC3_5s3w6xq-ZjVZnEQ65rXXbTY56UwxNcoACFUQ/edit#gid=0"
        },
        "event": "rowAdded",
        "options": {}
      },
      "id": "trigger-new-inquiry",
      "name": "On New Inquiry Row",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "typeVersion": 1,
      "position": [
        240,
        400
      ],
      "credentials": {
        "googleSheetsTriggerOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "id": "classify-inquiry",
      "name": "Classify Inquiry",
      "position": [
        400,
        400
      ],
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 5000,
      "onError": "continueErrorOutput",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 2.1,
      "parameters": {
        "resource": "text",
        "operation": "response",
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "gpt-4o-mini"
        },
        "simplify": true,
        "options": {},
        "responses": {
          "values": [
            {
              "type": "text",
              "role": "system",
              "content": "\ub2f9\uc2e0\uc740 \uace0\uac1d \ubb38\uc758\ub97c \ubd84\ub958\ud558\ub294 \uc804\ubb38 \uc5b4\uc2dc\uc2a4\ud134\ud2b8\uc785\ub2c8\ub2e4.\n\ub2e4\uc74c \uae30\uc900\uc5d0 \ub530\ub77c \ubb38\uc758\ub97c \ubd84\uc11d\ud558\uace0, \ubc18\ub4dc\uc2dc JSON \ud615\uc2dd\uc73c\ub85c\ub9cc \uc751\ub2f5\ud558\uc138\uc694.\n\n[\uce74\ud14c\uace0\ub9ac]\n- \uc81c\ud488\ubb38\uc758: \uc81c\ud488 \uc0ac\uc591, \uc0ac\uc6a9\ubc95, \uc7ac\uace0 \ub4f1\uc5d0 \ub300\ud55c \uc9c8\ubb38\n- \ubc30\uc1a1\ubb38\uc758: \ubc30\uc1a1 \uc0c1\ud0dc, \uc608\uc815\uc77c, \uc8fc\uc18c \ubcc0\uacbd \ub4f1\n- \ud658\ubd88\uc694\uccad: \ud658\ubd88, \uad50\ud658, \ucde8\uc18c\uc5d0 \ub300\ud55c \uc694\uccad\n- \uae30\ud0c0: \uc704 \uce74\ud14c\uace0\ub9ac\uc5d0 \ud574\ub2f9\ud558\uc9c0 \uc54a\ub294 \ubb38\uc758\n\n[\ubcf5\uc7a1\ub3c4]\n- \ub2e8\uc21c\ubb38\uc758: \ub2f5\ubcc0\uc774 \uc815\ud615\ud654\ub418\uc5b4 \uc788\uace0, \uac1c\uc778\uc815\ubcf4 \ud655\uc778\uc774\ub098 \uc815\ucc45 \ud310\ub2e8\uc774 \ubd88\ud544\uc694\ud55c \ubb38\uc758\n- \ud655\uc778\ud544\uc694: \uac1c\uc778 \uc8fc\ubb38 \uc815\ubcf4 \ud655\uc778\uc774 \ud544\uc694\ud558\uac70\ub098, \ud658\ubd88/\uad50\ud658\ucc98\ub7fc \uc815\ucc45 \ud310\ub2e8\uc774 \ud544\uc694\ud558\uac70\ub098, \uac10\uc815\uc801 \ucef4\ud50c\ub808\uc778\uc774 \ud3ec\ud568\ub41c \ubb38\uc758\n\n[\ucd9c\ub825 \ud615\uc2dd]\n{\n  \"category\": \"\uc81c\ud488\ubb38\uc758 | \ubc30\uc1a1\ubb38\uc758 | \ud658\ubd88\uc694\uccad | \uae30\ud0c0\",\n  \"complexity\": \"\ub2e8\uc21c\ubb38\uc758 | \ud655\uc778\ud544\uc694\",\n  \"reason\": \"\ud310\ub2e8 \uadfc\uac70 \ud55c \uc904 \uc694\uc57d\"\n}\n\n\ucf54\ub4dc\ube14\ub85d\uc774\ub098 \uc124\uba85 \uc5c6\uc774 \uc21c\uc218 JSON \uac1d\uccb4\ub9cc \ucd9c\ub825\ud558\uc138\uc694."
            },
            {
              "type": "text",
              "role": "user",
              "content": "=\uace0\uac1d\uba85: {{ $json[\"\uace0\uac1d\uba85\"] }}\n\uc774\uba54\uc77c: {{ $json[\"\uc774\uba54\uc77c\"] }}\n\ubb38\uc758 \ub0b4\uc6a9:\n---\n{{ $json[\"\ubb38\uc758\ub0b4\uc6a9\"] }}\n---\n\n\uc704 \ubb38\uc758\ub97c \ubd84\ub958\ud574\uc8fc\uc138\uc694."
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "jsCode": "const items = $input.all();\nconst triggerItems = $('On New Inquiry Row').all();\n\nreturn items.map((item, i) => {\n  const g = item.json;\n  const triggerItem = triggerItems[i]?.json ?? {};\n\n  let raw = '';\n  if (g.output?.[0]?.content?.[0]?.text) raw = g.output[0].content[0].text;\n  else if (typeof g.content === 'string') raw = g.content;\n  else if (g.message && typeof g.message.content === 'string') raw = g.message.content;\n  else if (g.choices?.[0]?.message?.content) raw = g.choices[0].message.content;\n  else if (typeof g.text === 'string') raw = g.text;\n  else if (g.response?.candidates?.[0]?.content?.parts?.[0]?.text) raw = g.response.candidates[0].content.parts[0].text;\n\n  raw = String(raw).trim()\n    .replace(/^```json\\s*/i, '')\n    .replace(/^```\\s*/i, '')\n    .replace(/```$/, '')\n    .trim();\n\n  let parsed = { category: '\uae30\ud0c0', complexity: '\ud655\uc778\ud544\uc694', reason: 'JSON \ud30c\uc2f1 \uc2e4\ud328 \u2014 \uc548\uc804 \uae30\ubcf8\uac12' };\n  try { parsed = JSON.parse(raw); } catch (e) {}\n\n  return {\n    json: {\n      category: parsed.category,\n      complexity: parsed.complexity,\n      reason: parsed.reason,\n      customerName: triggerItem['\uace0\uac1d\uba85'],\n      customerEmail: triggerItem['\uc774\uba54\uc77c'],\n      inquiry: triggerItem['\ubb38\uc758\ub0b4\uc6a9'],\n      timestamp: triggerItem['\uc811\uc218\uc77c\uc2dc']\n    }\n  };\n});"
      },
      "id": "parse-classification",
      "name": "Parse Classification",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        720,
        400
      ]
    },
    {
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "rule-simple",
                    "leftValue": "={{ $json.complexity }}",
                    "rightValue": "\ub2e8\uc21c\ubb38\uc758",
                    "operator": {
                      "type": "string",
                      "operation": "equals",
                      "name": "filter.operator.equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "simple"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "rule-manual",
                    "leftValue": "={{ $json.complexity }}",
                    "rightValue": "\ud655\uc778\ud544\uc694",
                    "operator": {
                      "type": "string",
                      "operation": "equals",
                      "name": "filter.operator.equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "manual"
            }
          ]
        },
        "options": {
          "fallbackOutput": "extra",
          "renameFallbackOutput": "fallback"
        }
      },
      "id": "route-by-complexity",
      "name": "Route by Complexity",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3.4,
      "position": [
        960,
        400
      ]
    },
    {
      "id": "generate-auto-reply",
      "name": "Generate Auto Reply",
      "position": [
        1120,
        240
      ],
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 5000,
      "onError": "continueErrorOutput",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 2.1,
      "parameters": {
        "resource": "text",
        "operation": "response",
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "gpt-4o-mini"
        },
        "simplify": true,
        "options": {},
        "responses": {
          "values": [
            {
              "type": "text",
              "role": "system",
              "content": "\ub2f9\uc2e0\uc740 \uace0\uac1d \uc751\ub300 \uc804\ubb38\uac00\uc785\ub2c8\ub2e4.\n\ub2e4\uc74c \uc6d0\uce59\uc5d0 \ub530\ub77c \uace0\uac1d \ubb38\uc758\uc5d0 \ub300\ud55c \uc774\uba54\uc77c \ub2f5\ubcc0\uc744 \ud55c\uad6d\uc5b4\ub85c \uc791\uc131\ud558\uc138\uc694.\n\n- \uc815\uc911\ud558\uace0 \uce5c\uadfc\ud55c \ud1a4\n- \ud575\uc2ec \ub2f5\ubcc0\uc744 \uba3c\uc800 \uc81c\uc2dc\ud558\uace0 \uadfc\uac70\ub294 \ub4a4\uc5d0 \uac04\ub7b5\ud788\n- \uc778\uc0ac\ub9d0, \ubcf8\ubb38, \ub9fa\uc74c\ub9d0 \uad6c\uc870\ub85c \uc791\uc131\n- 200~400\uc790 \uc774\ub0b4\n- \uac1c\uc778\uc815\ubcf4(\uc8fc\ubb38\ubc88\ud638, \uae08\uc561 \ub4f1) \uc784\uc758 \uc0dd\uc131 \uae08\uc9c0\n- \ucd94\uac00 \ud655\uc778\uc774 \ud544\uc694\ud55c \uacbd\uc6b0 \"\ubb38\uc758 \uc8fc\uc2dc\uba74 \uc7ac\ud655\uc778 \ud6c4 \uc548\ub0b4\ub4dc\ub9ac\uaca0\uc2b5\ub2c8\ub2e4\" \ub77c\uace0 \uc548\ub0b4\n\n\uc774\uba54\uc77c \ubcf8\ubb38\ub9cc HTML \ub2e8\ub77d(<p>) \ud0dc\uadf8\ub85c \uac10\uc2f8 \ucd9c\ub825\ud558\uc138\uc694. \uc81c\ubaa9\uc774\ub098 \uc11c\ub450 \uc124\uba85\uc740 \ud3ec\ud568\ud558\uc9c0 \ub9c8\uc138\uc694."
            },
            {
              "type": "text",
              "role": "user",
              "content": "=\uce74\ud14c\uace0\ub9ac: {{ $json.category }}\n\uace0\uac1d\uba85: {{ $json.customerName }}\n\ubb38\uc758 \ub0b4\uc6a9:\n{{ $json.inquiry }}\n\n\uc704 \ub0b4\uc6a9\uc5d0 \ub300\ud55c \ub2f5\ubcc0 \uc774\uba54\uc77c \ubcf8\ubb38\uc744 \uc791\uc131\ud574\uc8fc\uc138\uc694."
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "sendTo": "={{ $('Parse Classification').item.json.customerEmail }}",
        "subject": "=[\uace0\uac1d\uc13c\ud130] {{ $('Parse Classification').item.json.category }} \ubb38\uc758\uc5d0 \ub300\ud55c \ub2f5\ubcc0",
        "message": "={{ $json.output[0].content[0].text }}",
        "options": {
          "appendAttribution": false
        },
        "resource": "message",
        "operation": "send"
      },
      "id": "send-customer-email",
      "name": "Send Customer Email",
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2.2,
      "position": [
        1440,
        240
      ],
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 2000,
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "1V6cIC3_5s3w6xq-ZjVZnEQ65rXXbTY56UwxNcoACFUQ"
        },
        "sheetName": {
          "__rl": true,
          "value": 650054400,
          "mode": "list",
          "cachedResultName": "\uace0\uac1d\ubb38\uc758_\ub85c\uadf8",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1V6cIC3_5s3w6xq-ZjVZnEQ65rXXbTY56UwxNcoACFUQ/edit#gid=650054400"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "\uc811\uc218\uc77c\uc2dc": "={{ $('Parse Classification').item.json.timestamp }}",
            "\uace0\uac1d\uba85": "={{ $('Parse Classification').item.json.customerName }}",
            "\uc774\uba54\uc77c": "={{ $('Parse Classification').item.json.customerEmail }}",
            "\ubb38\uc758\ub0b4\uc6a9": "={{ $('Parse Classification').item.json.inquiry }}",
            "\uce74\ud14c\uace0\ub9ac": "={{ $('Parse Classification').item.json.category }}",
            "\ubcf5\uc7a1\ub3c4": "={{ $('Parse Classification').item.json.complexity }}",
            "\ucc98\ub9ac\ubc29\uc2dd": "\uc790\ub3d9\ubc1c\uc1a1"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "\uc811\uc218\uc77c\uc2dc",
              "displayName": "\uc811\uc218\uc77c\uc2dc",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "\uace0\uac1d\uba85",
              "displayName": "\uace0\uac1d\uba85",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "\uc774\uba54\uc77c",
              "displayName": "\uc774\uba54\uc77c",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "\ubb38\uc758\ub0b4\uc6a9",
              "displayName": "\ubb38\uc758\ub0b4\uc6a9",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "\uce74\ud14c\uace0\ub9ac",
              "displayName": "\uce74\ud14c\uace0\ub9ac",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "\ubcf5\uc7a1\ub3c4",
              "displayName": "\ubcf5\uc7a1\ub3c4",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "\ucc98\ub9ac\ubc29\uc2dd",
              "displayName": "\ucc98\ub9ac\ubc29\uc2dd",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "id": "log-auto-sent",
      "name": "Log Auto Sent",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.7,
      "position": [
        1680,
        240
      ],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "id": "generate-draft-reply",
      "name": "Generate Draft Reply",
      "position": [
        1136,
        560
      ],
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 5000,
      "onError": "continueErrorOutput",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 2.1,
      "parameters": {
        "resource": "text",
        "operation": "response",
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "gpt-4o-mini"
        },
        "simplify": true,
        "options": {},
        "responses": {
          "values": [
            {
              "type": "text",
              "role": "system",
              "content": "\ub2f9\uc2e0\uc740 \uace0\uac1d \uc751\ub300 \uc804\ubb38\uac00\uc785\ub2c8\ub2e4.\n\ub2e4\uc74c \uc6d0\uce59\uc5d0 \ub530\ub77c \uace0\uac1d \ubb38\uc758\uc5d0 \ub300\ud55c \uc774\uba54\uc77c \ub2f5\ubcc0 \ucd08\uc548\uc744 \ud55c\uad6d\uc5b4\ub85c \uc791\uc131\ud558\uc138\uc694.\n\n- \uc815\uc911\ud558\uace0 \uce5c\uadfc\ud55c \ud1a4\n- \ud575\uc2ec \ub2f5\ubcc0\uc744 \uba3c\uc800 \uc81c\uc2dc\ud558\uace0 \uadfc\uac70\ub294 \ub4a4\uc5d0 \uac04\ub7b5\ud788\n- \uc778\uc0ac\ub9d0, \ubcf8\ubb38, \ub9fa\uc74c\ub9d0 \uad6c\uc870\ub85c \uc791\uc131\n- 200~400\uc790 \uc774\ub0b4\n- \uac1c\uc778\uc815\ubcf4(\uc8fc\ubb38\ubc88\ud638, \uae08\uc561 \ub4f1) \uc784\uc758 \uc0dd\uc131 \uae08\uc9c0\n- \ucd94\uac00 \ud655\uc778\uc774 \ud544\uc694\ud55c \uacbd\uc6b0 \"\ubb38\uc758 \uc8fc\uc2dc\uba74 \uc7ac\ud655\uc778 \ud6c4 \uc548\ub0b4\ub4dc\ub9ac\uaca0\uc2b5\ub2c8\ub2e4\" \ub77c\uace0 \uc548\ub0b4\n\n\uc774\uba54\uc77c \ubcf8\ubb38\ub9cc HTML \ub2e8\ub77d(<p>) \ud0dc\uadf8\ub85c \uac10\uc2f8 \ucd9c\ub825\ud558\uc138\uc694. \uc81c\ubaa9\uc774\ub098 \uc11c\ub450 \uc124\uba85\uc740 \ud3ec\ud568\ud558\uc9c0 \ub9c8\uc138\uc694."
            },
            {
              "type": "text",
              "role": "user",
              "content": "=\uce74\ud14c\uace0\ub9ac: {{ $json.category }}\n\uace0\uac1d\uba85: {{ $json.customerName }}\n\ubb38\uc758 \ub0b4\uc6a9:\n{{ $json.inquiry }}\n\n\uc704 \ub0b4\uc6a9\uc5d0 \ub300\ud55c \ub2f5\ubcc0 \uc774\uba54\uc77c \ubcf8\ubb38\uc744 \uc791\uc131\ud574\uc8fc\uc138\uc694. (\ub2f4\ub2f9\uc790\uac00 \uac80\ud1a0 \ud6c4 \uc218\uc815/\ubc1c\uc1a1 \uc608\uc815)"
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "resource": "draft",
        "subject": "=[\uac80\ud1a0 \ud544\uc694] {{ $('Parse Classification').item.json.category }} - {{ $('Parse Classification').item.json.customerName }}",
        "emailType": "html",
        "message": "={{ $json.output[0].content[0].text }}",
        "options": {
          "sendTo": "={{ $('Parse Classification').item.json.customerEmail }}"
        }
      },
      "id": "create-gmail-draft",
      "name": "Create Gmail Draft",
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2.2,
      "position": [
        1440,
        560
      ],
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 2000,
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "name",
          "value": "#customer-support"
        },
        "text": "=:bell: *\uc0c8 \ubb38\uc758\uac00 \ub3c4\ucc29\ud588\uc2b5\ub2c8\ub2e4. \ud655\uc778 \ud6c4 \ubc1c\uc1a1\ud574\uc8fc\uc138\uc694.*\n\n\u2022 *\uace0\uac1d\uba85*: {{ $('Parse Classification').item.json.customerName }}\n\u2022 *\uc774\uba54\uc77c*: {{ $('Parse Classification').item.json.customerEmail }}\n\u2022 *\uce74\ud14c\uace0\ub9ac*: {{ $('Parse Classification').item.json.category }}\n\u2022 *\ud310\ub2e8 \uadfc\uac70*: {{ $('Parse Classification').item.json.reason }}\n\n*\ubb38\uc758 \ub0b4\uc6a9*\n>>> {{ $('Parse Classification').item.json.inquiry }}\n\n*AI \ub2f5\ubcc0 \ucd08\uc548*\n```{{ $('Generate Draft Reply').item.json.output[0].content[0].text }}```\n\n:pencil: Gmail \ucd08\uc548 \uc5f4\uae30: https://mail.google.com/mail/u/0/#drafts/{{ $json.id }}",
        "otherOptions": {
          "mrkdwn": true
        },
        "resource": "message",
        "operation": "post"
      },
      "id": "notify-customer-support",
      "name": "Notify Customer Support",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.4,
      "position": [
        1680,
        560
      ],
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 2000,
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "1V6cIC3_5s3w6xq-ZjVZnEQ65rXXbTY56UwxNcoACFUQ"
        },
        "sheetName": {
          "__rl": true,
          "value": 650054400,
          "mode": "list",
          "cachedResultName": "\uace0\uac1d\ubb38\uc758_\ub85c\uadf8",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1V6cIC3_5s3w6xq-ZjVZnEQ65rXXbTY56UwxNcoACFUQ/edit#gid=650054400"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "\uc811\uc218\uc77c\uc2dc": "={{ $('Parse Classification').item.json.timestamp }}",
            "\uace0\uac1d\uba85": "={{ $('Parse Classification').item.json.customerName }}",
            "\uc774\uba54\uc77c": "={{ $('Parse Classification').item.json.customerEmail }}",
            "\ubb38\uc758\ub0b4\uc6a9": "={{ $('Parse Classification').item.json.inquiry }}",
            "\uce74\ud14c\uace0\ub9ac": "={{ $('Parse Classification').item.json.category }}",
            "\ubcf5\uc7a1\ub3c4": "={{ $('Parse Classification').item.json.complexity }}",
            "\ucc98\ub9ac\ubc29\uc2dd": "\uc218\ub3d9\ud655\uc778"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "\uc811\uc218\uc77c\uc2dc",
              "displayName": "\uc811\uc218\uc77c\uc2dc",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "\uace0\uac1d\uba85",
              "displayName": "\uace0\uac1d\uba85",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "\uc774\uba54\uc77c",
              "displayName": "\uc774\uba54\uc77c",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "\ubb38\uc758\ub0b4\uc6a9",
              "displayName": "\ubb38\uc758\ub0b4\uc6a9",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "\uce74\ud14c\uace0\ub9ac",
              "displayName": "\uce74\ud14c\uace0\ub9ac",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "\ubcf5\uc7a1\ub3c4",
              "displayName": "\ubcf5\uc7a1\ub3c4",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "\ucc98\ub9ac\ubc29\uc2dd",
              "displayName": "\ucc98\ub9ac\ubc29\uc2dd",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "id": "log-manual-review",
      "name": "Log Manual Review",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.7,
      "position": [
        1920,
        560
      ],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "name",
          "value": "#error-alert"
        },
        "text": "=:rotating_light: *\uace0\uac1d \ubb38\uc758 \uc6cc\ud06c\ud50c\ub85c\uc6b0 \uc2e4\ud328*\n\n\u2022 *\uc5d0\ub7ec \uba54\uc2dc\uc9c0*: {{ $json.error || ($json.error && $json.error.message) || $json.message || '\ub0b4\uc6a9 \uc5c6\uc74c' }}\n\u2022 *\uace0\uac1d\uba85*: {{ $('On New Inquiry Row').item.json['\uace0\uac1d\uba85'] || $json.customerName || 'unknown' }}\n\u2022 *\uc774\uba54\uc77c*: {{ $('On New Inquiry Row').item.json['\uc774\uba54\uc77c'] || $json.customerEmail || 'unknown' }}\n\u2022 *\ubb38\uc758\ub0b4\uc6a9*: {{ $('On New Inquiry Row').item.json['\ubb38\uc758\ub0b4\uc6a9'] || $json.inquiry || 'unknown' }}\n\u2022 *\uce74\ud14c\uace0\ub9ac*: {{ $json.category || 'N/A' }}\n\u2022 *\ubcf5\uc7a1\ub3c4*: {{ $json.complexity || 'N/A' }}\n\u2022 *\uc2e4\ud589 ID*: {{ $execution.id }}\n\u2022 *Execution URL*: {{ $execution.resumeUrl || $execution.url }}\n\n\ub2f4\ub2f9\uc790 \uc218\ub3d9 \ud655\uc778\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.",
        "otherOptions": {
          "mrkdwn": true
        },
        "resource": "message",
        "operation": "post"
      },
      "id": "alert-error-slack",
      "name": "Alert Error Slack",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.4,
      "position": [
        720,
        720
      ],
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "On New Inquiry Row": {
      "main": [
        [
          {
            "node": "Classify Inquiry",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Classify Inquiry": {
      "main": [
        [
          {
            "node": "Parse Classification",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Alert Error Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Classification": {
      "main": [
        [
          {
            "node": "Route by Complexity",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route by Complexity": {
      "main": [
        [
          {
            "node": "Generate Auto Reply",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Generate Draft Reply",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Auto Reply": {
      "main": [
        [
          {
            "node": "Send Customer Email",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Alert Error Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Customer Email": {
      "main": [
        [
          {
            "node": "Log Auto Sent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Draft Reply": {
      "main": [
        [
          {
            "node": "Create Gmail Draft",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Alert Error Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Gmail Draft": {
      "main": [
        [
          {
            "node": "Notify Customer Support",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Notify Customer Support": {
      "main": [
        [
          {
            "node": "Log Manual Review",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1",
    "timezone": "Asia/Seoul",
    "saveDataErrorExecution": "all",
    "saveDataSuccessExecution": "all",
    "saveManualExecutions": true,
    "callerPolicy": "workflowsFromSameOwner",
    "availableInMCP": false,
    "binaryMode": "separate"
  }
}

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

Workflow-Ver1. Uses googleSheetsTrigger, openAi, gmail, googleSheets. Event-driven trigger; 12 nodes.

Source: https://github.com/withwooyong/n8n-with-ai/blob/4c60e3912dd623fc01626407d052fe052328382e/workflow-ver1.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

Consultants, agencies, freelancers, and professional service firms who need to create customized proposals and contracts quickly and efficiently.

Google Sheets Trigger, OpenAI, Google Docs +5
AI & RAG

This template triggers when a new row appears in Google Sheets (from any intake form that writes to the sheet). It validates key fields, performs light deduplication by email or phone, and sends the d

Google Sheets Trigger, OpenAI, Gmail +2
AI & RAG

Complete AI-powered sales system Automates lead capture, qualification, and follow-up from multiple channels. AI INTELLIGENCE:

Gmail Trigger, Google Sheets, OpenAI +3
AI & RAG

Imagine a relentless, intelligent sales assistant working for you 24/7. That's exactly what this system is. It takes the grueling, manual work of outreach and transforms it into a precision-guided, au

@Apify/N8N Nodes Apify, Hunter, Google Sheets +3
AI & RAG

An n8n-based automation that generates client proposals from a form, lets you review everything in one place, and sends the proposal only when you approve it.

Form Trigger, Google Sheets Trigger, OpenAI +4