π« Route and analyze customer feedback with Qwen3-VL, Tally, PostgreSQL
β‘ 46 views Β· π« Ticket Management & Triage
Description
Self-Hosted
This workflow provides a complete end-to-end system for capturing, analyzing, and routing customer feedback. By combining local multimodal AI processing with structured data storage, it allows teams to respond to customer needs in real-time without compromising data privacy.
Who is this for?
This is designed for Customer Success Managers, Product Teams, and Community Leads who need to automate the triage of high-volume feedback. It is particularly useful for organizations that handle sensitive customer data and prefer local AI processing over cloud-based API calls.
π οΈ Tech Stack
- Tally.so: For front-end feedback collection.
- LM Studio: To host the local AI models (Qwen3-VL).
- PostgreSQL: For persistent data storage and reporting.
- Discord: For real-time team notifications.
β¨ How it works
- Form Submission: The workflow triggers when a new submission is received from Tally.so.
- Multimodal Analysis: The OpenAI node (pointing to LM Studio) processes the input using the Qwen3-VL model across three specific layers:
- Sentiment Analysis: Evaluates the text to determine if the customer is Positive, Negative, or Neutral.
- Zero-Shot Classification: Categorizes the feedback into pre-defined labels based on instructions in the prompt.
- Vision Processing: Analyzes any attached images to extract descriptive keywords or identify UI elements mentioned in the feedback.
- Data Storage: The PostgreSQL node logs the userβs details, the original message, and all AI-generated insights.
- AI-Driven Routing: The same Qwen3-VL model makes the routing decision by evaluating the classification results and determining the appropriate path for the data to follow.
- Discord Notification: The Discord node sends a formatted message to the corresponding channel, ensuring the support team sees urgent issues while the marketing team sees positive testimonials.
π Requirements
- LM Studio running a local server on port
1234. - Qwen3-VL-4B (GGUF) model loaded in LM Studio.
- PostgreSQL instance with a table configured for feedback data.
- Discord Bot Token and specific Channel IDs.
π How to set up
- Prepare your Local AI:
- Open LM Studio and download the
Qwen3-VL-4Bmodel. - Start the Local Server on port
1234and ensure CORS is enabled. - Disable the Require Authentication setting in the Local Server tab.
- Open LM Studio and download the
- Configure PostgreSQL:
- Ensure your database is running. Create a table named
customer_feedbackwith columns forname,email_address,feedback_message,image_url,sentiment,category, andimg_keywords.
- Ensure your database is running. Create a table named
- Import the Workflow:
- Import the JSON file into your n8n instance.
- Link Services:
- Update the Webhook node with your Tally.so URL.
- In the Discord nodes, paste the relevant Channel IDs for your #support, #feedback, and #general channels.
- Test and Activate:
- Toggle the workflow to Active.
- Send a test submission through your Tally form and verify the data appears in PostgreSQL and Discord.
π Credential Setup
To run this workflow, you must configure the following credentials in n8n:
- OpenAI API (Local):
- Create a new OpenAI API credential.
- API Key: Enter any placeholder text (e.g.,
lm-studio). - Base URL: Set this to your machineβs local IP address (e.g.,
http://192.168.1.10:1234/v1) to ensure n8n can connect to the local AI server, especially if running within a Docker container.
- PostgreSQL:
- Create a new PostgreSQL credential.
- Enter your database Host, Database Name, User, and Password. If using the provided Docker setup, the host is usually
db.
- Discord Bot:
- Create a new Discord Bot API credential.
- Paste your Bot Token obtained from the Discord Developer Portal.
- Tally:
- Create a new Tally API credential.
- Enter your API Key, which you can find in your Tally.so account settings.
βοΈ How to customize
- Refine AI Logic: Update the System Message in the AI node to change classification categories or sentiment sensitivity.
- Switch to Cloud AI: If you prefer not to use a local model, you can swap the local LM Studio connection for any 3rd party API, such as OpenAI (GPT-4o), Anthropic (Claude), or Google Gemini, by updating the node credentials and Base URL.
- Expand Destinations: Add more Discord nodes or integrate Slack to notify different departments based on the AIβs routing decision.
- Custom Triggers: Replace the Tally webhook with a Typeform, Google Forms, or a custom Webhook trigger if your collection stack differs.
π Nodes Used
HTTP Request, Postgres, Discord, Basic LLM Chain, OpenAI Chat Model, Structured Output Parser
π₯ Import
Download workflow.json and import into n8n:
Workflow menu β Import from File