AutomationFlowsAI & RAG › Hypeakz — Customer Feedback Sentiment Analyzer (100% Local)

Hypeakz — Customer Feedback Sentiment Analyzer (100% Local)

HYPEAKZ — Customer Feedback Sentiment Analyzer (100% Local). Uses googleSheetsTrigger, lmOllama, textClassifier, chainLlm. Event-driven trigger; 7 nodes.

Event trigger★★★★☆ complexityAI-powered7 nodesGoogle Sheets TriggerLm OllamaText ClassifierChain LlmSlackGoogle Sheets
AI & RAG Trigger: Event Nodes: 7 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Chainllm → 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": "HYPEAKZ \u2014 Customer Feedback Sentiment Analyzer (100% Local)",
  "nodes": [
    {
      "parameters": {
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute",
              "minute": 30
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "value": "Feedback"
        }
      },
      "id": "node-sheets-trigger",
      "name": "New Feedback (Google Sheets)",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "typeVersion": 1,
      "position": [
        250,
        300
      ]
    },
    {
      "parameters": {
        "model": "llama3.2",
        "baseUrl": "http://ollama:11434"
      },
      "id": "node-ollama",
      "name": "Ollama Local LLM",
      "type": "@n8n/n8n-nodes-langchain.lmOllama",
      "typeVersion": 1,
      "position": [
        550,
        500
      ]
    },
    {
      "parameters": {
        "categories": {
          "categories": [
            {
              "category": "POSITIVE",
              "description": "Happy customer, praise, satisfaction, recommendation"
            },
            {
              "category": "NEGATIVE",
              "description": "Complaint, frustration, problem, churn risk"
            },
            {
              "category": "NEUTRAL",
              "description": "Question, suggestion, informational"
            },
            {
              "category": "URGENT",
              "description": "Immediate action needed, service down, billing error"
            }
          ]
        },
        "inputText": "={{ $json.feedback_text }}",
        "options": {
          "systemMessage": "You are a customer feedback analyst. Classify the sentiment accurately. If in doubt between negative and urgent, choose urgent."
        }
      },
      "id": "node-sentiment",
      "name": "Analyze Sentiment (AI)",
      "type": "@n8n/n8n-nodes-langchain.textClassifier",
      "typeVersion": 1,
      "position": [
        550,
        300
      ]
    },
    {
      "parameters": {
        "prompt": "Extract key information from this customer feedback:\n\nFeedback: {{ $('New Feedback (Google Sheets)').item.json.feedback_text }}\nSentiment: {{ $json.category }}\n\nReturn JSON with:\n- main_issue: one sentence summary\n- suggested_action: what the team should do\n- priority: high/medium/low\n- department: support/product/billing/sales"
      },
      "id": "node-extract-info",
      "name": "Extract Action Items (AI)",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "typeVersion": 1.4,
      "position": [
        850,
        300
      ]
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $('Analyze Sentiment (AI)').item.json.category }}",
              "operation": "equals",
              "value2": "URGENT"
            }
          ]
        }
      },
      "id": "node-if-urgent",
      "name": "Urgent?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        1100,
        200
      ]
    },
    {
      "parameters": {
        "channel": "#alerts",
        "text": ":rotating_light: URGENT FEEDBACK\n*From:* {{ $('New Feedback (Google Sheets)').item.json.customer_name }}\n*Issue:* {{ $json.text }}\n*Sentiment:* {{ $('Analyze Sentiment (AI)').item.json.category }}"
      },
      "id": "node-slack",
      "name": "Alert Team (Slack)",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.2,
      "position": [
        1350,
        100
      ]
    },
    {
      "parameters": {
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "value": "Sentiment Log"
        }
      },
      "id": "node-log",
      "name": "Log Results",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        1350,
        400
      ]
    }
  ],
  "connections": {
    "New Feedback (Google Sheets)": {
      "main": [
        [
          {
            "node": "Analyze Sentiment (AI)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Ollama Local LLM": {
      "ai_languageModel": [
        [
          {
            "node": "Analyze Sentiment (AI)",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Extract Action Items (AI)",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Analyze Sentiment (AI)": {
      "main": [
        [
          {
            "node": "Extract Action Items (AI)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Action Items (AI)": {
      "main": [
        [
          {
            "node": "Urgent?",
            "type": "main",
            "index": 0
          },
          {
            "node": "Log Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Urgent?": {
      "main": [
        [
          {
            "node": "Alert Team (Slack)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "tags": [
    {
      "name": "HYPEAKZ.IO"
    },
    {
      "name": "Self-Hosted AI"
    },
    {
      "name": "Ollama"
    },
    {
      "name": "Sentiment Analysis"
    }
  ]
}
Pro

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

About this workflow

HYPEAKZ — Customer Feedback Sentiment Analyzer (100% Local). Uses googleSheetsTrigger, lmOllama, textClassifier, chainLlm. Event-driven trigger; 7 nodes.

Source: https://github.com/dankofly/selfhosted-ai-kit/blob/main/workflows/03-sentiment-analyzer.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

This end-to-end AI-powered recruitment automation workflow helps HR and talent acquisition teams automate the complete hiring pipeline—from resume intake and parsing to GPT-4-based evaluation, TA appr

Form Trigger, Output Parser Structured, Google Drive +10
AI & RAG

🧠 Who is this for? Marketing teams, content creators, solopreneurs, and agencies who want to generate emotionally-resonant, SEO-optimized content tailored to audience psychology and buyer journey stag

Google Sheets Trigger, Chain Llm, Google Gemini Chat +6
AI & RAG

This workflow watches for new rows in Google Sheets, uses an OpenAI chat model to score and categorize lead intent with structured output, writes the results back to the same sheet, and posts only hig

Google Sheets Trigger, Chain Llm, OpenAI Chat +3
AI & RAG

> Transform Your Email Workflow with Intelligent Automation

Chain Llm, Microsoft Outlook Trigger, Information Extractor +8
AI & RAG

Template Nodes Example. Uses CUSTOM, formTrigger, executeWorkflowTrigger, chatTrigger. Event-driven trigger; 70 nodes.

Custom, Form Trigger, Execute Workflow Trigger +23