This is a reference architecture designed to be adapted to your organizationβs specific needs. View the live demo to see it in action.
What it does
GTM Feedback bridges the gap between your field teams (sales, customer success, support) and your product organization by:- Capturing feedback from multiple entry points (Slack reactions, web forms, API submissions)
- Automatically triaging feedback using AI-powered semantic matching to existing feature requests
- Coordinating approvals through human-in-the-loop workflows when AI confidence is medium
- Generating insights with AI agents that analyze product areas and create structured reports
- Surfacing trends by tracking which customers care about which features, weighted by ARR
Why it exists
Product teams often struggle with fragmented feedback across Slack threads, support tickets, and scattered spreadsheets. GTM Feedback solves this by:- Providing a single source of truth for customer feature requests
- Using AI to reduce manual work in matching and categorizing feedback
- Maintaining human oversight for important decisions through Slack approvals
- Enabling data-driven prioritization based on customer ARR and request frequency
Key features
Multiple entry points
Capture feedback via Slack reactions, form submissions, or web UI
AI-powered matching
Uses semantic search with vector embeddings to match feedback to existing feature requests
Intelligent triaging
Three-tier confidence system: auto-add (β₯0.9), human approval (0.8-0.9), or create new (<0.8)
Human-in-the-loop
Slack integration for approval workflows and notifications
Area insights
AI agent generates structured insights reports for product areas
Durable workflows
Background processing with Workflow DevKit for reliable execution
Architecture
The system uses a modern tech stack designed for reliability and developer experience:See the architecture diagram in the repository for a detailed visual overview.
Tech stack
- Framework: Next.js 16 with App Router
- Durable Execution: Workflow DevKit
- AI: Vercel AI SDK with AI Gateway
- Human-in-the-Loop: Slack Bolt + Vercel Slack Bolt adapter
- Vector Search: Upstash Vector with OpenAI embeddings
- Database: PostgreSQL with Drizzle ORM
- Caching: Redis/Upstash KV
- UI: shadcn/ui, Tailwind CSS v4, Radix UI
- Authentication: NextAuth v5 with Google OAuth
How it works
1. Feedback collection
Feedback enters the system through multiple channels:- Slack: Users react to messages with a π emoji, triggering the Slack app to capture the thread
- Web form: Authenticated users submit feedback through the web UI
- API: External systems can submit feedback programmatically
2. AI-powered matching
When feedback arrives, a durable workflow:- Generates a vector embedding of the feedback content
- Performs semantic search against existing feature requests
- Uses an AI agent to evaluate match quality and assign a confidence score
- Routes based on confidence:
- High confidence (β₯0.9): Automatically adds to existing request
- Medium confidence (0.8-0.9): Sends to Slack for human approval
- Low confidence (<0.8): Creates new feature request proposal
3. Human oversight
For medium-confidence matches and new request proposals, the workflow:- Posts an interactive message to Slack with context
- Waits for human approval or rejection
- Processes the decision and updates the database
- Notifies relevant stakeholders
4. Insights generation
Periodically, an AI agent analyzes each product area to:- Identify top requests by customer count and ARR
- Surface emerging themes and patterns
- Generate structured insights reports
- Highlight requests that cross multiple product areas
Project structure
The repository is organized as a monorepo with apps and shared packages:Next steps
Quickstart
Deploy GTM Feedback to Vercel and set up your first instance
Configuration
Configure authentication, AI providers, and integrations
Slack Integration
Set up the optional Slack app for reaction-based feedback capture
Contributing
Learn how to customize and extend the system for your needs