Blog · · 4 min read

How to analyze customer feedback and surveys with AI in n8n (sentiment and topics)

A step-by-step guide to automatically tag Google Form responses with AI in n8n: sentiment, topic, instant complaint alerts and a weekly summary. No coding needed.

You ask customers for feedback with a form or a survey… and the answers sit in a spreadsheet nobody reads. Collecting feedback isn't the hard part: reading it in time and spotting what keeps coming up is.

In this guide you'll build an n8n workflow that reads every new response, decides whether it's positive, neutral or negative, tags it with a topic, writes that back to the same sheet and alerts you right away when there's a complaint. Optionally, you'll add a weekly summary of the most common themes.

What you'll build

A five-part workflow:

  1. Google Sheets Trigger: fires when a new row arrives (each form response).
  2. Sentiment Analysis: the AI decides if the comment is positive, neutral or negative.
  3. Text Classifier: the AI assigns a topic (price, service, speed, product…).
  4. Google Sheets (Update Row): writes sentiment and topic into new columns.
  5. IF + alert: if it's negative, you get a message on Telegram, Slack or email.

If you've already built the Google review replies or Gmail classification workflows, the pattern will feel familiar: text comes in, the AI labels it, and n8n acts on the label.

Step 1: the form and the response sheet

Create your survey in Google Forms (or any tool that saves responses to a sheet). Keep it simple: a 1–5 rating and one open question like "What would you improve?". The open answer is what the AI will read.

In Google Forms, link the responses to a Google Sheets spreadsheet. Add three empty columns on the right: sentiment, topic and reviewed. That's where n8n will write.

Tip: don't ask for personal data you don't need. If you just want to improve your service, an anonymous comment and a rating are enough.

Step 2: Google Sheets Trigger (new row)

Add the Google Sheets Trigger node, pick your sheet and set it to fire on Row Added. This trigger checks the sheet on an interval (polling) that you choose. For a small business, every few minutes or every hour is usually plenty.

Submit a test response and check that n8n receives the row with the comment and the row number.

Step 3: sentiment with AI

Add the Sentiment Analysis node and connect a chat model (for example OpenAI). In the text field, map the open-comment column.

Define your categories: Positive, Neutral and Negative. The node has one output per category, so you can handle each case separately afterwards.

If the comment is empty, don't spend an AI call on it: put an IF first that only lets rows with text through.

Step 4: topic with Text Classifier

Sentiment tells you how the customer feels; the topic tells you what they're talking about. Add a Text Classifier node with the same model and define categories with a short description:

  • Price: the comment is about cost or value for money.
  • Service: how staff treated them, replies, friendliness.
  • Speed: waiting times, delivery times, response times.
  • Product or service quality: the quality of what you sold or did.
  • Other: anything that doesn't fit.

The descriptions matter: the clearer they are, the better it classifies. Start with 4 or 5 topics; if "Other" fills up, look at what repeats and add a new topic.

Step 5: write the result back to the sheet

Merge the outputs with an Edit Fields (Set) node that leaves two clean fields: sentiment and topic. Then add Google Sheets → Update Row, use the row number from the trigger to find the response, and fill in the sentiment and topic columns.

Now your sheet can be filtered: every complaint about speed, every compliment about service… without reading row by row.

Step 6: instant alert for negative feedback

On the Negative output, add a Telegram, Slack or Gmail node with a short message: the rating, the comment and the topic. That way you can get back to that customer the same day, while it can still be fixed.

If the comment asks to talk to someone, use the same idea as in when to hand off to a human: the AI flags it, a person replies.

Bonus: a weekly summary of what keeps coming up

Create a second workflow with a Schedule Trigger (say, Monday mornings), read the week's rows with Google Sheets, combine them with Aggregate and pass them to a Basic LLM Chain with an instruction like: "Summarize the 5 most common themes, with one example each and one concrete improvement". Send it by email or Telegram. It's the same structure as the daily AI summary report.

Cost, privacy and errors

  • Cost: each response goes through the AI model twice (sentiment and topic). Spend depends on volume and model; check the current pricing of your AI provider and of n8n. There's no single number that fits everyone.
  • Privacy: if the survey collects names or emails, say so in your privacy policy and don't send the AI more than it needs: the comment is enough.
  • Errors: turn on Retry On Fail on the AI nodes and set up an alert if something breaks, as in n8n error handling: alerts and retries.
  • Check the AI: for the first few weeks, spot-check whether the tags are right and refine the topic descriptions.

Start with ready-made templates

To skip the base setup, download the free WhatsApp agent or see the AgentKiosk pack: it includes a Google review replies workflow and 7 more agents ready to import into n8n.