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>
10 KiB
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
EXEC sp_ArchiveOldCases @YearsOld = 2;
Returns:
- Message confirming number of cases archived
sp_DeactivateExpiredContracts
Purpose: Mark expired contracts as inactive
Usage:
EXEC sp_DeactivateExpiredContracts;
Returns:
- Message confirming number of contracts expired
sp_UpdateEntitlementStatus
Purpose: Mark expired entitlements as inactive
Usage:
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:
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:
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:
EXEC sp_FindOrphanedRecords;
Returns:
- Record type (ServiceActivity, Task, ContractLine, etc.)
- Count of orphaned records
🚀 Quick Start Examples
Daily Operations Dashboard
-- 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
-- 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
-- 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
-- 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.mdfor complete technical reference - See
CDM_QUICKSTART.mdfor quick reference
For questions about specific procedures, you can:
- View the procedure definition:
sp_helptext 'sp_ProcedureName' - Review the parameter documentation in this file
- Check the sample results and usage examples above
Last Updated: 2026-09-23
Database Version: 1.0
Status: ✅ All Reporting Tools Active and Tested