Dashboard Features: - 8 navigation sections: Overview, Outcomes, Poor CX, FCR, Churn, Agent, Call Explorer, Export - Beyond Brand Identity styling (colors #6D84E3, Outfit font) - RCA Sankey diagram (Driver → Outcome → Churn Risk flow) - Correlation heatmaps (driver co-occurrence, driver-outcome) - Outcome Deep Dive (root causes, correlation, duration analysis) - Export functionality (Excel, HTML, JSON) Blueprint Compliance: - FCR: 4 categories (Primera Llamada/Rellamada × Sin/Con Riesgo de Fuga) - Churn: Binary view (Sin Riesgo de Fuga / En Riesgo de Fuga) - Agent: Talento Para Replicar / Oportunidades de Mejora - Fixed FCR rate calculation (only FIRST_CALL counts as success) Technical: - Streamlit + Plotly for interactive visualizations - Light theme configuration (.streamlit/config.toml) - Fixed Plotly colorbar titlefont deprecation Documentation: - Updated PROJECT_CONTEXT.md, TODO.md, CHANGELOG.md - Added 4 new technical decisions (TD-014 to TD-017) - Created TROUBLESHOOTING.md with 10 common issues Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
262 lines
8.8 KiB
Plaintext
262 lines
8.8 KiB
Plaintext
Analiza la siguiente transcripción de llamada de una compañía de utilities/energía eléctrica y proporciona un análisis estructurado completo.
|
|
|
|
## METADATOS DE LA LLAMADA
|
|
- ID de Llamada: ${call_id}
|
|
- Duración: ${duration_sec} segundos
|
|
- Cola/Servicio: ${queue}
|
|
|
|
## EVENTOS OBSERVADOS (Pre-detectados)
|
|
${observed_events}
|
|
|
|
## TRANSCRIPCIÓN
|
|
${transcript}
|
|
|
|
## TAXONOMÍA - DRIVERS DE VENTA PERDIDA / OPORTUNIDAD PERDIDA
|
|
${lost_sales_taxonomy}
|
|
|
|
## TAXONOMÍA - DRIVERS DE MALA EXPERIENCIA (CX)
|
|
${poor_cx_taxonomy}
|
|
|
|
## TAXONOMÍA - DRIVERS DE RIESGO DE FUGA (CHURN)
|
|
${churn_risk_taxonomy}
|
|
|
|
## TAXONOMÍA - DRIVERS DE FCR (RELLAMADA)
|
|
${fcr_failure_taxonomy}
|
|
|
|
## TAXONOMÍA - HABILIDADES DEL AGENTE
|
|
### Habilidades Positivas (Buen Comercial):
|
|
${agent_positive_skills_taxonomy}
|
|
|
|
### Áreas de Mejora (Necesita Mejora):
|
|
${agent_improvement_taxonomy}
|
|
|
|
## INSTRUCCIONES DE ANÁLISIS
|
|
|
|
### 1. OUTCOME - Resultado de la llamada
|
|
Determina el resultado. Opciones para utilities/energía:
|
|
- OUTAGE_REPORTED: Cliente reportó avería/corte de luz
|
|
- OUTAGE_RESOLVED: Avería resuelta en la llamada
|
|
- OUTAGE_ESCALATED: Avería derivada a técnico/departamento
|
|
- TECHNICIAN_SCHEDULED: Se agendó visita técnica
|
|
- BILLING_INQUIRY_RESOLVED: Consulta de factura resuelta
|
|
- BILLING_DISPUTE_OPENED: Se abrió reclamación de factura
|
|
- PAYMENT_ARRANGEMENT_MADE: Se acordó plan de pago
|
|
- RATE_CHANGE_COMPLETED: Se realizó cambio de tarifa
|
|
- CANCELLATION_SAVED: Se retuvo al cliente
|
|
- CANCELLATION_COMPLETED: Cliente se dio de baja
|
|
- PORTABILITY_INITIATED: Se inició portabilidad a otra comercializadora
|
|
- INQUIRY_RESOLVED: Consulta general resuelta
|
|
- INQUIRY_UNRESOLVED: Consulta no resuelta
|
|
- TRANSFER_OUT: Transferido a otro departamento
|
|
- CALLBACK_SCHEDULED: Se agendó callback
|
|
- UNKNOWN: No se puede determinar
|
|
|
|
### 2. LOST_SALES_DRIVERS - Causas de oportunidad perdida (si aplica)
|
|
- Aplica cuando: cliente rechaza cambio de tarifa, no acepta servicios adicionales, o se va a competidor
|
|
- Usa SOLO códigos de la taxonomía de Lost Sales
|
|
- Máximo 5 drivers, ordenados por relevancia
|
|
- Cada driver DEBE tener evidence_spans, origin, y corrective_action
|
|
|
|
### 3. POOR_CX_DRIVERS - Causas de mala experiencia (si aplica)
|
|
- Busca: silencios largos, transferencias, falta de información sobre avería, confusión con factura, etc.
|
|
- Usa SOLO códigos de la taxonomía de Poor CX
|
|
- Máximo 5 drivers, ordenados por relevancia
|
|
- Cada driver DEBE tener evidence_spans, origin, y corrective_action
|
|
|
|
### 4. FCR_STATUS - Primera llamada o rellamada
|
|
- FIRST_CALL: Primera llamada por este motivo
|
|
- REPEAT_CALL: Cliente indica que ya llamó antes por lo mismo, o que el problema persiste
|
|
- UNKNOWN: No hay información suficiente
|
|
|
|
### 5. FCR_FAILURE_DRIVERS - Factores que pueden causar rellamada
|
|
- Identifica factores que indican que el cliente podría volver a llamar:
|
|
- Avería no resuelta
|
|
- Requiere visita de técnico
|
|
- Revisión de factura pendiente
|
|
- Se prometió callback
|
|
- Información incompleta
|
|
- Usa códigos de la taxonomía FCR
|
|
- Máximo 5 drivers con evidence_spans
|
|
|
|
### 6. CHURN_RISK - Riesgo de fuga del cliente
|
|
- NO_RISK: Cliente satisfecho, sin menciones de irse
|
|
- AT_RISK: Cliente queja por factura alta, menciona competidores, amenaza con darse de baja
|
|
- UNKNOWN: No hay información suficiente
|
|
|
|
### 7. CHURN_RISK_DRIVERS - Señales de riesgo de fuga
|
|
- Identifica evidencias de posible baja:
|
|
- Queja por factura alta
|
|
- Menciona otras comercializadoras
|
|
- Cortes de luz recurrentes
|
|
- Amenaza con cambiar de compañía
|
|
- Pregunta por condiciones de baja
|
|
- Usa códigos de la taxonomía de Churn
|
|
- Máximo 5 drivers con evidence_spans
|
|
|
|
### 8. AGENT_CLASSIFICATION - Clasificación del agente
|
|
- GOOD_PERFORMER: Resuelve eficientemente, empatía, buen conocimiento técnico
|
|
- NEEDS_IMPROVEMENT: No resuelve, no escucha, desconoce procesos
|
|
- MIXED: Tiene fortalezas y debilidades
|
|
- UNKNOWN: No hay información suficiente
|
|
|
|
### 9. AGENT_POSITIVE_SKILLS - Habilidades positivas del agente
|
|
- Identifica buenas prácticas: explica bien la factura, gestiona bien la avería, muestra empatía
|
|
- Cada skill DEBE tener evidence_spans, description, y replicable_practice
|
|
- Máximo 5 skills
|
|
|
|
### 10. AGENT_IMPROVEMENT_AREAS - Áreas de mejora del agente
|
|
- Identifica habilidades a mejorar: no explica causa de avería, confunde al cliente, no ofrece alternativas
|
|
- Cada área DEBE tener evidence_spans, description, y coaching_recommendation
|
|
- Máximo 5 áreas
|
|
|
|
## FORMATO DE RESPUESTA JSON
|
|
|
|
```json
|
|
{
|
|
"outcome": "OUTAGE_ESCALATED",
|
|
|
|
"lost_sales_drivers": [],
|
|
|
|
"poor_cx_drivers": [
|
|
{
|
|
"driver_code": "OUTAGE_NOT_EXPLAINED",
|
|
"confidence": 0.85,
|
|
"origin": "AGENT",
|
|
"evidence_spans": [
|
|
{
|
|
"text": "No sé cuándo se va a resolver, tiene que llamar a averías",
|
|
"start_time": 45.2,
|
|
"end_time": 49.8,
|
|
"speaker": "agent"
|
|
}
|
|
],
|
|
"reasoning": "El agente no proporciona información sobre la avería ni tiempo estimado de resolución",
|
|
"corrective_action": "Verificar en el sistema si hay incidencias conocidas en la zona y comunicar tiempo estimado"
|
|
},
|
|
{
|
|
"driver_code": "WRONG_DEPARTMENT",
|
|
"confidence": 0.80,
|
|
"origin": "PROCESS",
|
|
"evidence_spans": [
|
|
{
|
|
"text": "Yo no manejo eso, tiene que llamar al 800-700-706",
|
|
"start_time": 52.0,
|
|
"end_time": 56.5,
|
|
"speaker": "agent"
|
|
}
|
|
],
|
|
"reasoning": "Cliente derivado a otro número sin transferencia, genera fricción",
|
|
"corrective_action": "Implementar transferencia directa al departamento de averías"
|
|
}
|
|
],
|
|
|
|
"fcr_status": "FIRST_CALL",
|
|
|
|
"fcr_failure_drivers": [
|
|
{
|
|
"driver_code": "OUTAGE_PENDING",
|
|
"confidence": 0.90,
|
|
"origin": "PROCESS",
|
|
"evidence_spans": [
|
|
{
|
|
"text": "Tiene que llamar a averías para que le hagan una incidencia",
|
|
"start_time": 60.0,
|
|
"end_time": 64.5,
|
|
"speaker": "agent"
|
|
}
|
|
],
|
|
"reasoning": "La avería no se resuelve en esta llamada, cliente debe llamar a otro número",
|
|
"corrective_action": "Permitir que el agente abra la incidencia directamente o transfiera la llamada"
|
|
}
|
|
],
|
|
|
|
"churn_risk": "AT_RISK",
|
|
|
|
"churn_risk_drivers": [
|
|
{
|
|
"driver_code": "REPEATED_OUTAGES",
|
|
"confidence": 0.82,
|
|
"origin": "COMPANY",
|
|
"evidence_spans": [
|
|
{
|
|
"text": "Es la tercera vez este mes que nos quedamos sin luz",
|
|
"start_time": 30.0,
|
|
"end_time": 34.2,
|
|
"speaker": "customer"
|
|
}
|
|
],
|
|
"reasoning": "Cliente reporta problemas recurrentes de suministro",
|
|
"corrective_action": "Escalar a calidad de servicio para investigar causa de cortes frecuentes"
|
|
},
|
|
{
|
|
"driver_code": "HIGH_FRUSTRATION",
|
|
"confidence": 0.78,
|
|
"origin": "CUSTOMER",
|
|
"evidence_spans": [
|
|
{
|
|
"text": "Estoy harto de tener que llamar cada vez que pasa esto",
|
|
"start_time": 70.0,
|
|
"end_time": 73.5,
|
|
"speaker": "customer"
|
|
}
|
|
],
|
|
"reasoning": "Cliente muestra alta frustración con el servicio",
|
|
"corrective_action": "Ofrecer seguimiento proactivo y posible compensación"
|
|
}
|
|
],
|
|
|
|
"agent_classification": "NEEDS_IMPROVEMENT",
|
|
|
|
"agent_positive_skills": [
|
|
{
|
|
"skill_code": "CLEAR_COMMUNICATION",
|
|
"skill_type": "positive",
|
|
"confidence": 0.75,
|
|
"evidence_spans": [
|
|
{
|
|
"text": "El número de teléfono es el siguiente: 800-700-706",
|
|
"start_time": 80.0,
|
|
"end_time": 84.5,
|
|
"speaker": "agent"
|
|
}
|
|
],
|
|
"description": "El agente comunica claramente el número de teléfono",
|
|
"replicable_practice": "Dictar información importante de forma clara y pausada"
|
|
}
|
|
],
|
|
|
|
"agent_improvement_areas": [
|
|
{
|
|
"skill_code": "POOR_OUTAGE_HANDLING",
|
|
"skill_type": "improvement_needed",
|
|
"confidence": 0.85,
|
|
"evidence_spans": [
|
|
{
|
|
"text": "Yo no puedo saber si ha sido un tema de la zona, eso ya lo maneja el área de averías",
|
|
"start_time": 56.0,
|
|
"end_time": 62.0,
|
|
"speaker": "agent"
|
|
}
|
|
],
|
|
"description": "El agente no intenta ayudar con la avería, solo deriva",
|
|
"coaching_recommendation": "Capacitar en uso del sistema para verificar incidencias en zona antes de derivar"
|
|
},
|
|
{
|
|
"skill_code": "LACK_OF_EMPATHY",
|
|
"skill_type": "improvement_needed",
|
|
"confidence": 0.80,
|
|
"evidence_spans": [
|
|
{
|
|
"text": "Bueno, yo lo que puedo hacer es simplemente verificar si tienes impago",
|
|
"start_time": 45.0,
|
|
"end_time": 50.0,
|
|
"speaker": "agent"
|
|
}
|
|
],
|
|
"description": "El agente no muestra empatía ante el problema del cliente sin luz",
|
|
"coaching_recommendation": "Practicar frases de empatía: 'Entiendo lo difícil que es quedarse sin luz'"
|
|
}
|
|
]
|
|
}
|
|
```
|