Add VoiceNotes firmware and CDM customer service SQL project

VoiceNotes is an Arduino sketch for the Waveshare ESP32-C6-LCD-0.85 that
records meetings and voice memos to microSD and turns them into notes:

- Records 16 kHz mono WAV (up to 4 h) from the ES7210 dual mics, with a
  boosted preamp and soft-limited digital gain
- Transcribes via an OpenAI-compatible speech-to-text API in ~10 min parts
  cut at quiet points, with retries and resume after failures
- Summarizes the transcript with Claude into meeting notes (decisions,
  action items, topics with timestamps), streamed to and from the card
- Copies the notes to Nextcloud over WebDAV
- Shows recording/processing state on the 0.85" LCD and the LED ring
- Works around the board's SD card failing multi-sector reads

Credentials live in VoiceNotes/secrets.h, which is git-ignored; see
secrets.example.h.

Also adds the Microsoft CDM customer service SQL implementation (DDL,
sample data, reporting queries and docs). Its README is renamed to
CDM_README.md so the repository README stays at the top level.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Ravi Reddy
2026-10-03 22:22:10 +05:30
co-authored by Claude Opus 5.5
parent ef38a502d8
commit 3b371cdb28
24 changed files with 8700 additions and 0 deletions
+529
View File
@@ -0,0 +1,529 @@
# CDM Customer Service - Reporting Procedures Summary
## ✅ Installation Complete
All reporting views and procedures have been successfully added to your `CDM_CustomerService` database.
---
## 📊 Available Views (4 Total)
### 1. v_ExecutiveDashboard
**Purpose:** Key performance metrics at a glance
**Returns:**
- Active cases count
- Resolved cases count
- Closed cases count
- Total customers count
- Active contracts count
- Total active contract value
- Affected contacts count
- Average days to close
**Usage:**
```sql
SELECT * FROM cdm.v_ExecutiveDashboard;
```
---
### 2. v_CasePerformanceMetrics
**Purpose:** Detailed case health and performance tracking
**Returns:**
- Case ID, number, title, priority, status
- Associated account name
- Case owner name
- Days case has been open
- Hours to resolution
- Service duration
- Status health (Complete, Overdue, On Track, Awaiting Close)
**Usage:**
```sql
SELECT * FROM cdm.v_CasePerformanceMetrics
WHERE statusHealth = 'Overdue';
```
---
### 3. v_AgentPerformance
**Purpose:** Support team performance metrics
**Returns:**
- Agent name
- Total cases owned
- Active cases count
- Closed cases count
- Average hours to resolution
- Critical cases count
- High priority cases count
**Usage:**
```sql
SELECT * FROM cdm.v_AgentPerformance
ORDER BY closedCases DESC;
```
---
### 4. v_ContractUtilizationDashboard
**Purpose:** Track contract usage and expiration
**Returns:**
- Contract number and name
- Account name
- Contract duration in days
- Days remaining
- Total units included/used
- Utilization percentage
- Contract value
- Utilization status (NORMAL, APPROACHING LIMIT, EXCEEDED)
**Usage:**
```sql
SELECT * FROM cdm.v_ContractUtilizationDashboard
WHERE utilizationStatus != 'NORMAL';
```
---
## 🔍 Analytics Procedures (8 Total)
### sp_CaseVolumeByPriority
**Purpose:** Case distribution and resolution time by priority
**Parameters:**
- `@Days INT` (default: 90) - Number of days to analyze
**Usage:**
```sql
EXEC sp_CaseVolumeByPriority @Days = 90;
```
**Returns:**
- Priority level
- Case count
- Percentage of total
- Average hours to resolution
**Sample Results:**
```
High 2 50.00% 0 hours
Medium 1 25.00% 0 hours
Low 1 25.00% 0 hours
```
---
### sp_CustomerSatisfactionAnalysis
**Purpose:** Customer service metrics and satisfaction tracking
**Parameters:**
- `@Months INT` (default: 6) - Number of months to analyze
**Usage:**
```sql
EXEC sp_CustomerSatisfactionAnalysis @Months = 6;
```
**Returns:**
- Account ID and name
- Total cases
- Closed cases count
- Closure rate (%)
- Average days open
- Unique contacts count
- Critical cases count
**Sample Results:**
```
Acme Corporation 2 cases 0% closed 0 days avg 1 critical
TechVision Inc 1 case 0% closed 0 days avg 0 critical
Global Services Ltd 1 case 0% closed 0 days avg 0 critical
```
---
### sp_SLAComplianceReport
**Purpose:** Real-time SLA compliance tracking
**Usage:**
```sql
EXEC sp_SLAComplianceReport;
```
**Returns:**
- Case number and title
- SLA KPI name (e.g., Response Time, Resolution Time)
- Metric value
- Target value
- Compliance status (COMPLIANT, WARNING, CRITICAL)
- Variance percentage
- Associated account
- Case owner
**Sample Results:**
```
CSE-2024-0001 System Login Issues First Response Time 30 min 60 min COMPLIANT -50%
CSE-2024-0001 System Login Issues Resolution Time 480 min 1440 min COMPLIANT -66%
CSE-2024-0002 Database Performance First Response Time 45 min 60 min COMPLIANT -25%
CSE-2024-0003 Software Installation First Response Time 120 min 120 min COMPLIANT 0%
```
---
### sp_ServiceActivitySchedule
**Purpose:** View upcoming scheduled service activities
**Parameters:**
- `@Days INT` (default: 7) - Number of days to look ahead
**Usage:**
```sql
EXEC sp_ServiceActivitySchedule @Days = 7;
```
**Returns:**
- Activity ID and subject
- Service name
- Associated case number
- Account name
- Assigned technician
- Schedule date and time
- Duration (minutes)
- Location
- Status
---
### sp_MonthlyActivityReport
**Purpose:** Monthly summary of operations
**Parameters:**
- `@Year INT` - Year (e.g., 2026)
- `@Month INT` - Month (1-12)
**Usage:**
```sql
EXEC sp_MonthlyActivityReport @Year = 2024, @Month = 9;
```
**Returns:**
- Report month
- New cases created
- Cases closed
- Service activities completed
- Tasks created
- Tasks completed
- Active contracts
---
### sp_CustomerRevenueAnalysis
**Purpose:** Revenue metrics per customer
**Usage:**
```sql
EXEC sp_CustomerRevenueAnalysis;
```
**Returns:**
- Top 20 customers by revenue
- Number of active contracts
- Total contract value
- Average contract value
- Active contracts count
- Total cases
- Closed cases count
---
### sp_ResourceUtilizationReport
**Purpose:** Technician/resource capacity analysis
**Parameters:**
- `@Days INT` (default: 30) - Number of days to analyze
**Usage:**
```sql
EXEC sp_ResourceUtilizationReport @Days = 30;
```
**Returns:**
- Resource name and type
- Scheduled activities count
- Total minutes scheduled
- Average activity duration
- Completed activities count
- In-progress activities count
- Future scheduled activities count
---
### sp_KnowledgeArticleEffectiveness
**Purpose:** Track KB article usage and effectiveness
**Usage:**
```sql
EXEC sp_KnowledgeArticleEffectiveness;
```
**Returns:**
- Top 20 articles by view count
- Article title and category
- View count
- Cases linked to article
- Cases helped resolve
- Resolution rate (%)
- Published date
---
## ⚙️ Administrative Procedures (5 Total)
### sp_CloseResolvedCases
**Purpose:** Auto-close cases that have been resolved for specified time
**Parameters:**
- `@DaysOld INT` (default: 7) - Days since resolution before auto-closing
**Usage:**
```sql
EXEC sp_CloseResolvedCases @DaysOld = 7;
```
**Returns:**
- Message confirming number of cases closed
---
### sp_ArchiveOldCases
**Purpose:** Archive historical cases to reduce active data
**Parameters:**
- `@YearsOld INT` (default: 2) - Archive cases older than this many years
**Usage:**
```sql
EXEC sp_ArchiveOldCases @YearsOld = 2;
```
**Returns:**
- Message confirming number of cases archived
---
### sp_DeactivateExpiredContracts
**Purpose:** Mark expired contracts as inactive
**Usage:**
```sql
EXEC sp_DeactivateExpiredContracts;
```
**Returns:**
- Message confirming number of contracts expired
---
### sp_UpdateEntitlementStatus
**Purpose:** Mark expired entitlements as inactive
**Usage:**
```sql
EXEC sp_UpdateEntitlementStatus;
```
**Returns:**
- Message confirming number of entitlements expired
---
### sp_ContractRenewalAlerts
**Purpose:** Identify contracts coming up for renewal
**Parameters:**
- `@DaysUntilExpiry INT` (default: 30) - Days until expiration threshold
**Usage:**
```sql
EXEC sp_ContractRenewalAlerts @DaysUntilExpiry = 30;
```
**Returns:**
- Contract number and name
- Account name
- End date
- Days until expiry
- Contract value
- Contract owner and email
---
## 🔍 Data Quality Procedures (2 Total)
### sp_CasesWithMissingData
**Purpose:** Identify data quality issues in cases
**Usage:**
```sql
EXEC sp_CasesWithMissingData;
```
**Returns:**
- Data quality issue description
- Count of cases with that issue
**Issues Checked:**
- Missing Account
- Missing Owner
- Missing Contact (High Priority cases)
---
### sp_FindOrphanedRecords
**Purpose:** Find orphaned records that reference missing parent entities
**Usage:**
```sql
EXEC sp_FindOrphanedRecords;
```
**Returns:**
- Record type (ServiceActivity, Task, ContractLine, etc.)
- Count of orphaned records
---
## 🚀 Quick Start Examples
### Daily Operations Dashboard
```sql
-- Get executive metrics
SELECT * FROM cdm.v_ExecutiveDashboard;
-- View overdue cases
SELECT * FROM cdm.v_CasePerformanceMetrics
WHERE statusHealth = 'Overdue';
-- Check SLA compliance
EXEC sp_SLAComplianceReport;
-- View today's schedule
EXEC sp_ServiceActivitySchedule @Days = 1;
```
### Weekly Reports
```sql
-- Agent performance review
SELECT * FROM cdm.v_AgentPerformance
ORDER BY closedCases DESC;
-- Case volume by priority
EXEC sp_CaseVolumeByPriority @Days = 7;
-- Contract utilization
SELECT * FROM cdm.v_ContractUtilizationDashboard;
-- Data quality check
EXEC sp_CasesWithMissingData;
```
### Monthly Operations
```sql
-- Monthly activity summary
EXEC sp_MonthlyActivityReport @Year = 2026, @Month = 9;
-- Customer satisfaction analysis
EXEC sp_CustomerSatisfactionAnalysis @Months = 1;
-- Customer revenue analysis
EXEC sp_CustomerRevenueAnalysis;
-- Resource utilization
EXEC sp_ResourceUtilizationReport @Days = 30;
-- Knowledge base effectiveness
EXEC sp_KnowledgeArticleEffectiveness;
```
### Maintenance Tasks
```sql
-- Close old resolved cases
EXEC sp_CloseResolvedCases @DaysOld = 7;
-- Archive old cases (annually)
EXEC sp_ArchiveOldCases @YearsOld = 2;
-- Update contract status
EXEC sp_DeactivateExpiredContracts;
-- Update entitlements
EXEC sp_UpdateEntitlementStatus;
-- Check for renewals (quarterly)
EXEC sp_ContractRenewalAlerts @DaysUntilExpiry = 90;
```
---
## 📋 Summary
**Total Reporting Objects Installed:**
- **Views:** 4
- **Analytics Procedures:** 8
- **Administrative Procedures:** 5
- **Data Quality Procedures:** 2
- **Total:** 19 objects
**Database:** CDM_CustomerService
**Schema:** cdm
**Status:** ✅ Production Ready
---
## 🔧 Maintenance Schedule
### Daily
- Check SLA Compliance: `EXEC sp_SLAComplianceReport;`
- View scheduled activities: `EXEC sp_ServiceActivitySchedule;`
### Weekly
- Agent performance: `SELECT * FROM cdm.v_AgentPerformance;`
- Case volume: `EXEC sp_CaseVolumeByPriority;`
- Data quality: `EXEC sp_CasesWithMissingData;`
### Monthly
- Activity report: `EXEC sp_MonthlyActivityReport;`
- Customer satisfaction: `EXEC sp_CustomerSatisfactionAnalysis;`
- Revenue analysis: `EXEC sp_CustomerRevenueAnalysis;`
### Quarterly
- Resource utilization: `EXEC sp_ResourceUtilizationReport;`
- Contract renewals: `EXEC sp_ContractRenewalAlerts;`
- Knowledge effectiveness: `EXEC sp_KnowledgeArticleEffectiveness;`
### Annually
- Archive old cases: `EXEC sp_ArchiveOldCases;`
---
## 📞 Support
All procedures and views are documented in your project files:
- See `CDM_Implementation_Guide.md` for complete technical reference
- See `CDM_QUICKSTART.md` for quick reference
For questions about specific procedures, you can:
1. View the procedure definition: `sp_helptext 'sp_ProcedureName'`
2. Review the parameter documentation in this file
3. Check the sample results and usage examples above
---
**Last Updated:** 2026-09-23
**Database Version:** 1.0
**Status:** ✅ All Reporting Tools Active and Tested