Unified Experience Data Platform
Aggregate, enrich, and analyze customer feedback from surveys, reviews, and support tickets
Formbricks Hub is an open-source unified experience data repository that solves the challenge of scattered customer feedback across multiple platforms. It provides a centralized system to collect, enrich with AI, and analyze feedback from surveys, product reviews, support tickets, and social media.
Customer feedback is scattered across multiple platforms:
- Survey tools (Formbricks, Typeform, Google Forms)
 - Review sites (G2, Trustpilot, App Store)
 - Support systems (Zendesk, Intercom)
 - Social media (Twitter, Reddit)
 
Each platform has different data formats, making it impossible to get a unified view of customer sentiment and experience.
Hub provides:
β
 Unified Data Model - All feedback sources mapped to a single, analytics-optimized schema
β
 AI-Powered Enrichment - Automatic sentiment analysis, emotion detection, and topic extraction
β
 BI-Ready Structure - Optimized for tools like Apache Superset, Tableau, Power BI
β
 Real-time Webhooks - React to new feedback immediately
β
 Cross-Source Analytics - Analyze patterns across reviews, surveys, and support tickets
Hub uses a narrow format (one row per question-answer pair) optimized for SQL aggregations and BI tools. No complex JSON unnesting, no wide tablesβjust simple, queryable data:
-- Direct aggregation without JSON unnesting
SELECT sentiment, COUNT(*) as feedback_count
FROM experience_data 
WHERE field_type = 'text' AND collected_at > NOW() - INTERVAL '7 days'
GROUP BY sentiment;
-- Find all frustrated users mentioning "checkout"
SELECT value_text, sentiment_score, topics
FROM experience_data
WHERE emotion = 'frustration' 
  AND 'checkout' = ANY(topics);Automatically enrich every text response with actionable insights using OpenAI:
- Sentiment Analysis: Positive, negative, neutral, or mixed with confidence scores (-1.0 to +1.0)
 - Emotion Detection: Joy, frustration, anger, confusion, sadness automatically identified
 - Topic Extraction: Automatically discover themes like pricing, UI, bugs, supportβno manual tagging
 - Semantic Search: Query feedback by meaning, not keywords: "users frustrated with checkout"
 - Vector Embeddings: Powered by 
pgvectorfor fast similarity search at scale 
All AI processing happens asynchronouslyβyour API stays fast (~20-50ms response time) while enrichment runs in the background. Results appear within 5-15 seconds via webhook notifications.
Cost-efficient: ~$0.015 per 1,000 text responses with gpt-4o-mini.
Centralize feedback from anywhere through our simple REST API:
- Surveys: Formbricks, Typeform, Google Forms, SurveyMonkey
 - Reviews: G2, Trustpilot, Capterra (includes G2 import script)
 - App Stores: Apple App Store, Google Play (coming soon)
 - Support: Zendesk, Intercom, Help Scout (coming soon)
 - Social: Twitter, Reddit (coming soon)
 - Custom: Any source via REST API or Python scripts
 
Direct PostgreSQL access means instant integration with any SQL-compatible tool:
- Real-time Dashboards: Apache Superset, Metabase, Redash
 - Enterprise BI: Power BI, Tableau, Looker, Qlik
 - Data Warehouses: Snowflake, Redshift, BigQuery (export ready)
 - Custom SQL: Write queries in your favorite tool
 
Example queries:
- Weekly NPS trends by source
 - Sentiment distribution over time
 - Most mentioned topics this month
 - Emotion breakdowns by product area
 
React to feedback the moment it arrives with reliable webhook delivery:
- Event Types: 
experience.created,experience.enriched,experience.updated,experience.deleted - Reliable Delivery: Worker pool with 3 retries and exponential backoff
 - Fast: 5-second timeout per webhook, never blocks API responses
 - Flexible: Send to Slack, Zapier, n8n, or custom endpoints
 
Use cases:
- Alert Support when negative sentiment detected
 - Trigger workflows when specific topics appear
 - Sync to external systems in real-time
 - Update dashboards immediately
 
Get up and running in under 5 minutes with Docker.
- Docker and Docker Compose: Install Docker Desktop
 
1. Download the production Docker Compose file:
mkdir formbricks-hub && cd formbricks-hub
curl -o docker-compose.yml https://raw.githubusercontent.com/formbricks/hub/main/docker-compose.prod.yml2. Configure your environment:
Create a .env file:
# Required: Secure passwords
POSTGRES_PASSWORD=$(openssl rand -base64 32)
SERVICE_API_KEY=$(openssl rand -base64 32)
# Optional: OpenAI for AI enrichment and semantic search
SERVICE_OPENAI_API_KEY=sk-your-api-key-here
# Optional: Configuration
SERVICE_PORT=8080
SERVICE_LOG_LEVEL=infoπ‘ Note: Without SERVICE_OPENAI_API_KEY, Hub works perfectly but won't enrich text feedback with sentiment/topics or support semantic search.
3. Start the services:
docker-compose up -dThis starts:
- Formbricks Hub API (port 8080)
 - PostgreSQL (port 5432)
 
4. Verify it's running:
curl http://localhost:8080/health
# {"status":"ok"}Create an experience with text feedback (automatic AI enrichment):
curl -X POST http://localhost:8080/v1/experiences \
  -H "X-API-Key: YOUR_SERVICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source_type": "survey",
    "source_id": "nps-2025-q1",
    "field_id": "feedback",
    "field_label": "What can we improve?",
    "field_type": "text",
    "value_text": "The checkout process is confusing and slow. Very frustrating!",
    "collected_at": "2025-01-15T10:30:00Z"
  }'Within seconds, Hub automatically enriches the feedback with:
