Encuestas CSAT
Mide la satisfacción de tus clientes al final de cada conversación con WhatsApp o email — escala 1-5, 1-10, sí/no o respuesta libre, con agregados por versión.
Encuestas CSAT
CSAT (Customer Satisfaction) es la encuesta corta que dispara el agente automáticamente cuando termina una conversación. Una a tres preguntas rápidas: "¿qué tan satisfecho quedaste?", "¿resolvimos tu problema?". Las respuestas se consolidan en agregados por agente y canal para que el supervisor vea tendencias reales, no sensaciones.
Resumen ejecutivo
El cambio de juego: medir la satisfacción donde ocurre la conversación — no en un formulario aparte que nadie abre.
| Antes | Con CSAT |
|---|---|
| Supervisor adivina si el servicio va bien | Tasa de respuesta + score promedio por agente |
| Encuesta por email separada → 2% responde | Pregunta en el mismo chat → 30-40% responde |
| Sin trazabilidad por conversación | Cada respuesta ligada a su conversation_id |
¿Para qué sirve?
- Detectar caídas de calidad de un agente específico (un cambio de prompt que empeoró la experiencia).
- Comparar canales: WhatsApp vs email en la misma organización.
- Justificar mejoras: "el score pasó de 3.8 a 4.4 tras el nuevo prompt".
- Obtener NPS de forma operativa sin herramientas adicionales.
¿Cómo funciona?
sequenceDiagram
autonumber
participant U as Usuario
participant A as Agente WhatsApp/Email
participant T as Conversation timeout service
participant C as CSAT service
U->>A: último mensaje de la conversación
Note over A,T: 30 min sin respuesta (timeout configurable)
T->>C: ¿hay question set activo para este agente+canal?
C-->>T: sí, versión 3, 2 preguntas
T->>A: enviar intro_message
A->>U: "¿Nos ayudas con una encuesta rápida?"
U->>A: respuesta 1
A->>C: parsear respuesta → CSATAnswer
A->>U: pregunta 2
U->>A: respuesta 2
A->>C: completar CSATResponseItem
A->>U: thank_you_messageLos detalles clave:
- Trigger: al expirar el
session_timeout_minutesdel agente (default 30 min), sicsat_enabled=truey hay un question set activo, el sistema arranca la encuesta. - Versionado: cada vez que editás preguntas, se crea una nueva versión y la anterior se archiva. Las respuestas existentes mantienen referencia a su versión — los agregados nunca mezclan versiones distintas.
- Parsing multi-idioma: el parser acepta "1/5", "⭐⭐⭐⭐⭐", "cinco", "5 stars" para
scale_1_5; "yes", "sí", "claro", "no", "nope" parayes_no; texto libre paraopen_text. - Snapshot: cada
CSATResponseItempersiste elquestion_set_version. Si editás el set más tarde, las respuestas previas no se contaminan.
Tipos de pregunta
| Tipo | Uso típico | Respuesta normalizada |
|---|---|---|
scale_1_5 | Satisfacción general (5 estrellas) | int 1-5 |
scale_1_10 | Net Promoter Score | int 0-10 |
yes_no | "¿Resolvimos tu problema?" | bool |
open_text | Feedback cualitativo | str (max 500) |
Configuración
Activar CSAT en un agente
Desde el dashboard:
- Agentes IA → WhatsApp (o Email) → seleccionar el agente.
- En la pestaña Configuración, activar el toggle Habilitar CSAT.
- Guardar.
Con esto, el agente queda enlazado al question set activo del canal + agente. Si no hay question set, el toggle no dispara nada.
Crear un question set
Desde el editor CSAT del agente (panel Configuración → CSAT):
- Introducción (opcional): mensaje corto antes de la primera pregunta. Ej: "¿Nos ayudas con 2 preguntas?".
- Pregunta 1 — tipo:
scale_1_5,scale_1_10,yes_no,open_text. - Texto de la pregunta: el prompt que guía a la IA para formularla. Ej:
"Pregunta si quedó satisfecho con el servicio". El sistema paraphrasea en el idioma del usuario al enviarla. - Repetir para 2-10 preguntas.
- Cierre (opcional): mensaje final. Ej: "¡Gracias! Tu feedback nos ayuda a mejorar."
- Guardar → se crea la versión 1. Cada edición posterior bumpea la versión.
Parámetros por pregunta
| Campo | Descripción |
|---|---|
key | Identificador estable (max 50 chars). Usado en agregados: renombrar la pregunta NO rompe la serie histórica si mantenés el key. |
prompt_to_ai | Texto que guía a Gemini para formular la pregunta en el idioma del usuario. |
interpretation_hint | Pista opcional para parsear la respuesta. Ej: "acepta 1-5, uno-cinco, ⭐⭐⭐, 1/5". |
type | scale_1_5 / scale_1_10 / yes_no / open_text. |
required | Si true y el usuario no responde, el agente reformula. Default true. |
Consultar agregados
El dashboard dedicado vive en Satisfacción (/satisfaction), con vista por agente y canal:
- Response rate:
total_completed / total_started * 100. - Score promedio por pregunta numérica.
- Distribución por valor (histograma para escalas, proporción sí/no).
- Texto libre: lista paginada de respuestas.
Los agregados se computan on-the-fly en MongoDB contra la colección _csat_responses filtrada por question_set_id + version. No hay job batch — los números del dashboard son tiempo real.
Casos de uso
1 · Supervisor WhatsApp detecta agente en baja. Agente "soporte-norte" tenía score promedio 4.6 en scale_1_5 durante 3 meses. Tras un cambio de prompt cayó a 3.9 en una semana. El supervisor ve la caída en el gráfico, revierte el prompt, score vuelve a 4.5 en dos días.
2 · NPS operativo sin herramienta externa.
Empresa B2B con agentes de email usa scale_1_10 en la pregunta única "¿Qué tan probable es que nos recomiendes?". Calcula NPS = %promotores (9-10) − %detractores (0-6) directo del agregado. 200 respuestas/mes con tasa de respuesta 35%.
3 · Feedback cualitativo triage-able.
Agente con 2 preguntas: scale_1_5 + open_text. Las respuestas de score ≤2 se revisan manualmente. El agente de IA clasifica los open_text por tema (problema técnico, queja de tiempo, feedback positivo). Flujo de mejora continua sin esfuerzo humano masivo.
Limitaciones y supuestos
- La encuesta se dispara al timeout de inactividad, no cuando el usuario dice "gracias, adiós". Si la conversación queda abierta 30 minutos sin cierre explícito, se dispara igual.
- Máximo 10 preguntas por set. Más allá, la tasa de respuesta cae drásticamente.
- El parser de respuestas es tolerante pero no infalible. Respuestas muy ambiguas se guardan como texto crudo en
CSATAnswer.textconvalue = null. - Los agregados NO mezclan versiones. Si querés ver evolución histórica tras un cambio de preguntas, compará las versiones en el dashboard — el sistema no las combina.
- CSAT corre solo per-canal: no hay encuesta cross-channel (email + WhatsApp combinados en un set único).
Beneficios clave
- Satisfacción medida donde ocurre la conversación → tasa de respuesta 10-20× mayor que email separado.
- Versionado automático: cada cambio de preguntas se archiva, los agregados quedan comparables por versión.
- Sin servicio externo: no se paga SurveyMonkey ni Typeform. Todo vive en la plataforma.
- Parser tolerante a estilos naturales del usuario (emojis, números, palabras).
- Trazabilidad per-conversación: cada respuesta apunta a su
conversation_idpara auditoría.
Dashboard Operacional
KPIs agregados en tiempo real: alarmas por severidad, tareas por estado, tendencias, anomalías, SLA, y mapas de calor. Visión integral de la salud operacional de toda la flota.
Autenticación de Conversaciones
La autenticación de conversaciones permite al agente verificar la identidad del usuario antes de responder con información sensible. El agente solicita un dato de identificación y valida al usuario contra una base de datos configurada.