# 📊 Compliance IA Analytics

Sistema de análisis de llamadas de IA para cumplimiento de la **Ley 10/2025 de Servicios de Atención a la Clientela**.

---

## 🚀 INSTALACIÓN RÁPIDA

### Paso 1: Subir archivos al servidor

```bash
# En tu servidor OVH (cluster100)
cd /home/gwchajw/public_html/
# Subir la carpeta completa 'compliance-ia'
# O descomprimir el ZIP aquí
```

### Paso 2: Crear la base de datos

Desde terminal SSH en tu servidor:

```bash
cd /home/gwchajw/public_html/compliance-ia/
php api/init_database.php
```

Debería mostrar:
```
✅ Tabla 'clients' creada
✅ Tabla 'calls' creada
✅ Tabla 'reports' creada
✅ Índices creados
✅ Base de datos inicializada correctamente
```

### Paso 3: Insertar clientes

```bash
php api/insert_clients.php
```

Debería mostrar:
```
✅ Begoña Akesolo (Miss Uñas)
✅ Centro Recuperación WhatsApp
... (etc)
✅ Insertados 10 clientes correctamente
```

### Paso 4: Configurar cron

Accede al panel OVH:
- **Hosting → Tu hosting → Tareas planificadas (Cron)**
- Añade nuevo cron:

```
Comando: /usr/bin/php /home/gwchajw/public_html/compliance-ia/api/fetch_elevenlabs.php
Frecuencia: Cada día a las 02:00 (0 2 * * *)
```

### Paso 5: Acceder al dashboard

```
https://proyectos.nubip.com/compliance-ia
```

---

## 📁 ESTRUCTURA DE ARCHIVOS

```
compliance-ia/
├── .env                          ← Configuración (API keys)
├── config.php                    ← Carga configuración
├── public/
│   ├── index.html               ← Redirige a dashboard
│   └── dashboard.html           ← 🎯 PANEL PRINCIPAL
├── api/
│   ├── init_database.php        ← Crear BD (ejecutar 1 vez)
│   ├── insert_clients.php       ← Insertar clientes (ejecutar 1 vez)
│   ├── fetch_elevenlabs.php     ← Sincronizar con ElevenLabs (cron)
│   ├── get_clients.php          ← API: lista de clientes
│   └── get_dashboard.php        ← API: métricas + llamadas
├── data/
│   └── compliance.db            ← BD SQLite (se crea automáticamente)
├── logs/
│   └── compliance.log           ← Log de sincronizaciones
└── reports/
    └── (aquí irán los PDFs/Excel generados)
```

---

## ⚙️ CONFIGURACIÓN (.env)

El archivo `.env` contiene:

```ini
ELEVENLABS_API_KEY=tu_api_key_aqui
GOOGLE_SHEET_ID=tu_sheet_id_aqui
SQLITE_PATH=/home/gwchajw/public_html/compliance-ia/data/compliance.db
ELEVENLABS_API_URL=https://api.eu.residency.elevenlabs.io
```

**NO CAMBIES estos valores** a menos que sea necesario.

---

## 📊 CÓMO FUNCIONA

### Flujo de datos:

```
1. Cron Job (cada noche a las 2 AM)
   ↓
2. fetch_elevenlabs.php
   → Consulta ElevenLabs API
   → Trae todas las conversaciones nuevas
   ↓
3. Inserta en SQLite
   → Tabla 'calls' con métricas
   ↓
4. Dashboard (acceso web)
   → Lee datos de SQLite
   → Muestra KPIs en tiempo real
```

### Métricas que se recopilan:

- ✅ **Llamadas totales** (diarias, semanales, mensuales)
- ✅ **% Resueltas por IA** (para auditoría)
- ✅ **% Transferencias** (derivadas a persona)
- ✅ **Tiempo promedio** de atención
- ✅ **Categorías** de llamadas
- ✅ **Satisfacción** (si se configura en ElevenLabs)
- ✅ **Auditoría completa** de todas las interacciones

---

## 🔍 MONITOREO

### Ver logs de sincronización:

```bash
tail -f /home/gwchajw/public_html/compliance-ia/logs/compliance.log
```

Ejemplo de log:
```
[2026-06-09 02:00:05] [INFO] === INICIO SINCRONIZACIÓN ELEVENLABS ===
[2026-06-09 02:00:05] [INFO] 🔄 Procesando cliente: Restaurante Azken
[2026-06-09 02:00:06] [INFO] 📞 Encontradas 5 conversaciones
[2026-06-09 02:00:06] [INFO] ✅ Llamada insertada: conv_123456
...
[2026-06-09 02:00:15] [INFO] === SINCRONIZACIÓN COMPLETADA ===
[2026-06-09 02:00:15] [INFO] Total clientes procesados: 10
[2026-06-09 02:00:15] [INFO] Total llamadas nuevas: 23
```

### Verificar base de datos manualmente:

```bash
sqlite3 /home/gwchajw/public_html/compliance-ia/data/compliance.db

# Dentro de SQLite:
sqlite> SELECT COUNT(*) FROM calls;
sqlite> SELECT * FROM clients;
sqlite> SELECT * FROM calls LIMIT 5;
sqlite> .quit
```

---

## 🛠️ TROUBLESHOOTING

### ❌ "No se conecta a ElevenLabs"

Verifica:
1. API Key correcta en `.env`
2. Conexión a internet del servidor
3. Ver log: `tail -f logs/compliance.log`

### ❌ "Base de datos bloqueada"

SQLite solo permite 1 escritura a la vez. Solución:
```bash
# Hacer backup
cp data/compliance.db data/compliance.db.backup

# Recrear
rm data/compliance.db
php api/init_database.php
php api/insert_clients.php
```

### ❌ "Dashboard no carga datos"

1. Verifica que el cron se ha ejecutado: `logs/compliance.log`
2. Asegúrate que `api/get_dashboard.php` es accesible
3. Abre DevTools (F12) en el navegador y verifica errores

---

## 📋 PROXIMAS MEJORAS

- [ ] Generación automática de PDFs para la ley
- [ ] Integración con Google Sheets (auditoría)
- [ ] Exportar reportes a Excel
- [ ] Gráficos históricos
- [ ] Alertas automáticas por SLA
- [ ] Webhook post-llamada de ElevenLabs

---

## 📞 SOPORTE

Si encuentras problemas, revisa:
1. `logs/compliance.log`
2. Console de navegador (F12)
3. Terminal: `curl https://api.eu.residency.elevenlabs.io/v1/convai/agents/agent_id/conversations -H "Authorization: Bearer API_KEY"`

---

**¡Sistema listo para cumplir con la Ley 10/2025! 🚀**