- Sentiment: 
negative(score: -0.8) - Emotion: 
frustration - Topics: 
["checkout", "user_experience", "performance"] 
Query feedback:
curl "http://localhost:8080/v1/experiences?limit=10" \
  -H "X-API-Key: YOUR_SERVICE_API_KEY"Search feedback by meaning (semantic search):
curl "http://localhost:8080/v1/experiences/search?q=frustrated%20checkout&limit=10" \
  -H "X-API-Key: YOUR_SERVICE_API_KEY"π For complete documentation, see the Quick Start Guide
For local development with hot-reload:
1. Clone the repository:
git clone https://github.com/formbricks/hub.git
cd hub2. Start development services:
docker compose up -d  # PostgreSQL3. Run the Hub API:
cd apps/hub
cp env.example .env
# Edit .env with your configuration
make devThe API will be available at http://localhost:8888
βββββββββββββββββββ
β  External Data  β
β  (G2, Surveys)  β
ββββββββββ¬βββββββββ
         β
         βΌ
βββββββββββββββββββ      ββββββββββββββββ
β   REST API      ββββββββ€  Webhooks    β
β   (Go/Huma)     β      β  (Outbound)  β
ββββββββββ¬βββββββββ      ββββββββββββββββ
         β
         βΌ
βββββββββββββββββββ      ββββββββββββββββ
β   PostgreSQL    ββββββββ€ Job Queue    β
β   (UUIDv7)      β      β (Async)      β
ββββββββββ¬βββββββββ      ββββββββ¬ββββββββ
         β                      β
         βΌ                      βΌ
βββββββββββββββββββ      ββββββββββββββββ
β   BI Tools      β      β  AI Worker   β
β   (Superset,    β      β  (OpenAI)    β
β    Power BI)    β      ββββββββββββββββ
βββββββββββββββββββ
Key Components:
- Hub API (Go): High-performance REST API with OpenAPI 3.1 documentation
 - PostgreSQL 18: Primary database with pgvector extension for semantic search
 - Job Queue: PostgreSQL-backed queue for reliable async processing
 - AI Workers: Background workers for sentiment analysis, topic extraction, and embeddings
 - Webhook System: Worker pool with retry logic for reliable event delivery
 - BI Tools: Direct SQL access for Apache Superset, Power BI, Tableau, Looker
 - Import Scripts (Python): Data connectors for external sources (G2, Formbricks)
 
formbricks-hub/
βββ apps/
β   βββ hub/          # Go API service (REST + workers)
β   βββ docs/           # Docusaurus documentation site
βββ scripts/
β   βββ data-imports/   # Python scripts for data sources
β       βββ g2-reviews/
β       βββ formbricks-surveys/
βββ packages/           # Shared configs (ESLint, TypeScript)
βββ docker-compose.yml  # Local development stack
βββ turbo.json         # Turborepo configuration
Visit our documentation site for complete guides:
- Quick Start - Get up and running in 5 minutes
 - Data Model - Understanding the schema
 - AI Enrichment - Automatic sentiment and topic extraction
 - Semantic Search - Query feedback by meaning
 - Webhooks - React to feedback in real-time
 - API Reference - Complete REST API documentation
 - Environment Variables - Configuration reference
 
We'd love your feedback and contributions!
- GitHub Discussions: Ask questions and share ideas
 - Issues: Report bugs or request features
 - Contributing: See CONTRIBUTING.md
 - Security: Report vulnerabilities to [email protected]
 
- π Report bugs
 - π‘ Suggest features
 - π Improve documentation
 - π Build data source connectors
 - β Star the repository
 
Product Teams:
- Track NPS trends over time across all feedback sources
 - Use semantic search to find feature requests ("users want dark mode")
 - Automatically identify top pain points from open-ended feedback
 - Correlate sentiment changes with product releases
 
Support Teams:
- Get alerted when "angry" or "frustrated" feedback arrives (webhooks)
 - Analyze sentiment trends in support tickets by topic
 - Identify common issues before they become widespread
 - Measure customer satisfaction (CSAT) across all channels
 
Marketing Teams:
- Monitor brand sentiment across review sites in real-time
 - Track campaign feedback with automatic topic extraction
 - Compare sentiment across channels (email vs social vs in-app)
 - Discover what customers love most (joy + positive sentiment)
 
Data Teams:
- Build unified feedback dashboards in your favorite BI tool
 - Export enriched data to Snowflake/Redshift for deeper analysis
 - Train custom ML models on sentiment-labeled data
 - Query feedback using natural language (semantic search)
 
Formbricks Hub is designed with security best practices:
- API Key Authentication: Timing-attack resistant constant-time comparison
 - Rate Limiting: Per-IP and global rate limits to prevent abuse
 - Request Size Limits: 10MB max body size to prevent memory exhaustion
 - Sanitized Error Messages: Generic errors returned to clients, detailed logs internally
 - No PII Storage: Hub doesn't require personally identifiable information
 - Dependency Scanning: Automated security updates via Dependabot
 
Report security vulnerabilities to: [email protected]
See SECURITY.md for full security details.
Formbricks Hub is open-source software licensed under the Apache License 2.0.
See LICENSE for the full license text.
Built with β€οΈ by the Formbricks team
Powered by:
- Go - Performance and concurrency
 - Huma - OpenAPI-first REST framework
 - Ent - Type-safe ORM with code generation
 - PostgreSQL - Robust database
 - OpenAI - AI-powered enrichment
 - Apache Superset - Open-source BI
 
β Star us on GitHub if you find this project useful!