A comprehensive web application for analyzing consumer-agent conversation transcripts with AI-powered insights including sentiment analysis, intent classification, predictive analytics, and automated recommendations.
Traditional Analysis:
- Sentiment Analysis: Overall and per-message sentiment scoring (0-100 scale)
- Topic Extraction: Automatic identification of key topics using TF-IDF
- Keyword Extraction: Most frequent and relevant terms
- Performance Metrics: Message counts, response times, conversation duration
- Agent Performance Scoring: Professionalism and effectiveness metrics
- Customer Satisfaction Estimation: Based on language patterns and indicators
AI-Powered Analysis:
- Summarization: 2-3 sentence summaries with key points and action items
- Advanced Sentiment: Emotion detection, sentiment trajectory, turning points, empathy scoring
- Intent Classification: Primary and secondary intents with complexity levels
- Agent Performance: Communication quality, problem-solving, compliance, personalization
- QA Insights: Policy violations, script adherence, risk flags, best practices
- Customer Journey: Churn risk prediction, personality profiling, LTV indicators
- Sentiment Trend Analysis: Historical trends with forecasting and anomaly detection
- Churn Risk Prediction: ML-based customer churn risk scoring with risk factors
- Intent Impact Matrix: Volume vs Sentiment visualization with complexity mapping
- AI-Powered Recommendations: Automated priority-based action recommendations
- Multi-Account Support: Manage multiple LivePerson accounts
- OAuth 1.0 Authentication: Secure API integration
- Conversation Fetching: Bulk import with date range and skill filtering
- Real-time Progress: Live fetch status with conversation counts
- Interactive Dashboard: Real-time statistics and visualizations
- Interactive Explorer: 4 visualization panels (Intent Impact, Empathy, Churn Risk, Resolution)
- AI Insights Panel: Automated recommendations with priority badges
- Multi-Account Filtering: Filter all views by LivePerson account
- Drag & Drop Upload: Easy file upload with progress tracking
- Advanced Filtering: Filter results by sentiment, intent, complexity, date
- Export Functionality: Download results in CSV or JSON format
- Responsive Design: Works beautifully on all devices
- Backend: Node.js, Express, SQLite
- Frontend: React 18, Vite, Framer Motion
- Analysis: Natural (NLP), Sentiment Analysis
- AI: OpenAI GPT-4, Google Gemini (configurable)
- Visualization: Recharts, Chart.js
- Design: Modern glassmorphism with vibrant gradients
- Node.js 18+ installed
- npm or yarn package manager
- OpenAI API key or Google Gemini API key (for AI analysis)
- Clone or navigate to the project directory
cd transcript-analyzer- Install backend dependencies
npm install- Install frontend dependencies
cd client
npm install
cd ..- Configure AI Settings (Optional)
Create a
.envfile in the root directory:
OPENAI_API_KEY=your_openai_api_key
# OR
GOOGLE_API_KEY=your_gemini_api_key- Run Database Migrations (if upgrading from older version)
node scripts/run-migrations.jsnpm run devThe API server will start on http://localhost:3000
cd client
npm run devThe web app will be available at http://localhost:5173
Option A: Upload Files Navigate to the Import tab โ Upload section and upload conversation transcripts in JSON or text format.
Option B: LivePerson Integration
- Go to Import tab โ LivePerson section
- Add your LivePerson account credentials (OAuth 1.0)
- Select date range and optional skills filter
- Click "Fetch Conversations" to import
JSON Format:
[
{
"conversation_id": "conv_001",
"conversation_date": "2025-11-26",
"transcript_details": "Agent: Hello, how can I help you today?\nCustomer: I have a question about my order..."
}
]Go to the Analysis tab:
- Traditional Analysis: Click "Run Traditional Analysis" for fast rule-based analysis
- AI Analysis: Click "Run AI Analysis" for deep AI-powered insights
- View results in the combined table with all metrics
The Dashboard provides an overview with:
- Total conversations and analysis counts
- Average sentiment, CSAT, and agent scores
- Sentiment distribution charts
- Recent conversations table
- Sentiment Trend Chart: Historical trends with forecast and anomalies
- Churn Risk Panel: High-risk conversation identification
The Explore tab features:
- AI-Powered Insights Panel: Top 3 automated recommendations
- Intent Impact Analysis: Volume vs Sentiment bubble chart
- Empathy Distribution: Agent empathy score distribution
- Churn Risk Visuals: Risk level breakdown
- Resolution Status: Resolved vs unresolved issues
Use the Export button in Analysis tabs to download results in:
- JSON: Structured data for programmatic access
- CSV: Spreadsheet-compatible for Excel/Google Sheets
POST /api/conversations/upload- Upload file with conversationsPOST /api/conversations/bulk- Bulk upload via JSONGET /api/conversations- List all conversations (paginated)GET /api/conversations/:id- Get specific conversationDELETE /api/conversations/:id- Delete conversation
GET /api/liveperson/accounts- List all LivePerson accountsPOST /api/liveperson/accounts- Create new accountPUT /api/liveperson/accounts/:id- Update accountDELETE /api/liveperson/accounts/:id- Delete accountPOST /api/liveperson/fetch- Fetch conversations from LivePersonGET /api/liveperson/export-csv- Export conversations to CSV
POST /api/analysis/run- Run traditional analysisGET /api/analysis/results- Get analysis results (with filters)GET /api/analysis/dashboard- Get dashboard metricsGET /api/analysis/export?format=json|csv- Export results
POST /api/ai-analysis/run- Run AI analysis on conversationsGET /api/ai-analysis/results- Get AI analysis results (paginated, with filters)GET /api/ai-analysis/summary/:id- Get detailed AI analysis for a conversationGET /api/ai-analysis/insights- Get aggregated AI insightsGET /api/ai-analysis/costs- Get cost tracking dataGET /api/ai-analysis/stats- Get dashboard statisticsGET /api/ai-analysis/trends- Get sentiment trends and forecastGET /api/ai-analysis/churn-risks- Get churn risk conversationsPOST /api/ai-analysis/calculate-churn- Calculate churn risk scoresGET /api/ai-analysis/intents- Get aggregated intent statisticsGET /api/ai-analysis/intent-insights- Get AI-powered intent recommendations
GET /api/analysis-config- Get all analysis configurationsPUT /api/analysis-config- Update analysis configurationGET /api/metric-configs- Get all metric configurationsPOST /api/metric-configs- Create or update metric configGET /api/prompts- Get all AI promptsPOST /api/prompts- Create new promptGET /api/settings- Get AI settingsPUT /api/settings- Update AI settings
transcript-analyzer/
โโโ server.js # Express server
โโโ database.js # SQLite database setup
โโโ analyzer.js # Traditional analysis engine
โโโ aiAnalyzer.js # AI analysis engine
โโโ llmService.js # LLM provider abstraction
โโโ routes/
โ โโโ conversations.js # Conversation endpoints
โ โโโ analysis.js # Traditional analysis endpoints
โ โโโ aiAnalysis.js # AI analysis endpoints
โ โโโ liveperson.js # LivePerson integration
โ โโโ ... # Config endpoints
โโโ services/
โ โโโ livepersonService.js # LivePerson API client
โ โโโ trendAnalysis.js # Sentiment trend forecasting
โ โโโ churnPrediction.js # Churn risk ML model
โ โโโ intentInsights.js # AI-powered recommendations
โโโ migrations/
โ โโโ add_predictive_insights.js
โโโ scripts/
โ โโโ run-migrations.js # Migration runner
โ โโโ backfill_trends.js # Trend data backfill
โ โโโ README.md # Scripts documentation
โโโ client/
โ โโโ src/
โ โ โโโ App.jsx # Main app component
โ โ โโโ components/ # React components
โ โ โ โโโ Dashboard.jsx
โ โ โ โโโ InteractiveExplorer.jsx
โ โ โ โโโ LivePersonFetch.jsx
โ โ โ โโโ visualizations/
โ โ โ โโโ IntentAnalysisChart.jsx
โ โ โ โโโ IntentInsightsPanel.jsx
โ โ โ โโโ SentimentTrendChart.jsx
โ โ โ โโโ ChurnRiskPanel.jsx
โ โ โโโ context/
โ โ โ โโโ AccountContext.jsx
โ โ โโโ utils/
โ โ โ โโโ api.js # API client
โ โ โโโ index.css # Design system
โ โโโ index.html
โโโ DATABASE.md # Database schema documentation
โโโ package.json
- Handles unlimited conversations with server-side aggregation
- Traditional analysis: ~100 conversations/second
- AI analysis: ~5-10 conversations/minute (depends on LLM provider)
- Efficient SQLite database with indexes for fast queries
- Optimized frontend with lazy loading and code splitting
The application uses SQLite with 11 tables:
conversations- Conversation transcriptsliveperson_accounts- LivePerson account credentialsanalysis_results- Traditional analysis resultsai_analysis_results- AI analysis results with 30+ metricssentiment_trends- Daily aggregated sentiment trendsai_cost_tracking- AI usage cost trackingai_settings- AI configurationai_prompts- Custom AI prompt templatesmetrics- General metrics storagemetric_configs- Custom metric configurationsanalysis_config- Analysis algorithm configuration
See DATABASE.md for complete schema documentation.
Backend won't start:
- Ensure port 3000 is available
- Check Node.js version (18+)
- Verify all dependencies are installed
- Check for database migration errors
Frontend can't connect to backend:
- Ensure backend is running on port 3000
- Check CORS settings in
server.js - Verify API_BASE_URL in
client/src/utils/api.js
AI Analysis not working:
- Verify API key is set in Settings tab or
.envfile - Check AI provider selection (OpenAI vs Gemini)
- Monitor cost tracking to ensure budget limits aren't exceeded
- View browser console for error messages
LivePerson fetch failing:
- Verify OAuth credentials are correct
- Check account ID matches your LivePerson account
- Ensure date range is valid
- Check network connectivity to LivePerson API
MIT
For issues or questions:
- Check browser console for error messages
- Review server logs for backend errors
- Verify database schema with
sqlite3 transcripts.db .schema - Check DATABASE.md for schema documentation
- Review scripts/README.md for migration help