AutomationFlowsEmail & Gmail › Automated Customer Support with Gpt-4o-mini AI Triage for Google Forms & Gmail

Automated Customer Support with Gpt-4o-mini AI Triage for Google Forms & Gmail

ByDaiki Takayama @daiki-ai on n8n.io

Transform your Google Form into an intelligent customer support system that automatically analyzes, prioritizes, and responds to every inquiry with AI-powered personalization.

Event trigger★★★★☆ complexityAI-powered22 nodesGoogle Sheets TriggerOpenAIGmailSlackGoogle Sheets
Email & Gmail Trigger: Event Nodes: 22 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #10469 — we link there as the canonical source.

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": "4n8IO7lfpLukkhLP",
  "name": "Automate Customer Support Responses with AI Triage for Google Forms",
  "tags": [],
  "nodes": [
    {
      "id": "00ee0984-b75a-4eda-939d-db882cee466d",
      "name": "Google Form Responses Trigger",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "position": [
        -576,
        352
      ],
      "parameters": {
        "event": "rowAdded",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1ef2d3c8-4431-4c88-9f15-09be5d27c6f0",
      "name": "Map Form Column Names",
      "type": "n8n-nodes-base.set",
      "position": [
        -240,
        352
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "emailColumnName",
              "type": "string",
              "value": "Email Address"
            },
            {
              "id": "id-2",
              "name": "inquiryColumnName",
              "type": "string",
              "value": "Inquiry"
            },
            {
              "id": "id-3",
              "name": "nameColumnName",
              "type": "string",
              "value": "Name"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "dd8030ab-2052-4789-bb69-95d577d65eba",
      "name": "Analyze with AI Triage",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        -16,
        352
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {},
        "responses": {
          "values": [
            {
              "content": "=You are an expert customer support triage system with deep understanding of multiple languages and cultural context.\n\nAnalyze this customer inquiry:\n\nCustomer Name: {{$json[\"Name\"]}}\nCustomer Email: {{$json[\"Email Address\"]}}\nInquiry: {{$json.inquiry}}\n\nURGENCY CLASSIFICATION RULES (be strict):\n\nHIGH urgency - Use when ANY of these apply:\n- Product is broken/damaged/defective\n- Words indicating immediate need: immediately, urgent, ASAP\n- Customer explicitly states they are troubled or frustrated\n- Complaints or angry tone\n- Request for refund/replacement/exchange\n- Service failure or system down\n- Time-sensitive issues\n\nMEDIUM urgency - Use when:\n- General questions about product usage\n- Feature inquiries or clarifications\n- Manual/documentation questions\n- Non-urgent support requests\n- Neutral tone inquiries\n\nLOW urgency - Use when:\n- General information requests\n- Compliments or positive feedback\n- Future product inquiries\n- Casual questions with no time pressure\n\nCATEGORIES:\n- technical: Software bugs, technical issues, errors, login problems\n- sales: Pricing, product information, purchase inquiries\n- support: How-to questions, usage help, troubleshooting\n- billing: Payment issues, invoices, refunds\n- general: Everything else\n\nSENTIMENT:\n- negative: Complaints, problems, dissatisfaction, frustrated tone\n- neutral: Questions, information requests\n- positive: Compliments, satisfaction, thank you messages\n\nReturn ONLY valid JSON in this format (no markdown, no code blocks):\n{\n  \"urgency\": \"low\" | \"medium\" | \"high\",\n  \"category\": \"technical\" | \"sales\" | \"support\" | \"billing\" | \"general\",\n  \"sentiment\": \"positive\" | \"neutral\" | \"negative\",\n  \"keywords\": [\"keyword1\", \"keyword2\"],\n  \"summary\": \"One sentence summary\"\n}"
            }
          ]
        },
        "builtInTools": {}
      },
      "typeVersion": 2
    },
    {
      "id": "7022d016-142f-40f0-ae43-876b609f7897",
      "name": "Parse AI Analysis Results",
      "type": "n8n-nodes-base.code",
      "position": [
        336,
        352
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "// Parse AI analysis results\nconst allData = $input.item.json;\n\nlet analysis = {\n  urgency: 'medium',\n  category: 'general',\n  sentiment: 'neutral',\n  keywords: [],\n  summary: ''\n};\n\nif (allData.output && Array.isArray(allData.output) && allData.output.length > 0) {\n  const outputItem = allData.output[0];\n  if (outputItem.content && Array.isArray(outputItem.content) && outputItem.content.length > 0) {\n    const aiResponse = outputItem.content[0].text || '{}';\n    try {\n      analysis = JSON.parse(aiResponse);\n    } catch (e) {\n      console.log('Failed to parse AI response:', aiResponse);\n    }\n  }\n}\n\n// Get original form data\nconst workflowConfig = $('Map Form Column Names').first().json;\nconst emailColumnName = workflowConfig.emailColumnName || 'Email Address';\nconst inquiryColumnName = workflowConfig.inquiryColumnName || 'Inquiry';\nconst nameColumnName = workflowConfig.nameColumnName || 'Name';\n\nreturn {\n  email: workflowConfig[emailColumnName] || '',\n  inquiry: workflowConfig[inquiryColumnName] || '',\n  name: workflowConfig[nameColumnName] || '',\n  urgency: analysis.urgency,\n  category: analysis.category,\n  sentiment: analysis.sentiment,\n  keywords: analysis.keywords,\n  summary: analysis.summary,\n  timestamp: new Date().toISOString()\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "bf80a552-17a8-445d-bdb7-288ad0d8bb25",
      "name": "Route by Priority Level",
      "type": "n8n-nodes-base.switch",
      "position": [
        560,
        336
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "High Priority",
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.urgency }}",
                    "rightValue": "high"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Medium Priority",
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.urgency }}",
                    "rightValue": "medium"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Low Priority",
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.urgency }}",
                    "rightValue": "low"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "7ca42752-5260-4ddc-abd3-a2e52ba53162",
      "name": "Generate Urgent Response",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        768,
        240
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {},
        "responses": {
          "values": [
            {
              "content": "=Create a polite, professional, and URGENT response email to this HIGH PRIORITY inquiry.\n\nCustomer Name: {{$json.name}}\nInquiry Category: {{$json.category}}\nSentiment: {{$json.sentiment}}\nInquiry: {{$json.inquiry}}\n\nIMPORTANT INSTRUCTIONS:\n- Acknowledge the urgency and apologize if negative sentiment detected\n- Provide immediate next steps\n- Include a commitment to fast response time (within 1-2 hours)\n- Be empathetic and professional\n\nOutput format (strictly follow):\nSUBJECT: (write urgent subject here)\n\nBODY: (write body here)"
            }
          ]
        },
        "builtInTools": {}
      },
      "typeVersion": 2
    },
    {
      "id": "8715f230-d87d-4ef9-808f-96d5679be8a3",
      "name": "Generate Standard Response",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        768,
        352
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {},
        "responses": {
          "values": [
            {
              "content": "=Create a polite and professional response email to this inquiry.\n\nCustomer Name: {{$json.name}}\nInquiry Category: {{$json.category}}\nInquiry: {{$json.inquiry}}\n\nOutput format (strictly follow):\nSUBJECT: (write subject here)\n\nBODY: (write body here)"
            }
          ]
        },
        "builtInTools": {}
      },
      "typeVersion": 2
    },
    {
      "id": "24788dbe-f143-499b-b54e-ab2f8b081e5b",
      "name": "Generate Friendly Response",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        768,
        464
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {},
        "responses": {
          "values": [
            {
              "content": "=Create a polite and friendly response email to this inquiry.\n\nCustomer Name: {{$json.name}}\nInquiry Category: {{$json.category}}\nInquiry: {{$json.inquiry}}\n\nOutput format (strictly follow):\nSUBJECT: (write subject here)\n\nBODY: (write body here)"
            }
          ]
        },
        "builtInTools": {}
      },
      "typeVersion": 2
    },
    {
      "id": "40134468-499c-4c55-bce1-62a991d82ee4",
      "name": "Extract Email Subject and Body",
      "type": "n8n-nodes-base.code",
      "position": [
        1136,
        352
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "// Get AI-generated email and triage data\nconst allData = $input.item.json;\n\nlet aiResponse = '';\nif (allData.output && Array.isArray(allData.output) && allData.output.length > 0) {\n  const outputItem = allData.output[0];\n  if (outputItem.content && Array.isArray(outputItem.content) && outputItem.content.length > 0) {\n    aiResponse = outputItem.content[0].text || '';\n  }\n}\n\n// Parse subject and body from AI response\nlet subject = 'Thank you for your inquiry';\nlet body = '';\n\nif (aiResponse) {\n  const subjectMatch = aiResponse.match(/SUBJECT:\\s*([\\s\\S]*?)(?=\\nBODY:|$)/);\n  if (subjectMatch && subjectMatch[1]) {\n    subject = subjectMatch[1].trim();\n  }\n\n  const parts = aiResponse.split(/BODY:\\s*/);\n  if (parts.length > 1) {\n    body = parts[1].trim();\n  } else {\n    body = aiResponse.trim();\n  }\n}\n\nconst triageData = $('Parse AI Analysis Results').first().json;\n\nreturn {\n  subject,\n  body,\n  email: triageData.email,\n  name: triageData.name,\n  urgency: triageData.urgency,\n  category: triageData.category,\n  sentiment: triageData.sentiment,\n  keywords: triageData.keywords,\n  summary: triageData.summary,\n  inquiry: triageData.inquiry,\n  timestamp: triageData.timestamp\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "112807ff-a82c-4f08-bcd6-8f80b00c9e7f",
      "name": "Send Auto-Reply via Gmail",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1360,
        352
      ],
      "parameters": {
        "sendTo": "={{ $json.email }}",
        "message": "={{ $json.body }}",
        "options": {
          "appendAttribution": false
        },
        "subject": "={{ $json.subject }}"
      },
      "typeVersion": 2.1
    },
    {
      "id": "90ac9a6c-8644-4369-8dc0-7ad6e48db909",
      "name": "Prepare Data for Tracking",
      "type": "n8n-nodes-base.set",
      "position": [
        1584,
        352
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "name",
              "type": "string",
              "value": "={{ $('Parse AI Analysis Results').item.json.name }}"
            },
            {
              "id": "id-2",
              "name": "email",
              "type": "string",
              "value": "={{ $('Parse AI Analysis Results').item.json.email }}"
            },
            {
              "id": "id-3",
              "name": "urgency",
              "type": "string",
              "value": "={{ $('Parse AI Analysis Results').item.json.urgency }}"
            },
            {
              "id": "id-4",
              "name": "category",
              "type": "string",
              "value": "={{ $('Parse AI Analysis Results').item.json.category }}"
            },
            {
              "id": "id-5",
              "name": "sentiment",
              "type": "string",
              "value": "={{ $('Parse AI Analysis Results').item.json.sentiment }}"
            },
            {
              "id": "id-6",
              "name": "summary",
              "type": "string",
              "value": "={{ $('Parse AI Analysis Results').item.json.summary }}"
            },
            {
              "id": "id-7",
              "name": "keywords",
              "type": "string",
              "value": "={{ $('Parse AI Analysis Results').item.json.keywords }}"
            },
            {
              "id": "id-8",
              "name": "subject",
              "type": "string",
              "value": "={{ $('Extract Email Subject and Body').item.json.subject }}"
            },
            {
              "id": "id-9",
              "name": "inquiry",
              "type": "string",
              "value": "={{ $('Parse AI Analysis Results').item.json.inquiry }}"
            },
            {
              "id": "id-10",
              "name": "timestamp",
              "type": "string",
              "value": "={{ $('Parse AI Analysis Results').item.json.timestamp }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "bd3aa2c7-e7f0-42e5-843b-9ecba1746432",
      "name": "Is High Priority?",
      "type": "n8n-nodes-base.if",
      "position": [
        1792,
        352
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "caseSensitive": false,
            "typeValidation": "loose"
          },
          "conditions": [
            {
              "id": "id-1",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.urgency }}",
              "rightValue": "high"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "426bf20f-ab48-453b-945c-a70a65818526",
      "name": "Alert Team on Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        2032,
        272
      ],
      "parameters": {
        "text": "=\ud83d\udea8 *HIGH PRIORITY INQUIRY RECEIVED*\n\n*Customer:* {{ $json.name }}\n*Email:* {{ $json.email }}\n*Category:* {{ $json.category }}\n*Sentiment:* {{ $json.sentiment }}\n\n*Summary:* {{ $json.summary }}\n\n*Original Inquiry:*\n{{ $json.inquiry }}\n\n\u2705 Auto-reply sent. Manual follow-up recommended within 1-2 hours.",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "typeVersion": 2.3
    },
    {
      "id": "8435195b-82c2-4085-afbe-b1e6bd40830a",
      "name": "Log to Tracking Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2208,
        368
      ],
      "parameters": {
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "1ad7a7ae-1f80-4081-a481-74cfd89bdaa7",
      "name": "Sticky Note - Workflow Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1408,
        -272
      ],
      "parameters": {
        "width": 680,
        "height": 1596,
        "content": "## \ud83d\udccb AI-Powered Customer Support Automation\n\n**Automatically triage and respond to Google Form submissions with intelligent priority routing**\n\n### \ud83c\udfaf What This Workflow Does\n\nThis workflow transforms your Google Form into an intelligent customer support system that:\n- **Analyzes** every inquiry using AI to determine urgency, category, and sentiment\n- **Routes** inquiries based on priority (High/Medium/Low)\n- **Generates** contextual, personalized email responses\n- **Alerts** your team via Slack for high-priority cases\n- **Tracks** all interactions in a Google Sheet\n\n### \u2699\ufe0f How It Works\n\n1. **Trigger**: Monitors Google Sheets for new form responses\n2. **AI Analysis**: OpenAI analyzes inquiry for urgency, category, sentiment\n3. **Smart Routing**: Routes to appropriate response template\n4. **Response Generation**: AI creates personalized reply email\n5. **Auto-Reply**: Sends email via Gmail\n6. **Team Alert**: Notifies team on Slack for urgent cases\n7. **Tracking**: Logs all data to tracking sheet\n\n### \ud83d\udce6 Requirements\n\n- Google Form connected to Google Sheets\n- OpenAI API key (GPT-4o-mini recommended)\n- Gmail account for sending emails\n- Slack workspace (optional, for team notifications)\n- Google Sheets for tracking logs\n\n### \u23f1\ufe0f Setup Time\n\nApproximately **15-20 minutes**\n\n### \ud83d\ude80 Setup Steps\n\n1. **Create Google Form** with fields: Name, Email Address, Inquiry\n2. **Connect to Google Sheets** (automatically created by Google Forms)\n3. **Configure trigger node** with your form response sheet\n4. **Add OpenAI credentials** (get API key from platform.openai.com)\n5. **Connect Gmail** for sending auto-replies\n6. **Create tracking sheet** with columns: timestamp, name, email, category, urgency, sentiment, summary, keywords, subject, inquiry\n7. **Optional: Connect Slack** for high-priority alerts\n8. **Customize AI prompts** to match your brand voice and use case\n9. **Test with sample data** before activating\n\n### \ud83c\udfa8 Customization Options\n\n- **Adjust urgency criteria** in AI Triage prompt for your specific needs\n- **Modify response templates** for different priority levels\n- **Add custom categories** (e.g., refunds, appointments, technical issues)\n- **Multi-language support** - AI handles multiple languages automatically\n- **Add more notification channels** (Discord, email, SMS)\n- **Integrate with CRM** systems for customer history\n\n### \ud83d\udca1 Use Cases\n\n- **Customer Support**: Auto-respond to product questions and issues\n- **Lead Management**: Instant follow-up on sales inquiries\n- **Event Registration**: Confirm bookings with personalized messages\n- **Feedback Collection**: Acknowledge and categorize user feedback\n- **Service Requests**: Triage and route service/maintenance requests\n\n---\n\n*Created by the n8n community. Questions? Check the sticky notes inside each workflow section for detailed instructions.*"
      },
      "typeVersion": 1
    },
    {
      "id": "d1a6e001-f164-4985-9cc9-c22493349127",
      "name": "Sticky Note - Step 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -688,
        -16
      ],
      "parameters": {
        "color": 7,
        "width": 360,
        "height": 352,
        "content": "### \ud83d\udce5 Step 1: Form Response Trigger\n\nMonitors your Google Sheet for new form submissions.\n\n**Setup:**\n1. Select your Google Form's response sheet\n2. Sheet automatically updates when forms are submitted\n3. Trigger runs every minute to check for new rows\n\n**Requirements:**\n- Google Form with fields: Name, Email Address, Inquiry\n- Form must be connected to Google Sheets"
      },
      "typeVersion": 1
    },
    {
      "id": "4122d26f-5ccf-4ad3-b130-99bbe84a020f",
      "name": "Sticky Note - Step 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -352,
        528
      ],
      "parameters": {
        "color": 7,
        "width": 340,
        "height": 236,
        "content": "### \ud83d\udd27 Step 2: Map Column Names\n\nMaps your form fields to workflow variables.\n\n**Customize:**\n- Update column names if your form uses different field names\n- Default: \"Name\", \"Email Address\", \"Inquiry\"\n\n**Tip:** Keep \"includeOtherFields\" enabled to preserve all form data"
      },
      "typeVersion": 1
    },
    {
      "id": "0ee1a9d8-3e37-412e-9a63-db17b354e52e",
      "name": "Sticky Note - Step 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        -32
      ],
      "parameters": {
        "color": 7,
        "width": 360,
        "height": 364,
        "content": "### \ud83e\udde0 Step 3: AI Triage Analysis\n\nOpenAI analyzes inquiry to determine:\n- **Urgency**: low/medium/high\n- **Category**: technical/sales/support/billing/general\n- **Sentiment**: positive/neutral/negative\n- **Keywords**: Key terms extracted\n- **Summary**: One-sentence overview\n\n**Customize:**\n- Adjust urgency criteria for your business\n- Add custom categories\n- Supports multiple languages automatically\n\n**Cost:** ~$0.001-0.002 per inquiry with GPT-4o-mini"
      },
      "typeVersion": 1
    },
    {
      "id": "bd556784-eb77-4347-8821-b0c301fca7b4",
      "name": "Sticky Note - Step 4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        224,
        528
      ],
      "parameters": {
        "color": 7,
        "width": 360,
        "height": 344,
        "content": "### \ud83d\udd00 Step 4: Priority Routing\n\nRoutes inquiries to appropriate response template:\n\n**High Priority \u2192** Urgent, empathetic response\n- Broken products, complaints, angry customers\n- Immediate needs, refund requests\n\n**Medium Priority \u2192** Professional, standard response\n- General questions, usage help\n- Feature inquiries\n\n**Low Priority \u2192** Friendly, casual response\n- Information requests, compliments\n- Future product questions"
      },
      "typeVersion": 1
    },
    {
      "id": "d47878da-4235-44b9-bc04-85fa618298e4",
      "name": "Sticky Note - Step 5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        688,
        -128
      ],
      "parameters": {
        "color": 7,
        "width": 360,
        "height": 340,
        "content": "### \u2709\ufe0f Step 5: Generate AI Response\n\nThree separate AI nodes create priority-specific responses.\n\n**Each template considers:**\n- Customer name for personalization\n- Inquiry category and sentiment\n- Urgency level for appropriate tone\n\n**Output format:**\nSUBJECT: (email subject)\nBODY: (email body)\n\n**Customize:** Edit prompts to match your brand voice and policies"
      },
      "typeVersion": 1
    },
    {
      "id": "49768cd0-7811-43e7-b90e-ec0e0cc599a5",
      "name": "Sticky Note - Step 6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1232,
        64
      ],
      "parameters": {
        "color": 7,
        "width": 340,
        "height": 268,
        "content": "### \ud83d\udce4 Step 6: Send Auto-Reply\n\nSends personalized email via Gmail.\n\n**Features:**\n- Uses Gmail OAuth for secure sending\n- Includes customer name in email\n- Professional formatting\n- No n8n attribution footer\n\n**Setup:** Connect your Gmail account via OAuth2"
      },
      "typeVersion": 1
    },
    {
      "id": "0de2f195-b296-43b2-99b5-38c41de47dba",
      "name": "Sticky Note - Step 7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1872,
        528
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 380,
        "content": "### \ud83d\udea8 Step 7: Team Alerts & Tracking\n\n**High Priority Cases:**\n- Instant Slack notification to team\n- Includes customer details and inquiry\n- Prompts manual follow-up within 1-2 hours\n\n**All Cases:**\n- Logged to Google Sheets tracking sheet\n- Includes: timestamp, urgency, category, sentiment, keywords, summary\n- Creates audit trail and analytics data\n\n**Setup:**\n1. Connect Slack workspace (optional)\n2. Create tracking sheet with proper column headers\n3. Select channel for notifications"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "2882a4e9-45c4-452d-a1fe-89e9d2629489",
  "connections": {
    "Is High Priority?": {
      "main": [
        [
          {
            "node": "Alert Team on Slack",
            "type": "main",
            "index": 0
          },
          {
            "node": "Log to Tracking Sheet",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Log to Tracking Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Map Form Column Names": {
      "main": [
        [
          {
            "node": "Analyze with AI Triage",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Analyze with AI Triage": {
      "main": [
        [
          {
            "node": "Parse AI Analysis Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route by Priority Level": {
      "main": [
        [
          {
            "node": "Generate Urgent Response",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Generate Standard Response",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Generate Friendly Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Urgent Response": {
      "main": [
        [
          {
            "node": "Extract Email Subject and Body",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse AI Analysis Results": {
      "main": [
        [
          {
            "node": "Route by Priority Level",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Data for Tracking": {
      "main": [
        [
          {
            "node": "Is High Priority?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Auto-Reply via Gmail": {
      "main": [
        [
          {
            "node": "Prepare Data for Tracking",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Friendly Response": {
      "main": [
        [
          {
            "node": "Extract Email Subject and Body",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Standard Response": {
      "main": [
        [
          {
            "node": "Extract Email Subject and Body",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Form Responses Trigger": {
      "main": [
        [
          {
            "node": "Map Form Column Names",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Email Subject and Body": {
      "main": [
        [
          {
            "node": "Send Auto-Reply via Gmail",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

About this workflow

Transform your Google Form into an intelligent customer support system that automatically analyzes, prioritizes, and responds to every inquiry with AI-powered personalization.

Source: https://n8n.io/workflows/10469/ — original creator credit. Request a take-down →

More Email & Gmail workflows → · Browse all categories →

Related workflows

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

Email & Gmail

This workflow automatically classifies and routes incoming Outlook emails into smart categories using n8n + OpenAI GPT-4.1-mini. It helps professionals and teams stay organized by intelligently sortin

Google Sheets, Gmail, Microsoft Outlook Trigger +3
Email & Gmail

This workflow automatically detects bounced or invalid email addresses from your Gmail inbox and updates their status in Google Sheets. It fetches bounce notifications, extracts failed email addresses

Google Sheets, Slack, Gmail
Email & Gmail

📘 Description

HTTP Request, Gmail Trigger, ClickUp +3
Email & Gmail

This workflow sends an instant email alert when a task in a Google Sheet is marked as Urgent, and then sends a Telegram reminder notification after 2 hours if the task still hasn’t been updated. Then

Gmail, Google Sheets Trigger, Google Sheets +2
Email & Gmail

This workflow automates the tracking and follow-up process for pending payments. It pulls lead payment data from Google Sheets, checks whether the status is “Open,” and then routes actions accordingly

Google Sheets, Slack, ClickUp +1