Files
BeyondCX_Insights/config/prompts/call_analysis/v2.0/user.txt
sujucu70 75e7b9da3d feat: Add Streamlit dashboard with Blueprint compliance (v2.1.0)
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>
2026-01-19 16:27:30 +01:00

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'"
}
]
}
```