AutomationFlowsData & Sheets › Customer Support Ticket System for Smes with Google Sheets and Auto-emails

Customer Support Ticket System for Smes with Google Sheets and Auto-emails

ByMarth - Business Automation @marth on n8n.io

This workflow automates customer support for SMEs in five simple steps: Capture requests via a Webhook connected to a contact form. Extract the message to make processing easier. Check categories (e.g., refund-related requests) using an IF node. Save all tickets to a Google…

Webhook trigger★★☆☆☆ complexity7 nodesGoogle SheetsEmail Send
Data & Sheets Trigger: Webhook Nodes: 7 Complexity: ★★☆☆☆ Added:

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

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
{
  "id": "YHlm9XjboxWLxTtn",
  "name": "Simple Customer Support Automation for SMEs with Google Sheet",
  "tags": [],
  "nodes": [
    {
      "id": "3fe2461a-e9d2-4639-b964-e48bd47b0674",
      "name": "Extract Message",
      "type": "n8n-nodes-base.set",
      "position": [
        -272,
        -48
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "message",
              "value": "={{$json.message}}"
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 2
    },
    {
      "id": "b5629989-ecee-4602-99a0-8fa6beea24cd",
      "name": "Check Category",
      "type": "n8n-nodes-base.if",
      "position": [
        -80,
        -48
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 1,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "eb30ad70-9456-4ee9-a3b5-71aa16f10c95",
              "operator": {
                "type": "string",
                "operation": "contains"
              },
              "leftValue": "={{$json.message}}",
              "rightValue": "refund"
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "671017c8-a541-4f89-98c3-b46495bf6901",
      "name": "Save Ticket",
      "type": "n8n-nodes-base.googleSheets",
      "notes": "range = \"Tickets!A:C\"\nfields = \"Name,Email,Message\"",
      "position": [
        128,
        -144
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "\"YOUR_SHEET_ID\""
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "\"YOUR_SHEET_ID\""
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4
    },
    {
      "id": "b071a224-8eab-4aad-8520-1857530c77e5",
      "name": "Send Acknowledgement",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        128,
        64
      ],
      "parameters": {
        "text": "Hello {{$json.name}},\n\nYour ticket has been received. Our team will get back to you shortly.\n\nMessage: {{$json.message}}",
        "options": {},
        "subject": "Support Ticket Received",
        "toEmail": "={{$json.email}}",
        "fromEmail": "user@example.com"
      },
      "credentials": {
        "smtp": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "597a8964-4f14-444e-b7a4-c5f5ae70ad3e",
      "name": "Capture Ticket",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -480,
        -48
      ],
      "parameters": {
        "path": "customer-support",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "1a71c690-bd4a-4f08-98f0-be34b6216463",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -560,
        -176
      ],
      "parameters": {
        "color": 3,
        "width": 912,
        "height": 400,
        "content": "## Flow"
      },
      "typeVersion": 1
    },
    {
      "id": "6dacaf8d-cd80-4567-a6ec-b3774ca01b5c",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -560,
        256
      ],
      "parameters": {
        "color": 4,
        "width": 912,
        "height": 1856,
        "content": "# \ud83d\udcdd Simplified Customer Support Automation for SMEs\n\n## \ud83d\udd34 Problem\n\nSmall and medium-sized enterprises (SMEs) often spend significant time managing customer support manually.\n\n* Incoming requests are scattered across emails, forms, or chats.\n* Categorization and tracking are inconsistent.\n* Customers wait too long for an acknowledgment.\n\nThis leads to higher costs, slower responses, and lower customer satisfaction.\n\n---\n\n## \ud83d\udfe2 Solution\n\nA simple **5-node customer support workflow in n8n** that:\n\n1. Captures incoming customer requests.\n2. Extracts and categorizes the message.\n3. Saves the ticket in a Google Sheet for tracking.\n4. Notifies the team of new support cases.\n5. Sends an acknowledgment email back to the customer.\n\nThis ensures requests are **organized, acknowledged instantly, and ready for follow-up**, reducing operational costs while improving service quality.\n\n---\n\n## \ud83d\udc65 For Who\n\n* SMEs that need a **lightweight ticketing system** without expensive software.\n* Teams that want to **streamline support workflows** while still keeping everything transparent.\n* Businesses looking to **save time and costs** on customer support operations.\n\n---\n\n## \ud83d\udccc Scope\n\n* \u2705 Captures and organizes tickets from a Webhook.\n* \u2705 Supports simple categorization (e.g., refund requests).\n* \u2705 Saves tickets to Google Sheets for easy visibility.\n* \u2705 Sends automatic acknowledgments to customers.\n* \u274c Does not provide advanced ticket assignment, SLA tracking, or full CRM integration (but these can be added later).\n\n---\n\n## \u2699\ufe0f Setup Steps\n\n1. **Webhook**\n\n   * Create a Webhook node with path `customer-support`.\n   * Collect `name`, `email`, and `message`.\n\n2. **Extract Message (Set)**\n\n   * Use a Set node to capture the `message` field for downstream use.\n\n3. **Check Category (IF)**\n\n   * Add an IF node to detect specific keywords (e.g., \u201crefund\u201d).\n   * Route accordingly for different handling paths.\n\n4. **Save Ticket (Google Sheets)**\n\n   * Use the Google Sheets node.\n   * Operation: `Append`.\n   * Fields: `Name`, `Email`, `Message`.\n   * Save tickets in a tab named `Tickets`.\n\n5. **Send Acknowledgement (Email Send)**\n\n   * Configure an Email Send node.\n   * Dynamic fields: `toEmail = {{$json.email}}`, `subject = Support Ticket Received`.\n   * Body includes customer name and message.\n\n---\n\n\u2705 With this setup, SMEs can handle support requests more efficiently, provide instant responses to customers, and maintain a simple record of all tickets.\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "1ceecd9d-caa3-4157-a373-9cf23513e019",
  "connections": {
    "Capture Ticket": {
      "main": [
        [
          {
            "node": "Extract Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Category": {
      "main": [
        [
          {
            "node": "Save Ticket",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Send Acknowledgement",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Message": {
      "main": [
        [
          {
            "node": "Check Category",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

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

This workflow automates customer support for SMEs in five simple steps: Capture requests via a Webhook connected to a contact form. Extract the message to make processing easier. Check categories (e.g., refund-related requests) using an IF node. Save all tickets to a Google…

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

More Data & Sheets workflows → · Browse all categories →

Related workflows

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

Data & Sheets

Convalidaciones Académicas - Estructura Base. Uses googleSheets, emailSend, googleDrive, httpRequest. Webhook trigger; 35 nodes.

Google Sheets, Email Send, Google Drive +2
Data & Sheets

Are you tired of manually entering open house visitor information into your CRM? Losing hot leads because you didn't follow up fast enough? This powerful n8n workflow automatically syncs every SignSna

Email Send, Google Sheets, HubSpot +3
Data & Sheets

This workflow helps developers and automation teams route measurement data from a webhook to multiple destinations using n8n.

Google Sheets, Email Send, Stop And Error
Data & Sheets

This is a production-ready, end-to-end workflow that automatically compares hotel prices across multiple booking platforms and delivers beautiful email reports to users. Unlike basic building blocks,

HTTP Request, Email Send, Google Sheets
Data & Sheets

Messenger Responder (FB + IG). Uses httpRequest, googleSheets, emailSend. Webhook trigger; 15 nodes.

HTTP Request, Google Sheets, Email Send