AI + Automation
Produktfeedback-Triage
A live automation that reads incoming product feedback, classifies and prioritises it, and routes urgent cases to the team — built with n8n and the Claude API.
Try it yourself
Send feedback, see how it's classified
Type any product feedback below — in German or English — and the same Claude classification used in production will run on it live. This demo only classifies: it doesn't write to the production log or trigger alerts.
0/600
No feedback classified yet
Enter something on the left and the classification appears here.
Claude is reading the feedback…
The demo didn't respond
The classification service is unreachable right now. The full workflow is still available through the live form.
Open the live form—
In production a high priority also triggers an email alert — and every case is written to the log, classified or not.
The problem
Feedback doesn't arrive sorted.
Product and innovation teams receive feedback constantly — bug reports, feature wishes, praise, questions — in no particular order, in more than one language, and with no signal of what's urgent. A security issue and a colour-scheme wish land in the same inbox looking the same.
Sorting it by hand is slow and inconsistent, and the urgent items are exactly the ones you can't afford to miss. This project automates that first triage step.
Architecture
How a message moves through the system
A public form feeds each submission to Claude, which returns a structured classification. A switch routes on priority: urgent cases trigger an email alert and are logged; everything else is logged. If the AI step ever fails, a fallback still captures the message so nothing is lost.
Design decisions
Why it's built this way
Each choice trades something off. These are the ones I'd defend in an interview.
Haiku, not the largest model
Classification is an easy task. The smallest model that does it well is the cost-aware choice — engineering, not "I used AI."
A fixed chain, not an agent
An agent decides and loops — non-deterministic and slower. This job is fixed and one-shot, so predictability wins.
Structured output, not prose
Forcing Claude to return defined fields means the routing reads a value, not a guess parsed out of a sentence.
Auto-fix on the parser
Malformed output is sent back to the model to repair itself. Designing for the fact that LLM output is probabilistic, not assuming it's perfect.
Dropdown, not free text
Controlled input keeps the downstream data filterable and countable. Input design decides data quality.
Parallel branches, not chained
Alert and log run side by side. Chained, the log step would receive the email node's output and every field reference would break.
Log everything, including urgent
A triage system that drops its urgent items from its own log can't be reported on later.
Fallback marks "needs review"
An unclassified item mustn't fake a priority — neither false alarm nor false "harmless." It goes to a review queue with the original text intact.
Standout result
English in, German out — original preserved
A test written in English produced a German summary, tagged the language as English, and kept the original text untouched. The system normalises multilingual feedback into one working language without losing the source — a real capability for an international team, and one that fell out of the design rather than luck.
Tested, not claimed
Six cases and a real failure
Every path was exercised, including the error path — by deliberately breaking the API key and watching the fallback catch the message.
| Input | Classification |
|---|---|
| API 500 error, customer blocked | Bug · high · de + alert |
| Dark-mode request | Feature wish · low · de |
| Praise for the new search | Praise · low · de |
| "Clunky but workable" (borderline) | Usability · low · de |
| English: duplicate orders via webhook | Bug · high · en + alert |
| "Hi, I have a question." (vague) | Other · low · de |
Error-path test: the API key was deliberately broken. The step retried, failed, and the fallback logged the message as "unclassified / needs review" with the feedback text intact. Key restored — normal classification resumed.
Screenshots
The system, running
Built with
See it work
The form is live. Submit a piece of feedback and it will be classified and routed in real time.
Open the live form